Merge "Simplify flicker provider logic"

This commit is contained in:
TreeHugger Robot
2021-11-09 18:02:11 +00:00
committed by Android (Google) Code Review
72 changed files with 219 additions and 290 deletions

View File

@@ -52,9 +52,9 @@ class AppPairsTestCannotPairNonResizeableApps(
testSpec: FlickerTestParameter
) : AppPairsTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
nonResizeableApp?.launchViaIntent(wmHelper)
// TODO pair apps through normal UX flow

View File

@@ -46,9 +46,9 @@ import org.junit.runners.Parameterized
class AppPairsTestPairPrimaryAndSecondaryApps(
testSpec: FlickerTestParameter
) : AppPairsTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
// TODO pair apps through normal UX flow
executeShellCommand(

View File

@@ -52,9 +52,9 @@ class AppPairsTestSupportPairNonResizeableApps(
testSpec: FlickerTestParameter
) : AppPairsTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
nonResizeableApp?.launchViaIntent(wmHelper)
// TODO pair apps through normal UX flow

View File

@@ -47,9 +47,9 @@ import org.junit.runners.Parameterized
class AppPairsTestUnpairPrimaryAndSecondaryApps(
testSpec: FlickerTestParameter
) : AppPairsTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
setup {
eachRun {
executeShellCommand(

View File

@@ -25,14 +25,11 @@ import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.FlickerBuilderProvider
import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.isRotated
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -50,7 +47,6 @@ import org.junit.Test
abstract class AppPairsTransition(protected val testSpec: FlickerTestParameter) {
protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
protected val context: Context = instrumentation.context
protected val isRotated = testSpec.config.startRotation.isRotated()
protected val activityHelper = ActivityHelper.getInstance()
protected val appPairsHelper = AppPairsHelper(instrumentation,
Components.SplitScreenActivity.LABEL,
@@ -82,20 +78,18 @@ abstract class AppPairsTransition(protected val testSpec: FlickerTestParameter)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
transition(this, testSpec.config)
transition(this)
}
}
internal open val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
internal open val transition: FlickerBuilder.() -> Unit
get() = {
setup {
test {
device.wakeUpAndGoToHomeScreen()
}
eachRun {
this.setRotation(configuration.startRotation)
this.setRotation(testSpec.startRotation)
primaryApp.launchViaIntent(wmHelper)
secondaryApp.launchViaIntent(wmHelper)
nonResizeableApp?.launchViaIntent(wmHelper)

View File

@@ -25,7 +25,6 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.annotation.Group1
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.helpers.setRotation
import com.android.wm.shell.flicker.appPairsDividerIsVisibleAtEnd
import com.android.wm.shell.flicker.appPairsPrimaryBoundsIsVisibleAtEnd
@@ -50,14 +49,14 @@ import org.junit.runners.Parameterized
class RotateTwoLaunchedAppsInAppPairsMode(
testSpec: FlickerTestParameter
) : RotateTwoLaunchedAppsTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
executeShellCommand(composePairsCommand(
primaryTaskId, secondaryTaskId, true /* pair */))
waitAppsShown(primaryApp, secondaryApp)
setRotation(testSpec.config.endRotation)
setRotation(testSpec.endRotation)
}
}
@@ -85,13 +84,13 @@ class RotateTwoLaunchedAppsInAppPairsMode(
@Presubmit
@Test
fun appPairsPrimaryBoundsIsVisibleAtEnd() =
testSpec.appPairsPrimaryBoundsIsVisibleAtEnd(testSpec.config.endRotation,
testSpec.appPairsPrimaryBoundsIsVisibleAtEnd(testSpec.endRotation,
primaryApp.component)
@FlakyTest
@Test
fun appPairsSecondaryBoundsIsVisibleAtEnd() =
testSpec.appPairsSecondaryBoundsIsVisibleAtEnd(testSpec.config.endRotation,
testSpec.appPairsSecondaryBoundsIsVisibleAtEnd(testSpec.endRotation,
secondaryApp.component)
companion object {

View File

@@ -25,7 +25,6 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.annotation.Group1
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.helpers.setRotation
import com.android.wm.shell.flicker.appPairsDividerIsVisibleAtEnd
import com.android.wm.shell.flicker.appPairsPrimaryBoundsIsVisibleAtEnd
@@ -50,11 +49,11 @@ import org.junit.runners.Parameterized
class RotateTwoLaunchedAppsRotateAndEnterAppPairsMode(
testSpec: FlickerTestParameter
) : RotateTwoLaunchedAppsTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
this.setRotation(testSpec.config.endRotation)
this.setRotation(testSpec.endRotation)
executeShellCommand(
composePairsCommand(primaryTaskId, secondaryTaskId, pair = true))
waitAppsShown(primaryApp, secondaryApp)
@@ -93,13 +92,13 @@ class RotateTwoLaunchedAppsRotateAndEnterAppPairsMode(
@FlakyTest(bugId = 172776659)
@Test
fun appPairsPrimaryBoundsIsVisibleAtEnd() =
testSpec.appPairsPrimaryBoundsIsVisibleAtEnd(testSpec.config.endRotation,
testSpec.appPairsPrimaryBoundsIsVisibleAtEnd(testSpec.endRotation,
primaryApp.component)
@FlakyTest(bugId = 172776659)
@Test
fun appPairsSecondaryBoundsIsVisibleAtEnd() =
testSpec.appPairsSecondaryBoundsIsVisibleAtEnd(testSpec.config.endRotation,
testSpec.appPairsSecondaryBoundsIsVisibleAtEnd(testSpec.endRotation,
secondaryApp.component)
companion object {

View File

@@ -34,7 +34,7 @@ abstract class RotateTwoLaunchedAppsTransition(
override val nonResizeableApp: SplitScreenHelper?
get() = null
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
test {

View File

@@ -32,7 +32,6 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.SYSTEMUI_PACKAGE
import com.android.server.wm.flicker.repetitions
import com.android.wm.shell.flicker.helpers.LaunchBubbleHelper
import org.junit.runners.Parameterized
@@ -51,14 +50,13 @@ abstract class BaseBubbleScreen(protected val testSpec: FlickerTestParameter) {
protected val uid = context.packageManager.getApplicationInfo(
testApp.component.packageName, 0).uid
protected abstract val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
protected abstract val transition: FlickerBuilder.() -> Unit
@JvmOverloads
protected open fun buildTransition(
extraSpec: FlickerBuilder.(Map<String, Any?>) -> Unit = {}
): FlickerBuilder.(Map<String, Any?>) -> Unit {
return { configuration ->
extraSpec: FlickerBuilder.() -> Unit = {}
): FlickerBuilder.() -> Unit {
return {
setup {
test {
notifyManager.setBubblesAllowed(testApp.component.packageName,
@@ -75,7 +73,7 @@ abstract class BaseBubbleScreen(protected val testSpec: FlickerTestParameter) {
testApp.exit()
}
extraSpec(this, configuration)
extraSpec(this)
}
}
@@ -87,8 +85,7 @@ abstract class BaseBubbleScreen(protected val testSpec: FlickerTestParameter) {
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
repeat { testSpec.config.repetitions }
transition(this, testSpec.config)
transition(this)
}
}

View File

@@ -49,7 +49,7 @@ class DismissBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen(tes
private val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
private val displaySize = DisplayMetrics()
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
setup {
eachRun {

View File

@@ -44,7 +44,7 @@ import org.junit.runners.Parameterized
@Group4
class ExpandBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
setup {
test {

View File

@@ -42,7 +42,7 @@ import org.junit.runners.Parameterized
@Group4
class LaunchBubbleFromLockScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
setup {
eachRun {

View File

@@ -41,7 +41,7 @@ import org.junit.runners.Parameterized
@Group4
class LaunchBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
transitions {
val addBubbleBtn = waitAndGetAddBubbleBtn()

View File

@@ -43,7 +43,7 @@ import org.junit.runners.Parameterized
@Group4
class MultiBubblesScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
setup {
test {

View File

@@ -28,7 +28,6 @@ import com.android.server.wm.flicker.annotation.Group4
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.launchSplitScreen
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.traces.common.FlickerComponentName
import com.android.wm.shell.flicker.dockedStackDividerBecomesVisible
@@ -53,9 +52,9 @@ import org.junit.runners.Parameterized
class EnterSplitScreenDockActivity(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
device.launchSplitScreen(wmHelper)
}
@@ -69,7 +68,7 @@ class EnterSplitScreenDockActivity(
@Presubmit
@Test
fun dockedStackPrimaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.startRotation,
splitScreenApp.component)
@Presubmit

View File

@@ -48,9 +48,9 @@ class EnterSplitScreenFromDetachedRecentTask(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
splitScreenApp.launchViaIntent(wmHelper)

View File

@@ -27,7 +27,6 @@ import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.launchSplitScreen
import com.android.server.wm.flicker.helpers.reopenAppFromOverview
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.traces.common.FlickerComponentName
import com.android.wm.shell.flicker.dockedStackDividerBecomesVisible
@@ -52,9 +51,9 @@ import org.junit.runners.Parameterized
class EnterSplitScreenLaunchToSide(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
device.launchSplitScreen(wmHelper)
device.reopenAppFromOverview(wmHelper)
@@ -69,13 +68,13 @@ class EnterSplitScreenLaunchToSide(
@Presubmit
@Test
fun dockedStackPrimaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.startRotation,
splitScreenApp.component)
@Presubmit
@Test
fun dockedStackSecondaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackSecondaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackSecondaryBoundsIsVisibleAtEnd(testSpec.startRotation,
secondaryApp.component)
@Presubmit

View File

@@ -55,9 +55,9 @@ class EnterSplitScreenNotSupportNonResizable(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
nonResizeableApp.launchViaIntent(wmHelper)

View File

@@ -54,9 +54,9 @@ class EnterSplitScreenSupportNonResizable(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
nonResizeableApp.launchViaIntent(wmHelper)

View File

@@ -50,9 +50,9 @@ import org.junit.runners.Parameterized
class ExitLegacySplitScreenFromBottom(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
setup {
eachRun {
splitScreenApp.launchViaIntent(wmHelper)

View File

@@ -51,9 +51,9 @@ import org.junit.runners.Parameterized
class ExitPrimarySplitScreenShowSecondaryFullscreen(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
teardown {
eachRun {
secondaryApp.exit(wmHelper)

View File

@@ -53,9 +53,9 @@ class LegacySplitScreenFromIntentNotSupportNonResizable(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
splitScreenApp.launchViaIntent(wmHelper)

View File

@@ -53,9 +53,9 @@ class LegacySplitScreenFromIntentSupportNonResizable(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
splitScreenApp.launchViaIntent(wmHelper)

View File

@@ -55,9 +55,9 @@ class LegacySplitScreenFromRecentNotSupportNonResizable(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
nonResizeableApp.launchViaIntent(wmHelper)

View File

@@ -54,9 +54,9 @@ class LegacySplitScreenFromRecentSupportNonResizable(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
cleanSetup(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
cleanSetup(this)
setup {
eachRun {
nonResizeableApp.launchViaIntent(wmHelper)

View File

@@ -26,7 +26,7 @@ import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
abstract class LegacySplitScreenRotateTransition(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
eachRun {

View File

@@ -25,7 +25,6 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.annotation.Group2
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.helpers.exitSplitScreen
import com.android.server.wm.flicker.helpers.launchSplitScreen
@@ -61,8 +60,8 @@ class LegacySplitScreenToLauncher(
) : LegacySplitScreenTransition(testSpec) {
private val testApp = SimpleAppHelper(instrumentation)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
test {
device.wakeUpAndGoToHomeScreen()
@@ -70,7 +69,7 @@ class LegacySplitScreenToLauncher(
}
eachRun {
testApp.launchViaIntent(wmHelper)
this.setRotation(configuration.endRotation)
this.setRotation(testSpec.endRotation)
device.launchSplitScreen(wmHelper)
device.waitForIdle()
}

View File

@@ -25,12 +25,9 @@ import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.FlickerBuilderProvider
import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.isRotated
import com.android.server.wm.flicker.helpers.openQuickStepAndClearRecentAppsFromOverview
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.traces.common.FlickerComponentName
import com.android.wm.shell.flicker.helpers.BaseAppHelper.Companion.isShellTransitionsEnabled
import com.android.wm.shell.flicker.helpers.MultiWindowHelper.Companion.getDevEnableNonResizableMultiWindow
@@ -45,7 +42,6 @@ import org.junit.Test
abstract class LegacySplitScreenTransition(protected val testSpec: FlickerTestParameter) {
protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
protected val context: Context = instrumentation.context
protected val isRotated = testSpec.config.startRotation.isRotated()
protected val splitScreenApp = SplitScreenHelper.getPrimary(instrumentation)
protected val secondaryApp = SplitScreenHelper.getSecondary(instrumentation)
protected val nonResizeableApp = SplitScreenHelper.getNonResizeable(instrumentation)
@@ -82,15 +78,15 @@ abstract class LegacySplitScreenTransition(protected val testSpec: FlickerTestPa
FlickerComponentName.SPLASH_SCREEN,
FlickerComponentName.SNAPSHOT)
protected open val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
protected open val transition: FlickerBuilder.() -> Unit
get() = {
setup {
eachRun {
device.wakeUpAndGoToHomeScreen()
device.openQuickStepAndClearRecentAppsFromOverview(wmHelper)
secondaryApp.launchViaIntent(wmHelper)
splitScreenApp.launchViaIntent(wmHelper)
this.setRotation(configuration.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {
@@ -105,19 +101,17 @@ abstract class LegacySplitScreenTransition(protected val testSpec: FlickerTestPa
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
transition(this, testSpec.config)
transition(this)
}
}
internal open val cleanSetup: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
internal open val cleanSetup: FlickerBuilder.() -> Unit
get() = {
setup {
eachRun {
device.wakeUpAndGoToHomeScreen()
device.openQuickStepAndClearRecentAppsFromOverview(wmHelper)
this.setRotation(configuration.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {

View File

@@ -49,9 +49,9 @@ import org.junit.runners.Parameterized
class OpenAppToLegacySplitScreen(
testSpec: FlickerTestParameter
) : LegacySplitScreenTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
device.launchSplitScreen(wmHelper)
wmHelper.waitForAppTransitionIdle()

View File

@@ -37,7 +37,6 @@ import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -69,12 +68,12 @@ class ResizeLegacySplitScreen(
private val testAppTop = SimpleAppHelper(instrumentation)
private val testAppBottom = ImeAppHelper(instrumentation)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
eachRun {
device.wakeUpAndGoToHomeScreen()
this.setRotation(configuration.startRotation)
this.setRotation(testSpec.startRotation)
this.launcherStrategy.clearRecentAppsFromOverview()
testAppBottom.launchViaIntent(wmHelper)
device.pressHome()
@@ -220,8 +219,8 @@ class ResizeLegacySplitScreen(
.map {
val description = (startRatio.toString().replace("/", "-") + "_to_" +
stopRatio.toString().replace("/", "-"))
val newName = "${FlickerTestParameter.defaultName(it.config)}_$description"
FlickerTestParameter(it.config, name = newName)
val newName = "${FlickerTestParameter.defaultName(it)}_$description"
FlickerTestParameter(it.config, nameOverride = newName)
}
}
}

View File

@@ -29,7 +29,6 @@ import com.android.server.wm.flicker.helpers.launchSplitScreen
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.wm.shell.flicker.dockedStackDividerIsVisibleAtEnd
@@ -53,12 +52,12 @@ import org.junit.runners.Parameterized
class RotateOneLaunchedAppAndEnterSplitScreen(
testSpec: FlickerTestParameter
) : LegacySplitScreenRotateTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
device.launchSplitScreen(wmHelper)
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
@@ -69,7 +68,7 @@ class RotateOneLaunchedAppAndEnterSplitScreen(
@Presubmit
@Test
fun dockedStackPrimaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.startRotation,
splitScreenApp.component)
@Presubmit

View File

@@ -29,7 +29,6 @@ import com.android.server.wm.flicker.helpers.launchSplitScreen
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.wm.shell.flicker.dockedStackDividerIsVisibleAtEnd
@@ -53,11 +52,11 @@ import org.junit.runners.Parameterized
class RotateOneLaunchedAppInSplitScreenMode(
testSpec: FlickerTestParameter
) : LegacySplitScreenRotateTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
device.launchSplitScreen(wmHelper)
}
}
@@ -69,7 +68,7 @@ class RotateOneLaunchedAppInSplitScreenMode(
@Presubmit
@Test
fun dockedStackPrimaryBoundsIsVisibleAtEnd() = testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(
testSpec.config.startRotation, splitScreenApp.component)
testSpec.startRotation, splitScreenApp.component)
@Presubmit
@Test

View File

@@ -29,7 +29,6 @@ import com.android.server.wm.flicker.helpers.reopenAppFromOverview
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.wm.shell.flicker.dockedStackDividerIsVisibleAtEnd
@@ -54,11 +53,11 @@ import org.junit.runners.Parameterized
class RotateTwoLaunchedAppAndEnterSplitScreen(
testSpec: FlickerTestParameter
) : LegacySplitScreenRotateTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
device.launchSplitScreen(wmHelper)
device.reopenAppFromOverview(wmHelper)
}
@@ -71,13 +70,13 @@ class RotateTwoLaunchedAppAndEnterSplitScreen(
@Presubmit
@Test
fun dockedStackPrimaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.startRotation,
splitScreenApp.component)
@Presubmit
@Test
fun dockedStackSecondaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackSecondaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackSecondaryBoundsIsVisibleAtEnd(testSpec.startRotation,
secondaryApp.component)
@Presubmit

View File

@@ -30,7 +30,6 @@ import com.android.server.wm.flicker.helpers.reopenAppFromOverview
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.wm.shell.flicker.dockedStackDividerIsVisibleAtEnd
@@ -55,18 +54,18 @@ import org.junit.runners.Parameterized
class RotateTwoLaunchedAppInSplitScreenMode(
testSpec: FlickerTestParameter
) : LegacySplitScreenRotateTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
super.transition(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
setup {
eachRun {
device.launchSplitScreen(wmHelper)
device.reopenAppFromOverview(wmHelper)
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
transitions {
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
@@ -77,13 +76,13 @@ class RotateTwoLaunchedAppInSplitScreenMode(
@Presubmit
@Test
fun dockedStackPrimaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackPrimaryBoundsIsVisibleAtEnd(testSpec.startRotation,
splitScreenApp.component)
@Presubmit
@Test
fun dockedStackSecondaryBoundsIsVisibleAtEnd() =
testSpec.dockedStackSecondaryBoundsIsVisibleAtEnd(testSpec.config.startRotation,
testSpec.dockedStackSecondaryBoundsIsVisibleAtEnd(testSpec.startRotation,
secondaryApp.component)
@Presubmit

View File

@@ -58,7 +58,7 @@ class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = true, stringExtras = emptyMap()) {
transitions {
pipApp.clickEnterPipButton(wmHelper)

View File

@@ -74,9 +74,9 @@ class EnterPipToOtherOrientationTest(
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
setupAndTeardown(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
setupAndTeardown(this)
setup {
eachRun {

View File

@@ -102,7 +102,7 @@ abstract class ExitPipToAppTransition(testSpec: FlickerTestParameter) : PipTrans
}
/**
* Checks that the visible region of [pipApp] covers the full display area at the end of
* Checks that the visible region oft [pipApp] covers the full display area at the end of
* the transition
*/
@Presubmit

View File

@@ -23,18 +23,17 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.LAUNCHER_COMPONENT
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.startRotation
import org.junit.Test
/**
* Base class for exiting pip (closing pip window) without returning to the app
*/
abstract class ExitPipTransition(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = buildTransition(eachRun = true) { configuration ->
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = true) {
setup {
eachRun {
this.setRotation(configuration.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {

View File

@@ -59,7 +59,7 @@ class ExitPipViaExpandButtonClickTest(
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = true) {
setup {
eachRun {

View File

@@ -56,7 +56,7 @@ class ExitPipViaIntentTest(testSpec: FlickerTestParameter) : ExitPipToAppTransit
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = true) {
setup {
eachRun {

View File

@@ -52,9 +52,9 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Group3
class ExitPipWithDismissButtonTest(testSpec: FlickerTestParameter) : ExitPipTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
pipApp.closePipWindow(wmHelper)
}

View File

@@ -55,9 +55,9 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Group3
class ExitPipWithSwipeDownTest(testSpec: FlickerTestParameter) : ExitPipTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { args ->
super.transition(this, args)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
transitions {
val pipRegion = wmHelper.getWindowRegion(pipApp.component).bounds
val pipCenterX = pipRegion.centerX()

View File

@@ -55,7 +55,7 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Group3
class ExpandPipOnDoubleClickTest(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = true) {
transitions {
pipApp.doubleClickPipWindow(wmHelper)

View File

@@ -59,7 +59,7 @@ class MovePipDownShelfHeightChangeTest(
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = false) {
teardown {
eachRun {

View File

@@ -59,7 +59,7 @@ class MovePipUpShelfHeightChangeTest(
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = false) {
teardown {
eachRun {

View File

@@ -26,7 +26,6 @@ import com.android.server.wm.flicker.annotation.Group4
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.traces.common.FlickerComponentName
import com.android.wm.shell.flicker.helpers.ImeAppHelper
import org.junit.FixMethodOrder
@@ -47,12 +46,12 @@ import org.junit.runners.Parameterized
class PipKeyboardTest(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
private val imeApp = ImeAppHelper(instrumentation)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = buildTransition(eachRun = false) { configuration ->
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = false) {
setup {
test {
imeApp.launchViaIntent(wmHelper)
setRotation(configuration.startRotation)
setRotation(testSpec.startRotation)
}
}
teardown {
@@ -78,7 +77,7 @@ class PipKeyboardTest(testSpec: FlickerTestParameter) : PipTransition(testSpec)
@Test
fun pipInVisibleBounds() {
testSpec.assertWm {
val displayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
val displayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
coversAtMost(displayBounds, pipApp.component)
}
}

View File

@@ -27,7 +27,6 @@ import com.android.server.wm.flicker.annotation.Group4
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.launchSplitScreen
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.rules.RemoveAllTasksButHomeRule.Companion.removeAllTasksButHome
import com.android.wm.shell.flicker.helpers.BaseAppHelper.Companion.isShellTransitionsEnabled
import com.android.wm.shell.flicker.helpers.FixedAppHelper
@@ -64,10 +63,8 @@ class PipLegacySplitScreenTest(testSpec: FlickerTestParameter) : PipTransition(t
assumeFalse(isShellTransitionsEnabled())
}
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
setup {
test {
removeAllTasksButHome()

View File

@@ -25,12 +25,10 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.annotation.Group4
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.wm.shell.flicker.helpers.FixedAppHelper
import org.junit.FixMethodOrder
@@ -47,7 +45,7 @@ import org.junit.runners.Parameterized
* Actions:
* Launch a [pipApp] in pip mode
* Launch another app [fixedApp] (appears below pip)
* Rotate the screen from [testSpec.config.startRotation] to [testSpec.config.endRotation]
* Rotate the screen from [testSpec.startRotation] to [testSpec.endRotation]
* (usually, 0->90 and 90->0)
*
* Notes:
@@ -65,21 +63,21 @@ import org.junit.runners.Parameterized
@Group4
class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
private val fixedApp = FixedAppHelper(instrumentation)
private val screenBoundsStart = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
private val screenBoundsEnd = WindowUtils.getDisplayBounds(testSpec.config.endRotation)
private val screenBoundsStart = WindowUtils.getDisplayBounds(testSpec.startRotation)
private val screenBoundsEnd = WindowUtils.getDisplayBounds(testSpec.endRotation)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = buildTransition(eachRun = false) { configuration ->
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition(eachRun = false) {
setup {
test {
fixedApp.launchViaIntent(wmHelper)
}
eachRun {
setRotation(configuration.startRotation)
setRotation(testSpec.startRotation)
}
}
transitions {
setRotation(configuration.endRotation)
setRotation(testSpec.endRotation)
}
}

View File

@@ -26,15 +26,12 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.isRotated
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.rules.RemoveAllTasksButHomeRule.Companion.removeAllTasksButHome
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -44,11 +41,10 @@ import org.junit.Test
abstract class PipTransition(protected val testSpec: FlickerTestParameter) {
protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
protected val isRotated = testSpec.config.startRotation.isRotated()
protected val pipApp = PipAppHelper(instrumentation)
protected val displayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
protected val displayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
protected val broadcastActionTrigger = BroadcastActionTrigger(instrumentation)
protected abstract val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
protected abstract val transition: FlickerBuilder.() -> Unit
// Helper class to process test actions by broadcast.
protected class BroadcastActionTrigger(private val instrumentation: Instrumentation) {
private fun createIntentWithAction(broadcastAction: String): Intent {
@@ -81,16 +77,14 @@ abstract class PipTransition(protected val testSpec: FlickerTestParameter) {
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
transition(this, testSpec.config)
transition(this)
}
}
/**
* Gets a configuration that handles basic setup and teardown of pip tests
*/
protected val setupAndTeardown: FlickerBuilder.(Map<String, Any?>) -> Unit
protected val setupAndTeardown: FlickerBuilder.() -> Unit
get() = {
setup {
test {
@@ -121,10 +115,10 @@ abstract class PipTransition(protected val testSpec: FlickerTestParameter) {
protected open fun buildTransition(
eachRun: Boolean,
stringExtras: Map<String, String> = mapOf(Components.PipActivity.EXTRA_ENTER_PIP to "true"),
extraSpec: FlickerBuilder.(Map<String, Any?>) -> Unit = {}
): FlickerBuilder.(Map<String, Any?>) -> Unit {
return { configuration ->
setupAndTeardown(this, configuration)
extraSpec: FlickerBuilder.() -> Unit = {}
): FlickerBuilder.() -> Unit {
return {
setupAndTeardown(this)
setup {
test {
@@ -155,7 +149,7 @@ abstract class PipTransition(protected val testSpec: FlickerTestParameter) {
}
}
extraSpec(this, configuration)
extraSpec(this)
}
}

View File

@@ -50,9 +50,9 @@ class SetRequestedOrientationWhilePinnedTest(
private val startingBounds = WindowUtils.getDisplayBounds(Surface.ROTATION_0)
private val endingBounds = WindowUtils.getDisplayBounds(Surface.ROTATION_90)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { configuration ->
setupAndTeardown(this, configuration)
override val transition: FlickerBuilder.() -> Unit
get() = {
setupAndTeardown(this)
setup {
eachRun {

View File

@@ -65,9 +65,9 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Group4
class CloseAppBackButtonTest(testSpec: FlickerTestParameter) : CloseAppTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
device.pressBack()
wmHelper.waitForHomeActivityVisible()

View File

@@ -64,9 +64,9 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Group4
class CloseAppHomeButtonTest(testSpec: FlickerTestParameter) : CloseAppTransition(testSpec) {
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
transitions {
device.pressHome()
wmHelper.waitForHomeActivityVisible()

View File

@@ -32,7 +32,6 @@ import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -54,11 +53,11 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter)
/**
* Specification of the test transition to execute
*/
protected open val transition: FlickerBuilder.(Map<String, Any?>) -> Unit = {
protected open val transition: FlickerBuilder.() -> Unit = {
setup {
eachRun {
testApp.launchViaIntent(wmHelper)
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {
@@ -75,7 +74,7 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
transition(testSpec.config)
transition()
}
}

View File

@@ -33,7 +33,6 @@ import com.android.server.wm.flicker.helpers.ImeAppAutoFocusHelper
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -63,7 +62,7 @@ import org.junit.runners.Parameterized
@Group2
class CloseImeAutoOpenWindowToAppTest(private val testSpec: FlickerTestParameter) {
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.config.startRotation)
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {

View File

@@ -34,7 +34,6 @@ import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -64,7 +63,7 @@ import org.junit.runners.Parameterized
@Group2
class CloseImeAutoOpenWindowToHomeTest(private val testSpec: FlickerTestParameter) {
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.config.startRotation)
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {

View File

@@ -119,14 +119,14 @@ class CloseImeWindowToAppTest(private val testSpec: FlickerTestParameter) {
@Presubmit
@Test
fun navBarLayerRotatesAndScales() {
Assume.assumeFalse(testSpec.isRotated)
Assume.assumeFalse(testSpec.isLandscapeOrSeascapeAtStart)
testSpec.navBarLayerRotatesAndScales()
}
@FlakyTest
@Test
fun navBarLayerRotatesAndScales_Flaky() {
Assume.assumeTrue(testSpec.isRotated)
Assume.assumeTrue(testSpec.isLandscapeOrSeascapeAtStart)
testSpec.navBarLayerRotatesAndScales()
}

View File

@@ -29,7 +29,6 @@ import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.ImeAppAutoFocusHelper
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.traces.common.FlickerComponentName
import org.junit.FixMethodOrder
import org.junit.Test
@@ -71,14 +70,14 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class LaunchAppShowImeOnStartTest(private val testSpec: FlickerTestParameter) {
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.config.startRotation)
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
setup {
eachRun {
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {

View File

@@ -37,7 +37,6 @@ import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -60,7 +59,7 @@ import org.junit.runners.Parameterized
@Group2
class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) {
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.config.startRotation)
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
private val isShellTransitionsEnabled =
SystemProperties.getBoolean("persist.debug.shell_transit", false)
@@ -76,7 +75,7 @@ class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) {
device.pressRecentApps()
wmHelper.waitImeGone()
wmHelper.waitForAppTransitionIdle()
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
transitions {

View File

@@ -33,7 +33,6 @@ import com.android.server.wm.flicker.helpers.SimpleAppHelper
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.traces.common.FlickerComponentName
@@ -56,14 +55,14 @@ import org.junit.runners.Parameterized
class SwitchImeWindowsFromGestureNavTest(private val testSpec: FlickerTestParameter) {
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp = SimpleAppHelper(instrumentation)
private val imeTestApp = ImeAppAutoFocusHelper(instrumentation, testSpec.config.startRotation)
private val imeTestApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
setup {
eachRun {
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
testApp.launchViaIntent(wmHelper)
wmHelper.waitForFullScreenApp(testApp.component)
wmHelper.waitForAppTransitionIdle()
@@ -86,7 +85,7 @@ class SwitchImeWindowsFromGestureNavTest(private val testSpec: FlickerTestParame
transitions {
// [Step1]: Swipe right from imeTestApp to testApp task
createTag(TAG_IME_VISIBLE)
val displayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
val displayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
device.swipe(0, displayBounds.bounds.height(),
displayBounds.bounds.width(), displayBounds.bounds.height(), 50)
@@ -96,7 +95,7 @@ class SwitchImeWindowsFromGestureNavTest(private val testSpec: FlickerTestParame
}
transitions {
// [Step2]: Swipe left to back to imeTestApp task
val displayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
val displayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
device.swipe(displayBounds.bounds.width(), displayBounds.bounds.height(),
0, displayBounds.bounds.height(), 50)
wmHelper.waitForFullScreenApp(imeTestApp.component)

View File

@@ -26,7 +26,6 @@ import com.android.server.wm.flicker.FlickerParametersRunnerFactory
import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.LAUNCHER_COMPONENT
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.annotation.Group4
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.TwoActivitiesAppHelper
@@ -60,7 +59,7 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Group4
class ActivitiesTransitionTest(val testSpec: FlickerTestParameter) {
val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp: TwoActivitiesAppHelper = TwoActivitiesAppHelper(instrumentation)
/**
@@ -70,8 +69,6 @@ class ActivitiesTransitionTest(val testSpec: FlickerTestParameter) {
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
setup {
eachRun {
testApp.launchViaIntent(wmHelper)

View File

@@ -24,7 +24,6 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.annotation.Group1
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.rules.RemoveAllTasksButHomeRule.Companion.removeAllTasksButHome
import org.junit.FixMethodOrder
@@ -59,13 +58,13 @@ class OpenAppColdTest(testSpec: FlickerTestParameter) : OpenAppTransition(testSp
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
setup {
eachRun {
removeAllTasksButHome()
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {

View File

@@ -27,7 +27,6 @@ import com.android.server.wm.flicker.LAUNCHER_COMPONENT
import com.android.server.wm.flicker.annotation.Group1
import com.android.server.wm.flicker.helpers.reopenAppFromOverview
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.traces.common.WindowManagerConditionsFactory
import org.junit.FixMethodOrder
@@ -64,9 +63,9 @@ class OpenAppFromOverviewTest(testSpec: FlickerTestParameter) : OpenAppTransitio
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
setup {
test {
testApp.launchViaIntent(wmHelper)
@@ -81,7 +80,7 @@ class OpenAppFromOverviewTest(testSpec: FlickerTestParameter) : OpenAppTransitio
WindowManagerConditionsFactory.isActivityVisible(LAUNCHER_COMPONENT),
WindowManagerConditionsFactory.hasLayersAnimating().negate()
)
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
transitions {

View File

@@ -66,9 +66,9 @@ class OpenAppNonResizeableTest(testSpec: FlickerTestParameter) : OpenAppTransiti
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
get() = { args ->
super.transition(this, args)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
setup {
eachRun {
device.sleep()

View File

@@ -31,9 +31,7 @@ import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.replacesLayer
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
@@ -50,13 +48,11 @@ abstract class OpenAppTransition(protected val testSpec: FlickerTestParameter) {
/**
* Defines the transition used to run the test
*/
protected open val transition: FlickerBuilder.(Map<String, Any?>) -> Unit = {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
protected open val transition: FlickerBuilder.() -> Unit = {
setup {
test {
device.wakeUpAndGoToHomeScreen()
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {
@@ -73,7 +69,7 @@ abstract class OpenAppTransition(protected val testSpec: FlickerTestParameter) {
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
transition(testSpec.config)
transition()
}
}

View File

@@ -24,7 +24,6 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.annotation.Group1
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.dsl.FlickerBuilder
import org.junit.FixMethodOrder
import org.junit.Test
@@ -59,9 +58,9 @@ class OpenAppWarmTest(testSpec: FlickerTestParameter) : OpenAppTransition(testSp
/**
* Defines the transition used to run the test
*/
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
setup {
test {
testApp.launchViaIntent(wmHelper)
@@ -69,7 +68,7 @@ class OpenAppWarmTest(testSpec: FlickerTestParameter) : OpenAppTransition(testSp
eachRun {
device.pressHome()
wmHelper.waitForHomeActivityVisible()
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {

View File

@@ -33,8 +33,6 @@ import com.android.server.wm.flicker.helpers.NewTasksAppHelper
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.flicker.testapp.ActivityOptions.LAUNCH_NEW_TASK_ACTIVITY_COMPONENT_NAME
@@ -71,8 +69,6 @@ class TaskTransitionTest(val testSpec: FlickerTestParameter) {
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
setup {
eachRun {
mTestApp.launchViaIntent(wmHelper)
@@ -149,7 +145,7 @@ class TaskTransitionTest(val testSpec: FlickerTestParameter) {
@Test
fun colorLayerIsVisibleDuringTransition() {
val bgColorLayer = FlickerComponentName("", "colorBackgroundLayer")
val displayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
val displayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
testSpec.assertLayers {
this.coversExactly(displayBounds, LAUNCH_NEW_TASK_ACTIVITY)

View File

@@ -32,11 +32,9 @@ import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.NonResizeableAppHelper
import com.android.server.wm.flicker.helpers.SimpleAppHelper
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.isRotated
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.traces.common.FlickerComponentName
@@ -68,7 +66,7 @@ class QuickSwitchBetweenTwoAppsBackTest(private val testSpec: FlickerTestParamet
private val testApp1 = SimpleAppHelper(instrumentation)
private val testApp2 = NonResizeableAppHelper(instrumentation)
private val startDisplayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
private val startDisplayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
@@ -92,7 +90,7 @@ class QuickSwitchBetweenTwoAppsBackTest(private val testSpec: FlickerTestParamet
startDisplayBounds.bounds.bottom,
2 * startDisplayBounds.bounds.right / 3,
startDisplayBounds.bounds.bottom,
if (testSpec.config.startRotation.isRotated()) 75 else 30
if (testSpec.isLandscapeOrSeascapeAtStart) 75 else 30
)
wmHelper.waitForFullScreenApp(testApp1.component)

View File

@@ -32,12 +32,9 @@ import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.helpers.NonResizeableAppHelper
import com.android.server.wm.flicker.helpers.SimpleAppHelper
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.isRotated
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.traces.common.FlickerComponentName
@@ -69,13 +66,11 @@ class QuickSwitchBetweenTwoAppsForwardTest(private val testSpec: FlickerTestPara
private val testApp1 = SimpleAppHelper(instrumentation)
private val testApp2 = NonResizeableAppHelper(instrumentation)
private val startDisplayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
private val startDisplayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
withTestName { testSpec.name }
repeat { testSpec.config.repetitions }
setup {
eachRun {
testApp1.launchViaIntent(wmHelper)
@@ -93,7 +88,7 @@ class QuickSwitchBetweenTwoAppsForwardTest(private val testSpec: FlickerTestPara
startDisplayBounds.bounds.bottom,
2 * startDisplayBounds.bounds.right / 3,
startDisplayBounds.bounds.bottom,
if (testSpec.config.startRotation.isRotated()) 75 else 30
if (testSpec.isLandscapeOrSeascapeAtStart) 75 else 30
)
wmHelper.waitForFullScreenApp(testApp1.component)
@@ -110,7 +105,7 @@ class QuickSwitchBetweenTwoAppsForwardTest(private val testSpec: FlickerTestPara
startDisplayBounds.bounds.bottom,
startDisplayBounds.bounds.right / 3,
startDisplayBounds.bounds.bottom,
if (testSpec.config.startRotation.isRotated()) 75 else 30
if (testSpec.isLandscapeOrSeascapeAtStart) 75 else 30
)
wmHelper.waitForFullScreenApp(testApp2.component)

View File

@@ -35,7 +35,6 @@ import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsVisible
import com.android.server.wm.flicker.statusBarWindowIsVisible
import com.android.server.wm.traces.common.FlickerComponentName
@@ -64,7 +63,7 @@ import org.junit.runners.Parameterized
class QuickSwitchFromLauncherTest(private val testSpec: FlickerTestParameter) {
private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
private val testApp = SimpleAppHelper(instrumentation)
private val startDisplayBounds = WindowUtils.getDisplayBounds(testSpec.config.startRotation)
private val startDisplayBounds = WindowUtils.getDisplayBounds(testSpec.startRotation)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {

View File

@@ -85,9 +85,9 @@ class ChangeAppRotationTest(
val flickerRule = WMFlickerServiceRuleForTestSpec(testSpec)
override val testApp = SimpleAppHelper(instrumentation)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
setup {
test {
testApp.launchViaIntent(wmHelper)

View File

@@ -22,14 +22,12 @@ import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.FlickerBuilderProvider
import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.helpers.StandardAppHelper
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerIsVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.entireScreenCovered
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.traces.common.FlickerComponentName
import org.junit.Test
@@ -41,10 +39,10 @@ abstract class RotationTransition(protected val testSpec: FlickerTestParameter)
protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
protected open val transition: FlickerBuilder.(Map<String, Any?>) -> Unit = {
protected open val transition: FlickerBuilder.() -> Unit = {
setup {
eachRun {
this.setRotation(testSpec.config.startRotation)
this.setRotation(testSpec.startRotation)
}
}
teardown {
@@ -53,7 +51,7 @@ abstract class RotationTransition(protected val testSpec: FlickerTestParameter)
}
}
transitions {
this.setRotation(testSpec.config.endRotation)
this.setRotation(testSpec.endRotation)
}
}
@@ -64,7 +62,7 @@ abstract class RotationTransition(protected val testSpec: FlickerTestParameter)
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
transition(testSpec.config)
transition()
}
}

View File

@@ -81,14 +81,14 @@ class SeamlessAppRotationTest(
) : RotationTransition(testSpec) {
override val testApp = SeamlessRotationAppHelper(instrumentation)
override val transition: FlickerBuilder.(Map<String, Any?>) -> Unit
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this, it)
super.transition(this)
setup {
test {
testApp.launchViaIntent(wmHelper,
stringExtras = mapOf(
ActivityOptions.EXTRA_STARVE_UI_THREAD to it.starveUiThread.toString())
stringExtras = mapOf(ActivityOptions.EXTRA_STARVE_UI_THREAD
to testSpec.starveUiThread.toString())
)
}
}
@@ -185,15 +185,17 @@ class SeamlessAppRotationTest(
override fun navBarLayerRotatesAndScales() = super.navBarLayerRotatesAndScales()
companion object {
private val Map<String, Any?>.starveUiThread
get() = this.getOrDefault(ActivityOptions.EXTRA_STARVE_UI_THREAD, false) as Boolean
private val FlickerTestParameter.starveUiThread
get() = config.getOrDefault(ActivityOptions.EXTRA_STARVE_UI_THREAD, false) as Boolean
private fun FlickerTestParameter.createConfig(
private fun createConfig(
sourceConfig: FlickerTestParameter,
starveUiThread: Boolean
): MutableMap<String, Any?> {
val config = this.config.toMutableMap()
config[ActivityOptions.EXTRA_STARVE_UI_THREAD] = starveUiThread
return config
): FlickerTestParameter {
val newConfig = sourceConfig.config.toMutableMap()
.also { it[ActivityOptions.EXTRA_STARVE_UI_THREAD] = starveUiThread }
val nameExt = if (starveUiThread) "_BUSY_UI_THREAD" else ""
return FlickerTestParameter(newConfig, nameOverride = "$sourceConfig$nameExt")
}
/**
@@ -206,15 +208,10 @@ class SeamlessAppRotationTest(
private fun getConfigurations(): List<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigRotationTests(repetitions = 2)
.flatMap {
val defaultRun = it.createConfig(starveUiThread = false)
val busyUiRun = it.createConfig(starveUiThread = true)
listOf(
FlickerTestParameter(defaultRun),
FlickerTestParameter(busyUiRun,
name = "${FlickerTestParameter.defaultName(busyUiRun)}_BUSY_UI_THREAD"
)
)
.flatMap { sourceConfig ->
val defaultRun = createConfig(sourceConfig, starveUiThread = false)
val busyUiRun = createConfig(sourceConfig, starveUiThread = true)
listOf(defaultRun, busyUiRun)
}
}