summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEvan Rosky <erosky@google.com>2021-08-02 17:08:48 -0700
committerEvan Rosky <erosky@google.com>2021-09-15 20:22:10 +0000
commitb685ccae88c0bc237ef2a2831480fe0ce0aaa27f (patch)
tree430a341c938cc23a81c26ca880750e1bf36820b4 /tests
parente7b68347335fbe9a0f4ee6c8626d3dad324411ea (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.kt43
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)