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

Commit bbfc6072 authored by Nataniel Borges's avatar Nataniel Borges Committed by Android (Google) Code Review
Browse files

Merge "Compatibilize app close tests with ARM CF"

parents c9f75fda db02059f
Loading
Loading
Loading
Loading
+29 −6
Original line number Diff line number Diff line
@@ -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

/**
@@ -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

@@ -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
@@ -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)
        }
    }
}
+1 −3
Original line number Diff line number Diff line
@@ -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 {
+1 −3
Original line number Diff line number Diff line
@@ -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 {
+0 −13
Original line number Diff line number Diff line
@@ -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
@@ -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()
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -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