Merge "Simplify flicker provider logic"
This commit is contained in:
committed by
Android (Google) Code Review
commit
ef6bc3d187
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user