diff options
author | Evan Rosky <erosky@google.com> | 2021-08-02 17:08:48 -0700 |
---|---|---|
committer | Evan Rosky <erosky@google.com> | 2021-09-15 20:22:10 +0000 |
commit | b685ccae88c0bc237ef2a2831480fe0ce0aaa27f (patch) | |
tree | 430a341c938cc23a81c26ca880750e1bf36820b4 /tests | |
parent | e7b68347335fbe9a0f4ee6c8626d3dad324411ea (diff) |
Fix ReOpenImeWindowTest flicker test for shell transitions
In this case, legacy transitions is incorrect because it was
written before live-tiles and, due to some quirk, still manages
to pass the now-incorrect test. However, the test is technically
wrong and thus shell transitions doesn't pass. This CL fixes the
tests when shell transitions is enabled.
Specifically, there are a few tests explicitly called "X is ALWAYS
visible" which should test that the window in question remains
visible throughout the test. However, the test was adjusted to
test that the windows go away and come back. With shell transitions
the windows behave correctly, so we can remove the adjustments.
Bug: 193565597
Test: atest ReOpenImeWindowTest
Change-Id: I33c5b6327e5b5762958b66ff20d5fe67b9566c10
Merged-In: I33c5b6327e5b5762958b66ff20d5fe67b9566c10
Diffstat (limited to 'tests')
-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) |