diff options
-rw-r--r-- | tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt index fe1b1cd4795d..b37c40447934 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt +++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt @@ -18,6 +18,7 @@ package com.android.server.wm.flicker.ime import android.app.Instrumentation import android.content.ComponentName +import android.os.SystemProperties import android.platform.test.annotations.Presubmit import android.view.Surface import android.view.WindowManagerPolicyConstants @@ -43,6 +44,7 @@ import com.android.server.wm.flicker.statusBarLayerIsVisible import com.android.server.wm.flicker.statusBarLayerRotatesScales import com.android.server.wm.flicker.statusBarWindowIsVisible import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper +import org.junit.Assume import org.junit.FixMethodOrder import org.junit.Test import org.junit.runner.RunWith @@ -61,6 +63,8 @@ import org.junit.runners.Parameterized class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) { private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation() private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.config.startRotation) + private val isShellTransitionsEnabled = + SystemProperties.getBoolean("persist.debug.shell_transit", false) @FlickerBuilderProvider fun buildFlicker(): FlickerBuilder { @@ -122,15 +126,17 @@ class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) { @Presubmit @Test - fun imeWindowIsAlwaysVisible() = testSpec.imeWindowIsAlwaysVisible(true) + fun imeWindowIsAlwaysVisible() = testSpec.imeWindowIsAlwaysVisible(!isShellTransitionsEnabled) @Presubmit @Test - fun imeAppWindowVisibility() { - // the app starts visible in live tile, then becomes invisible during animation and - // is again launched. Since we log 1x per frame, sometimes the activity visibility and - // the app visibility are updated together, sometimes not, thus ignore activity check - // at the start + fun imeAppWindowVisibilityLegacy() { + Assume.assumeFalse(isShellTransitionsEnabled) + // the app starts visible in live tile, and stays visible for the duration of entering + // and exiting overview. However, legacy transitions seem to have a bug which causes + // everything to restart during the test, so expect the app to disappear and come back. + // Since we log 1x per frame, sometimes the activity visibility and the app visibility + // are updated together, sometimes not, thus ignore activity check at the start testSpec.assertWm { this.isAppWindowVisible(testApp.component, ignoreActivity = true) .then() @@ -142,6 +148,19 @@ class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) { @Presubmit @Test + fun imeAppWindowVisibility() { + Assume.assumeTrue(isShellTransitionsEnabled) + // the app starts visible in live tile, and stays visible for the duration of entering + // and exiting overview. Since we log 1x per frame, sometimes the activity visibility + // and the app visibility are updated together, sometimes not, thus ignore activity + // check at the start + testSpec.assertWm { + this.isAppWindowVisible(testApp.component, ignoreActivity = true) + } + } + + @Presubmit + @Test // During testing the launcher is always in portrait mode fun entireScreenCovered() = testSpec.entireScreenCovered() @@ -155,7 +174,8 @@ class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) { @Presubmit @Test - fun imeLayerIsBecomesVisible() { + fun imeLayerIsBecomesVisibleLegacy() { + Assume.assumeFalse(isShellTransitionsEnabled) testSpec.assertLayers { this.isVisible(WindowManagerStateHelper.IME_COMPONENT) .then() @@ -167,6 +187,15 @@ class ReOpenImeWindowTest(private val testSpec: FlickerTestParameter) { @Presubmit @Test + fun imeLayerIsBecomesVisible() { + Assume.assumeTrue(isShellTransitionsEnabled) + testSpec.assertLayers { + this.isVisible(WindowManagerStateHelper.IME_COMPONENT) + } + } + + @Presubmit + @Test fun appLayerReplacesLauncher() { testSpec.assertLayers { this.isVisible(LAUNCHER_COMPONENT) |