Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72cd50a8 authored by Evan Rosky's avatar Evan Rosky Committed by Automerger Merge Worker
Browse files

Merge "Fix ReOpenImeWindowTest flicker test for shell transitions" into sc-v2-dev am: 5d404612

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15446991

Change-Id: Ife89e51976400e7077ab37cc93f94bcf904ea73a
parents ed93c782 5d404612
Loading
Loading
Loading
Loading
+36 −7
Original line number Diff line number Diff line
@@ -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()
@@ -140,6 +146,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
@@ -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()
@@ -165,6 +185,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() {