Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 628b65f9 authored by Nataniel Borges's avatar Nataniel Borges
Browse files

Update app pairs tests to new DSL format

Move the existing assertions into presubmit and flaky blocks

Bug: 162923992
Test: atest FlickerTests
Change-Id: I08071058fdaec33f65e03bd97d41c4bc91125040
parent 0d56c0f5
Loading
Loading
Loading
Loading
+11 −11
Original line number Original line Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.wm.shell.flicker.apppairs
package com.android.wm.shell.flicker.apppairs


import android.os.Bundle
import android.os.Bundle
import android.platform.test.annotations.Presubmit
import android.os.SystemClock
import android.os.SystemClock
import androidx.test.filters.RequiresDevice
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry
@@ -40,7 +39,6 @@ import org.junit.runners.Parameterized
 * Test cold launch app from launcher.
 * Test cold launch app from launcher.
 * To run this test: `atest WMShellFlickerTests:AppPairsTestCannotPairNonResizeableApps`
 * To run this test: `atest WMShellFlickerTests:AppPairsTestCannotPairNonResizeableApps`
 */
 */
@Presubmit
@RequiresDevice
@RequiresDevice
@RunWith(Parameterized::class)
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -51,10 +49,9 @@ class AppPairsTestCannotPairNonResizeableApps(
        @Parameterized.Parameters(name = "{0}")
        @Parameterized.Parameters(name = "{0}")
        @JvmStatic
        @JvmStatic
        fun getParams(): List<Array<Any>> {
        fun getParams(): List<Array<Any>> {
            val testTag = "testAppPairs_cannotPairNonResizeableApps"
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
                withTestName {
                withTestName {
                    buildTestTag(testTag, configuration)
                    buildTestTag(configuration)
                }
                }
                transitions {
                transitions {
                    nonResizeableApp?.launchViaIntent(wmHelper)
                    nonResizeableApp?.launchViaIntent(wmHelper)
@@ -64,21 +61,24 @@ class AppPairsTestCannotPairNonResizeableApps(
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                }
                }
                assertions {
                assertions {
                    presubmit {
                        layersTrace {
                        layersTrace {
                            appPairsDividerIsInvisible()
                            appPairsDividerIsInvisible()
                        }
                        }
                        windowManagerTrace {
                        windowManagerTrace {
                        end("onlyResizeableAppWindowVisible") {
                            val nonResizeableApp = nonResizeableApp
                            val nonResizeableApp = nonResizeableApp
                            require(nonResizeableApp != null) {
                            require(nonResizeableApp != null) {
                                "Non resizeable app not initialized"
                                "Non resizeable app not initialized"
                            }
                            }

                            end("onlyResizeableAppWindowVisible") {
                                isVisible(nonResizeableApp.defaultWindowName)
                                isVisible(nonResizeableApp.defaultWindowName)
                                isInvisible(primaryApp.defaultWindowName)
                                isInvisible(primaryApp.defaultWindowName)
                            }
                            }
                        }
                        }
                    }
                    }
                }
                }
            }


            return FlickerTestRunnerFactory.getInstance().buildTest(instrumentation,
            return FlickerTestRunnerFactory.getInstance().buildTest(instrumentation,
                transition, testSpec, repetitions = AppPairsHelper.TEST_REPETITIONS)
                transition, testSpec, repetitions = AppPairsHelper.TEST_REPETITIONS)
+20 −16
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.wm.shell.flicker.apppairs


import android.os.Bundle
import android.os.Bundle
import android.os.SystemClock
import android.os.SystemClock
import android.platform.test.annotations.Presubmit
import androidx.test.filters.RequiresDevice
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.APP_PAIR_SPLIT_DIVIDER
import com.android.server.wm.flicker.APP_PAIR_SPLIT_DIVIDER
@@ -38,7 +37,6 @@ import org.junit.runners.Parameterized
 * Test cold launch app from launcher.
 * Test cold launch app from launcher.
 * To run this test: `atest WMShellFlickerTests:AppPairsTestPairPrimaryAndSecondaryApps`
 * To run this test: `atest WMShellFlickerTests:AppPairsTestPairPrimaryAndSecondaryApps`
 */
 */
@Presubmit
@RequiresDevice
@RequiresDevice
@RunWith(Parameterized::class)
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -49,10 +47,9 @@ class AppPairsTestPairPrimaryAndSecondaryApps(
        @Parameterized.Parameters(name = "{0}")
        @Parameterized.Parameters(name = "{0}")
        @JvmStatic
        @JvmStatic
        fun getParams(): List<Array<Any>> {
        fun getParams(): List<Array<Any>> {
            val testTag = "testAppPairs_pairPrimaryAndSecondaryApps"
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
                withTestName {
                withTestName {
                    buildTestTag(testTag, configuration)
                    buildTestTag(configuration)
                }
                }
                transitions {
                transitions {
                    // TODO pair apps through normal UX flow
                    // TODO pair apps through normal UX flow
@@ -61,9 +58,21 @@ class AppPairsTestPairPrimaryAndSecondaryApps(
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                }
                }
                assertions {
                assertions {
                    presubmit {
                        layersTrace {
                        layersTrace {
                            appPairsDividerIsVisible()
                            appPairsDividerIsVisible()
                        end("appsEndingBounds", enabled = false) {
                        }
                        windowManagerTrace {
                            end("bothAppWindowsVisible") {
                                isVisible(primaryApp.defaultWindowName)
                                isVisible(secondaryApp.defaultWindowName)
                            }
                        }
                    }

                    flaky {
                        layersTrace {
                            end("appsEndingBounds") {
                                val dividerRegion = entry.getVisibleBounds(APP_PAIR_SPLIT_DIVIDER)
                                val dividerRegion = entry.getVisibleBounds(APP_PAIR_SPLIT_DIVIDER)
                                this.hasVisibleRegion(primaryApp.defaultWindowName,
                                this.hasVisibleRegion(primaryApp.defaultWindowName,
                                    appPairsHelper.getPrimaryBounds(dividerRegion))
                                    appPairsHelper.getPrimaryBounds(dividerRegion))
@@ -71,11 +80,6 @@ class AppPairsTestPairPrimaryAndSecondaryApps(
                                        appPairsHelper.getSecondaryBounds(dividerRegion))
                                        appPairsHelper.getSecondaryBounds(dividerRegion))
                            }
                            }
                        }
                        }
                    windowManagerTrace {
                        end("bothAppWindowsVisible") {
                            isVisible(primaryApp.defaultWindowName)
                            isVisible(secondaryApp.defaultWindowName)
                        }
                    }
                    }
                }
                }
            }
            }
+23 −19
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.wm.shell.flicker.apppairs


import android.os.Bundle
import android.os.Bundle
import android.os.SystemClock
import android.os.SystemClock
import android.platform.test.annotations.Presubmit
import androidx.test.filters.RequiresDevice
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.APP_PAIR_SPLIT_DIVIDER
import com.android.server.wm.flicker.APP_PAIR_SPLIT_DIVIDER
@@ -38,7 +37,6 @@ import org.junit.runners.Parameterized
 * Test cold launch app from launcher.
 * Test cold launch app from launcher.
 * To run this test: `atest WMShellFlickerTests:AppPairsTestUnpairPrimaryAndSecondaryApps`
 * To run this test: `atest WMShellFlickerTests:AppPairsTestUnpairPrimaryAndSecondaryApps`
 */
 */
@Presubmit
@RequiresDevice
@RequiresDevice
@RunWith(Parameterized::class)
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -49,10 +47,9 @@ class AppPairsTestUnpairPrimaryAndSecondaryApps(
        @Parameterized.Parameters(name = "{0}")
        @Parameterized.Parameters(name = "{0}")
        @JvmStatic
        @JvmStatic
        fun getParams(): List<Array<Any>> {
        fun getParams(): List<Array<Any>> {
            val testTag = "testAppPairs_unpairPrimaryAndSecondaryApps"
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
                withTestName {
                withTestName {
                    buildTestTag(testTag, configuration)
                    buildTestTag(configuration)
                }
                }
                setup {
                setup {
                    executeShellCommand(
                    executeShellCommand(
@@ -66,25 +63,32 @@ class AppPairsTestUnpairPrimaryAndSecondaryApps(
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                }
                }
                assertions {
                assertions {
                    presubmit {
                        layersTrace {
                        layersTrace {
                            appPairsDividerIsInvisible()
                            appPairsDividerIsInvisible()
                        start("appsStartingBounds", enabled = false) {
                        }
                        windowManagerTrace {
                            end("bothAppWindowsInvisible") {
                                isInvisible(primaryApp.defaultWindowName)
                                isInvisible(secondaryApp.defaultWindowName)
                            }
                        }
                    }

                    flaky {
                        layersTrace {
                            start("appsStartingBounds") {
                                val dividerRegion = entry.getVisibleBounds(APP_PAIR_SPLIT_DIVIDER)
                                val dividerRegion = entry.getVisibleBounds(APP_PAIR_SPLIT_DIVIDER)
                                this.hasVisibleRegion(primaryApp.defaultWindowName,
                                this.hasVisibleRegion(primaryApp.defaultWindowName,
                                    appPairsHelper.getPrimaryBounds(dividerRegion))
                                    appPairsHelper.getPrimaryBounds(dividerRegion))
                                    .hasVisibleRegion(secondaryApp.defaultWindowName,
                                    .hasVisibleRegion(secondaryApp.defaultWindowName,
                                        appPairsHelper.getSecondaryBounds(dividerRegion))
                                        appPairsHelper.getSecondaryBounds(dividerRegion))
                            }
                            }
                        end("appsEndingBounds", enabled = false) {
                            end("appsEndingBounds") {
                                this.notExists(primaryApp.defaultWindowName)
                                this.notExists(primaryApp.defaultWindowName)
                                    .notExists(secondaryApp.defaultWindowName)
                                    .notExists(secondaryApp.defaultWindowName)
                            }
                            }
                        }
                        }
                    windowManagerTrace {
                        end("bothAppWindowsInvisible") {
                            isInvisible(primaryApp.defaultWindowName)
                            isInvisible(secondaryApp.defaultWindowName)
                        }
                    }
                    }
                }
                }
            }
            }
+22 −19
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.wm.shell.flicker.apppairs


import android.os.Bundle
import android.os.Bundle
import android.os.SystemClock
import android.os.SystemClock
import android.platform.test.annotations.Presubmit
import android.view.Surface
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry
@@ -46,7 +45,6 @@ import org.junit.runners.Parameterized
 * Test open apps to app pairs and rotate.
 * Test open apps to app pairs and rotate.
 * To run this test: `atest WMShellFlickerTests:RotateTwoLaunchedAppsInAppPairsMode`
 * To run this test: `atest WMShellFlickerTests:RotateTwoLaunchedAppsInAppPairsMode`
 */
 */
@Presubmit
@RequiresDevice
@RequiresDevice
@RunWith(Parameterized::class)
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -60,7 +58,7 @@ class RotateTwoLaunchedAppsInAppPairsMode(
        fun getParams(): Collection<Array<Any>> {
        fun getParams(): Collection<Array<Any>> {
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
                withTestName {
                withTestName {
                    buildTestTag("testRotateTwoLaunchedAppsInAppPairsMode", configuration)
                    buildTestTag(configuration)
                }
                }
                transitions {
                transitions {
                    executeShellCommand(composePairsCommand(
                    executeShellCommand(composePairsCommand(
@@ -69,17 +67,7 @@ class RotateTwoLaunchedAppsInAppPairsMode(
                    setRotation(configuration.endRotation)
                    setRotation(configuration.endRotation)
                }
                }
                assertions {
                assertions {
                    layersTrace {
                    presubmit {
                        navBarLayerRotatesAndScales(Surface.ROTATION_0, configuration.endRotation,
                            enabled = false)
                        statusBarLayerRotatesScales(Surface.ROTATION_0, configuration.endRotation,
                            enabled = false)
                        appPairsDividerIsVisible(enabled = false)
                        appPairsPrimaryBoundsIsVisible(configuration.endRotation,
                            primaryApp.defaultWindowName, bugId = 172776659)
                        appPairsSecondaryBoundsIsVisible(configuration.endRotation,
                            secondaryApp.defaultWindowName, bugId = 172776659)
                    }
                        windowManagerTrace {
                        windowManagerTrace {
                            navBarWindowIsAlwaysVisible()
                            navBarWindowIsAlwaysVisible()
                            statusBarWindowIsAlwaysVisible()
                            statusBarWindowIsAlwaysVisible()
@@ -89,6 +77,21 @@ class RotateTwoLaunchedAppsInAppPairsMode(
                            }
                            }
                        }
                        }
                    }
                    }

                    flaky {
                        layersTrace {
                            appPairsDividerIsVisible()
                            navBarLayerRotatesAndScales(Surface.ROTATION_0,
                                configuration.endRotation)
                            statusBarLayerRotatesScales(Surface.ROTATION_0,
                                configuration.endRotation)
                            appPairsPrimaryBoundsIsVisible(configuration.endRotation,
                                primaryApp.defaultWindowName, bugId = 172776659)
                            appPairsSecondaryBoundsIsVisible(configuration.endRotation,
                                secondaryApp.defaultWindowName, bugId = 172776659)
                        }
                    }
                }
            }
            }


            return FlickerTestRunnerFactory.getInstance().buildTest(instrumentation,
            return FlickerTestRunnerFactory.getInstance().buildTest(instrumentation,
+31 −16
Original line number Original line Diff line number Diff line
@@ -62,7 +62,7 @@ class RotateTwoLaunchedAppsRotateAndEnterAppPairsMode(
        fun getParams(): Collection<Array<Any>> {
        fun getParams(): Collection<Array<Any>> {
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
            val testSpec: FlickerBuilder.(Bundle) -> Unit = { configuration ->
                withTestName {
                withTestName {
                    buildTestTag("testRotateAndEnterAppPairsMode", configuration)
                    buildTestTag(configuration)
                }
                }
                transitions {
                transitions {
                    this.setRotation(configuration.endRotation)
                    this.setRotation(configuration.endRotation)
@@ -71,15 +71,16 @@ class RotateTwoLaunchedAppsRotateAndEnterAppPairsMode(
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                    SystemClock.sleep(AppPairsHelper.TIMEOUT_MS)
                }
                }
                assertions {
                assertions {
                    val isRotated = configuration.startRotation.isRotated()
                    presubmit {
                        layersTrace {
                        layersTrace {
                        navBarLayerRotatesAndScales(Surface.ROTATION_0, configuration.endRotation,
                            statusBarLayerRotatesScales(Surface.ROTATION_0,
                            enabled = !configuration.startRotation.isRotated())
                                configuration.endRotation)
                        statusBarLayerRotatesScales(Surface.ROTATION_0, configuration.endRotation)
                            appPairsDividerIsVisible()
                            appPairsDividerIsVisible()
                        appPairsPrimaryBoundsIsVisible(configuration.endRotation,
                            if (!isRotated) {
                            primaryApp.defaultWindowName, 172776659)
                                navBarLayerRotatesAndScales(Surface.ROTATION_0,
                        appPairsSecondaryBoundsIsVisible(configuration.endRotation,
                                    configuration.endRotation)
                            secondaryApp.defaultWindowName, 172776659)
                            }
                        }
                        }
                        windowManagerTrace {
                        windowManagerTrace {
                            navBarWindowIsAlwaysVisible()
                            navBarWindowIsAlwaysVisible()
@@ -90,6 +91,20 @@ class RotateTwoLaunchedAppsRotateAndEnterAppPairsMode(
                            }
                            }
                        }
                        }
                    }
                    }
                    flaky {
                        layersTrace {
                            appPairsPrimaryBoundsIsVisible(configuration.endRotation,
                                primaryApp.defaultWindowName, 172776659)
                            appPairsSecondaryBoundsIsVisible(configuration.endRotation,
                                secondaryApp.defaultWindowName, 172776659)

                            if (isRotated) {
                                navBarLayerRotatesAndScales(Surface.ROTATION_0,
                                    configuration.endRotation)
                            }
                        }
                    }
                }
            }
            }


            return FlickerTestRunnerFactory.getInstance().buildTest(instrumentation,
            return FlickerTestRunnerFactory.getInstance().buildTest(instrumentation,