Loading tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt +34 −0 Original line number Diff line number Diff line Loading @@ -33,7 +33,32 @@ import org.junit.runners.Parameterized /** * Test app closes by pressing back button * * To run this test: `atest FlickerTests:CloseAppBackButtonTest` * * Actions: * Make sure no apps are running on the device * Launch an app [testApp] and wait animation to complete * Press back button * * To run only the presubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit` * * To run only the postsubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit` * * To run only the flaky assertions add: `-- * --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest` * * Notes: * 1. Some default assertions (e.g., nav bar, status bar and screen covered) * are inherited [CloseAppTransition] * 2. Part of the test setup occurs automatically via * [com.android.server.wm.flicker.TransitionRunnerWithRules], * including configuring navigation mode, initial orientation and ensuring no * apps are running before setup */ @RequiresDevice @RunWith(Parameterized::class) Loading @@ -50,14 +75,23 @@ class CloseAppBackButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio } } /** {@inheritDoc} */ @FlakyTest @Test override fun navBarLayerRotatesAndScales() = super.navBarLayerRotatesAndScales() /** {@inheritDoc} */ @Postsubmit @Test override fun navBarLayerIsVisible() = super.navBarLayerIsVisible() companion object { /** * Creates the test configurations. * * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring * repetitions, screen orientation and navigation modes. */ @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): List<FlickerTestParameter> { Loading tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt +35 −1 Original line number Diff line number Diff line Loading @@ -31,8 +31,33 @@ import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test app closes by pressing home button. * Test app closes by pressing home button * * To run this test: `atest FlickerTests:CloseAppHomeButtonTest` * * Actions: * Make sure no apps are running on the device * Launch an app [testApp] and wait animation to complete * Press home button * * To run only the presubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit` * * To run only the postsubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit` * * To run only the flaky assertions add: `-- * --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest` * * Notes: * 1. Some default assertions (e.g., nav bar, status bar and screen covered) * are inherited [CloseAppTransition] * 2. Part of the test setup occurs automatically via * [com.android.server.wm.flicker.TransitionRunnerWithRules], * including configuring navigation mode, initial orientation and ensuring no * apps are running before setup */ @RequiresDevice @RunWith(Parameterized::class) Loading @@ -49,14 +74,23 @@ class CloseAppHomeButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio } } /** {@inheritDoc} */ @FlakyTest @Test override fun navBarLayerRotatesAndScales() = super.navBarLayerRotatesAndScales() /** {@inheritDoc} */ @Postsubmit @Test override fun navBarLayerIsVisible() = super.navBarLayerIsVisible() companion object { /** * Creates the test configurations. * * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring * repetitions, screen orientation and navigation modes. */ @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { Loading tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt +44 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,10 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Entry point for the test runner. It will use this method to initialize and cache * flicker executions */ @FlickerBuilderProvider fun buildFlicker(): FlickerBuilder { return FlickerBuilder(instrumentation).apply { Loading @@ -69,42 +73,64 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that the navigation bar window is visible during the whole transition */ @Presubmit @Test open fun navBarWindowIsVisible() { testSpec.navBarWindowIsVisible() } /** * Checks that the status bar window is visible during the whole transition */ @Presubmit @Test open fun statusBarWindowIsVisible() { testSpec.statusBarWindowIsVisible() } /** * Checks that the navigation bar layer is visible during the whole transition */ @Presubmit @Test open fun navBarLayerIsVisible() { testSpec.navBarLayerIsVisible() } /** * Checks that the status bar layer is visible during the whole transition */ @Presubmit @Test open fun statusBarLayerIsVisible() { testSpec.statusBarLayerIsVisible() } /** * Checks the position of the navigation bar at the start and end of the transition */ @Presubmit @Test open fun navBarLayerRotatesAndScales() { testSpec.navBarLayerRotatesAndScales(testSpec.config.startRotation, Surface.ROTATION_0) } /** * Checks the position of the status bar at the start and end of the transition */ @Presubmit @Test open fun statusBarLayerRotatesScales() { testSpec.statusBarLayerRotatesScales(testSpec.config.startRotation, Surface.ROTATION_0) } /** * Checks that all windows that are visible on the trace, are visible for at least 2 * consecutive entries. */ @Presubmit @Test open fun visibleWindowsShownMoreThanOneConsecutiveEntry() { Loading @@ -113,6 +139,10 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that all layers that are visible on the trace, are visible for at least 2 * consecutive entries. */ @Presubmit @Test open fun visibleLayersShownMoreThanOneConsecutiveEntry() { Loading @@ -121,10 +151,17 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that all parts of the screen are covered during the transition */ @Presubmit @Test open fun entireScreenCovered() = testSpec.entireScreenCovered() /** * Checks that [testApp] is the top visible app window at the start of the transition and * that it is replaced by [LAUNCHER_COMPONENT] during the transition */ @Presubmit @Test open fun launcherReplacesAppWindowAsTopWindow() { Loading @@ -135,6 +172,10 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that [LAUNCHER_COMPONENT] is invisible at the start of the transition and that * it becomes visible during the transition */ @Presubmit @Test open fun launcherWindowBecomesVisible() { Loading @@ -145,6 +186,9 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that [LAUNCHER_COMPONENT] layer becomes visible when [testApp] becomes invisible */ @Presubmit @Test open fun launcherLayerReplacesApp() { Loading Loading
tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt +34 −0 Original line number Diff line number Diff line Loading @@ -33,7 +33,32 @@ import org.junit.runners.Parameterized /** * Test app closes by pressing back button * * To run this test: `atest FlickerTests:CloseAppBackButtonTest` * * Actions: * Make sure no apps are running on the device * Launch an app [testApp] and wait animation to complete * Press back button * * To run only the presubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit` * * To run only the postsubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit` * * To run only the flaky assertions add: `-- * --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest` * * Notes: * 1. Some default assertions (e.g., nav bar, status bar and screen covered) * are inherited [CloseAppTransition] * 2. Part of the test setup occurs automatically via * [com.android.server.wm.flicker.TransitionRunnerWithRules], * including configuring navigation mode, initial orientation and ensuring no * apps are running before setup */ @RequiresDevice @RunWith(Parameterized::class) Loading @@ -50,14 +75,23 @@ class CloseAppBackButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio } } /** {@inheritDoc} */ @FlakyTest @Test override fun navBarLayerRotatesAndScales() = super.navBarLayerRotatesAndScales() /** {@inheritDoc} */ @Postsubmit @Test override fun navBarLayerIsVisible() = super.navBarLayerIsVisible() companion object { /** * Creates the test configurations. * * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring * repetitions, screen orientation and navigation modes. */ @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): List<FlickerTestParameter> { Loading
tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt +35 −1 Original line number Diff line number Diff line Loading @@ -31,8 +31,33 @@ import org.junit.runners.MethodSorters import org.junit.runners.Parameterized /** * Test app closes by pressing home button. * Test app closes by pressing home button * * To run this test: `atest FlickerTests:CloseAppHomeButtonTest` * * Actions: * Make sure no apps are running on the device * Launch an app [testApp] and wait animation to complete * Press home button * * To run only the presubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit` * * To run only the postsubmit assertions add: `-- * --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest * --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit` * * To run only the flaky assertions add: `-- * --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest` * * Notes: * 1. Some default assertions (e.g., nav bar, status bar and screen covered) * are inherited [CloseAppTransition] * 2. Part of the test setup occurs automatically via * [com.android.server.wm.flicker.TransitionRunnerWithRules], * including configuring navigation mode, initial orientation and ensuring no * apps are running before setup */ @RequiresDevice @RunWith(Parameterized::class) Loading @@ -49,14 +74,23 @@ class CloseAppHomeButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio } } /** {@inheritDoc} */ @FlakyTest @Test override fun navBarLayerRotatesAndScales() = super.navBarLayerRotatesAndScales() /** {@inheritDoc} */ @Postsubmit @Test override fun navBarLayerIsVisible() = super.navBarLayerIsVisible() companion object { /** * Creates the test configurations. * * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring * repetitions, screen orientation and navigation modes. */ @Parameterized.Parameters(name = "{0}") @JvmStatic fun getParams(): Collection<FlickerTestParameter> { Loading
tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt +44 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,10 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Entry point for the test runner. It will use this method to initialize and cache * flicker executions */ @FlickerBuilderProvider fun buildFlicker(): FlickerBuilder { return FlickerBuilder(instrumentation).apply { Loading @@ -69,42 +73,64 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that the navigation bar window is visible during the whole transition */ @Presubmit @Test open fun navBarWindowIsVisible() { testSpec.navBarWindowIsVisible() } /** * Checks that the status bar window is visible during the whole transition */ @Presubmit @Test open fun statusBarWindowIsVisible() { testSpec.statusBarWindowIsVisible() } /** * Checks that the navigation bar layer is visible during the whole transition */ @Presubmit @Test open fun navBarLayerIsVisible() { testSpec.navBarLayerIsVisible() } /** * Checks that the status bar layer is visible during the whole transition */ @Presubmit @Test open fun statusBarLayerIsVisible() { testSpec.statusBarLayerIsVisible() } /** * Checks the position of the navigation bar at the start and end of the transition */ @Presubmit @Test open fun navBarLayerRotatesAndScales() { testSpec.navBarLayerRotatesAndScales(testSpec.config.startRotation, Surface.ROTATION_0) } /** * Checks the position of the status bar at the start and end of the transition */ @Presubmit @Test open fun statusBarLayerRotatesScales() { testSpec.statusBarLayerRotatesScales(testSpec.config.startRotation, Surface.ROTATION_0) } /** * Checks that all windows that are visible on the trace, are visible for at least 2 * consecutive entries. */ @Presubmit @Test open fun visibleWindowsShownMoreThanOneConsecutiveEntry() { Loading @@ -113,6 +139,10 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that all layers that are visible on the trace, are visible for at least 2 * consecutive entries. */ @Presubmit @Test open fun visibleLayersShownMoreThanOneConsecutiveEntry() { Loading @@ -121,10 +151,17 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that all parts of the screen are covered during the transition */ @Presubmit @Test open fun entireScreenCovered() = testSpec.entireScreenCovered() /** * Checks that [testApp] is the top visible app window at the start of the transition and * that it is replaced by [LAUNCHER_COMPONENT] during the transition */ @Presubmit @Test open fun launcherReplacesAppWindowAsTopWindow() { Loading @@ -135,6 +172,10 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that [LAUNCHER_COMPONENT] is invisible at the start of the transition and that * it becomes visible during the transition */ @Presubmit @Test open fun launcherWindowBecomesVisible() { Loading @@ -145,6 +186,9 @@ abstract class CloseAppTransition(protected val testSpec: FlickerTestParameter) } } /** * Checks that [LAUNCHER_COMPONENT] layer becomes visible when [testApp] becomes invisible */ @Presubmit @Test open fun launcherLayerReplacesApp() { Loading