Loading tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt +29 −6 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ package com.android.server.wm.flicker import android.app.Instrumentation import android.platform.test.annotations.Presubmit import android.util.Log import androidx.test.platform.app.InstrumentationRegistry import com.android.launcher3.tapl.LauncherInstrumentation import com.android.server.wm.flicker.junit.FlickerBuilderProvider import com.android.server.wm.traces.common.ComponentNameMatcher import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import org.junit.Assume import org.junit.AssumptionViolatedException import org.junit.Test /** Loading @@ -48,6 +50,8 @@ constructor( tapl.setExpectedRotationCheckEnabled(true) } private val logTag = this::class.java.simpleName /** Specification of the test transition to execute */ abstract val transition: FlickerBuilder.() -> Unit Loading Loading @@ -100,9 +104,23 @@ constructor( @Test open fun navBarWindowIsAlwaysVisible() { Assume.assumeFalse(flicker.scenario.isTablet) Assume.assumeFalse(flicker.scenario.isLandscapeOrSeascapeAtStart) flicker.navBarWindowIsAlwaysVisible() } /** * Checks that the [ComponentNameMatcher.NAV_BAR] window is visible at the start and end of * the transition * * Note: Phones only */ @Presubmit @Test open fun navBarWindowIsVisibleAtStartAndEnd() { Assume.assumeFalse(flicker.scenario.isTablet) flicker.navBarWindowIsVisibleAtStartAndEnd() } /** * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible at the start and end of the * transition Loading Loading @@ -179,13 +197,18 @@ constructor( statusBarWindowIsAlwaysVisible() visibleLayersShownMoreThanOneConsecutiveEntry() visibleWindowsShownMoreThanOneConsecutiveEntry() runAndIgnoreAssumptionViolation { taskBarLayerIsVisibleAtStartAndEnd() } runAndIgnoreAssumptionViolation { taskBarWindowIsAlwaysVisible() } runAndIgnoreAssumptionViolation { navBarLayerIsVisibleAtStartAndEnd() } runAndIgnoreAssumptionViolation { navBarWindowIsAlwaysVisible() } runAndIgnoreAssumptionViolation { navBarWindowIsVisibleAtStartAndEnd() } } if (flicker.scenario.isTablet) { taskBarLayerIsVisibleAtStartAndEnd() taskBarWindowIsAlwaysVisible() } else { navBarLayerIsVisibleAtStartAndEnd() navBarWindowIsAlwaysVisible() protected fun runAndIgnoreAssumptionViolation(predicate: () -> Unit) { try { predicate() } catch (e: AssumptionViolatedException) { Log.e(logTag, "Assumption violation on CUJ complete", e) } } } tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt +1 −3 Original line number Diff line number Diff line Loading @@ -106,12 +106,10 @@ class CloseImeWindowToAppTest(flicker: FlickerTest) : BaseTest(flicker) { @IwTest(focusArea = "ime") override fun cujCompleted() { super.cujCompleted() if (!flicker.scenario.isTablet) { navBarLayerPositionAtStartAndEnd() } imeLayerBecomesInvisible() imeAppLayerIsAlwaysVisible() imeAppWindowIsAlwaysVisible() runAndIgnoreAssumptionViolation { navBarLayerPositionAtStartAndEnd() } } companion object { Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt +1 −3 Original line number Diff line number Diff line Loading @@ -104,13 +104,11 @@ class CloseImeWindowToHomeTest(flicker: FlickerTest) : BaseTest(flicker) { @IwTest(focusArea = "ime") override fun cujCompleted() { super.cujCompleted() if (!flicker.scenario.isTablet) { navBarLayerPositionAtStartAndEnd() } imeLayerBecomesInvisible() imeAppWindowBecomesInvisible() imeWindowBecomesInvisible() imeLayerBecomesInvisible() runAndIgnoreAssumptionViolation { navBarLayerPositionAtStartAndEnd() } } companion object { Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt +0 −13 Original line number Diff line number Diff line Loading @@ -21,8 +21,6 @@ import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerTest import com.android.server.wm.flicker.helpers.isShellTransitionsEnabled import com.android.server.wm.flicker.junit.FlickerParametersRunnerFactory import com.android.server.wm.flicker.navBarWindowIsVisibleAtStartAndEnd import com.android.server.wm.traces.common.ComponentNameMatcher import org.junit.Assume import org.junit.Before import org.junit.FixMethodOrder Loading Loading @@ -68,15 +66,4 @@ class SwitchImeWindowsFromGestureNavTest_ShellTransit(flicker: FlickerTest) : @Ignore("Nav bar window becomes invisible during quick switch") @Test override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible() /** * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the * start and end of the WM trace */ @Presubmit @Test fun navBarWindowIsVisibleAtStartAndEnd() { Assume.assumeFalse(flicker.scenario.isTablet) flicker.navBarWindowIsVisibleAtStartAndEnd() } } tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt +5 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,11 @@ open class OpenAppFromLockNotificationCold(flicker: FlickerTest) : override fun statusBarLayerIsVisibleAtStartAndEnd() = super.statusBarLayerIsVisibleAtStartAndEnd() /** {@inheritDoc} */ @Test @Ignore("Not applicable to this CUJ. Display starts locked and app is full screen at the end") override fun navBarWindowIsVisibleAtStartAndEnd() = super.navBarWindowIsVisibleAtStartAndEnd() /** * Checks the position of the [ComponentNameMatcher.STATUS_BAR] at the start and end of the * transition Loading Loading
tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt +29 −6 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ package com.android.server.wm.flicker import android.app.Instrumentation import android.platform.test.annotations.Presubmit import android.util.Log import androidx.test.platform.app.InstrumentationRegistry import com.android.launcher3.tapl.LauncherInstrumentation import com.android.server.wm.flicker.junit.FlickerBuilderProvider import com.android.server.wm.traces.common.ComponentNameMatcher import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper import org.junit.Assume import org.junit.AssumptionViolatedException import org.junit.Test /** Loading @@ -48,6 +50,8 @@ constructor( tapl.setExpectedRotationCheckEnabled(true) } private val logTag = this::class.java.simpleName /** Specification of the test transition to execute */ abstract val transition: FlickerBuilder.() -> Unit Loading Loading @@ -100,9 +104,23 @@ constructor( @Test open fun navBarWindowIsAlwaysVisible() { Assume.assumeFalse(flicker.scenario.isTablet) Assume.assumeFalse(flicker.scenario.isLandscapeOrSeascapeAtStart) flicker.navBarWindowIsAlwaysVisible() } /** * Checks that the [ComponentNameMatcher.NAV_BAR] window is visible at the start and end of * the transition * * Note: Phones only */ @Presubmit @Test open fun navBarWindowIsVisibleAtStartAndEnd() { Assume.assumeFalse(flicker.scenario.isTablet) flicker.navBarWindowIsVisibleAtStartAndEnd() } /** * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible at the start and end of the * transition Loading Loading @@ -179,13 +197,18 @@ constructor( statusBarWindowIsAlwaysVisible() visibleLayersShownMoreThanOneConsecutiveEntry() visibleWindowsShownMoreThanOneConsecutiveEntry() runAndIgnoreAssumptionViolation { taskBarLayerIsVisibleAtStartAndEnd() } runAndIgnoreAssumptionViolation { taskBarWindowIsAlwaysVisible() } runAndIgnoreAssumptionViolation { navBarLayerIsVisibleAtStartAndEnd() } runAndIgnoreAssumptionViolation { navBarWindowIsAlwaysVisible() } runAndIgnoreAssumptionViolation { navBarWindowIsVisibleAtStartAndEnd() } } if (flicker.scenario.isTablet) { taskBarLayerIsVisibleAtStartAndEnd() taskBarWindowIsAlwaysVisible() } else { navBarLayerIsVisibleAtStartAndEnd() navBarWindowIsAlwaysVisible() protected fun runAndIgnoreAssumptionViolation(predicate: () -> Unit) { try { predicate() } catch (e: AssumptionViolatedException) { Log.e(logTag, "Assumption violation on CUJ complete", e) } } }
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt +1 −3 Original line number Diff line number Diff line Loading @@ -106,12 +106,10 @@ class CloseImeWindowToAppTest(flicker: FlickerTest) : BaseTest(flicker) { @IwTest(focusArea = "ime") override fun cujCompleted() { super.cujCompleted() if (!flicker.scenario.isTablet) { navBarLayerPositionAtStartAndEnd() } imeLayerBecomesInvisible() imeAppLayerIsAlwaysVisible() imeAppWindowIsAlwaysVisible() runAndIgnoreAssumptionViolation { navBarLayerPositionAtStartAndEnd() } } companion object { Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt +1 −3 Original line number Diff line number Diff line Loading @@ -104,13 +104,11 @@ class CloseImeWindowToHomeTest(flicker: FlickerTest) : BaseTest(flicker) { @IwTest(focusArea = "ime") override fun cujCompleted() { super.cujCompleted() if (!flicker.scenario.isTablet) { navBarLayerPositionAtStartAndEnd() } imeLayerBecomesInvisible() imeAppWindowBecomesInvisible() imeWindowBecomesInvisible() imeLayerBecomesInvisible() runAndIgnoreAssumptionViolation { navBarLayerPositionAtStartAndEnd() } } companion object { Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt +0 −13 Original line number Diff line number Diff line Loading @@ -21,8 +21,6 @@ import androidx.test.filters.RequiresDevice import com.android.server.wm.flicker.FlickerTest import com.android.server.wm.flicker.helpers.isShellTransitionsEnabled import com.android.server.wm.flicker.junit.FlickerParametersRunnerFactory import com.android.server.wm.flicker.navBarWindowIsVisibleAtStartAndEnd import com.android.server.wm.traces.common.ComponentNameMatcher import org.junit.Assume import org.junit.Before import org.junit.FixMethodOrder Loading Loading @@ -68,15 +66,4 @@ class SwitchImeWindowsFromGestureNavTest_ShellTransit(flicker: FlickerTest) : @Ignore("Nav bar window becomes invisible during quick switch") @Test override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible() /** * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the * start and end of the WM trace */ @Presubmit @Test fun navBarWindowIsVisibleAtStartAndEnd() { Assume.assumeFalse(flicker.scenario.isTablet) flicker.navBarWindowIsVisibleAtStartAndEnd() } }
tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt +5 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,11 @@ open class OpenAppFromLockNotificationCold(flicker: FlickerTest) : override fun statusBarLayerIsVisibleAtStartAndEnd() = super.statusBarLayerIsVisibleAtStartAndEnd() /** {@inheritDoc} */ @Test @Ignore("Not applicable to this CUJ. Display starts locked and app is full screen at the end") override fun navBarWindowIsVisibleAtStartAndEnd() = super.navBarWindowIsVisibleAtStartAndEnd() /** * Checks the position of the [ComponentNameMatcher.STATUS_BAR] at the start and end of the * transition Loading