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

Commit f2587d09 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update OpenImeWindowFromFixedOrientationAppTest (2nd)" into tm-qpr-dev

parents 798abc8d a2eb0025
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
package com.android.server.wm.flicker

import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.traces.region.RegionSubject
import com.android.server.wm.traces.common.FlickerComponentName

val LAUNCHER_COMPONENT = FlickerComponentName("com.google.android.apps.nexuslauncher",
@@ -172,6 +173,33 @@ fun FlickerTestParameter.statusBarLayerRotatesScales() {
    statusBarLayerPositionEnd()
}

/**
 * Asserts that the visibleRegion of the [FlickerComponentName.SNAPSHOT] layer can cover
 * the visibleRegion of the given app component exactly
 */
fun FlickerTestParameter.snapshotStartingWindowLayerCoversExactlyOnApp(
        component: FlickerComponentName) {
    assertLayers {
        invoke("snapshotStartingWindowLayerCoversExactlyOnApp") {
            val snapshotLayers = it.subjects.filter { subject ->
                subject.name.contains(
                        FlickerComponentName.SNAPSHOT.toLayerName()) && subject.isVisible
            }
            // Verify the size of snapshotRegion covers appVisibleRegion exactly in animation.
            if (snapshotLayers.isNotEmpty()) {
                val visibleAreas = snapshotLayers.mapNotNull { snapshotLayer ->
                    snapshotLayer.layer?.visibleRegion
                }.toTypedArray()
                val snapshotRegion = RegionSubject.assertThat(visibleAreas, this, timestamp)
                val appVisibleRegion = it.visibleRegion(component)
                if (snapshotRegion.region.isNotEmpty) {
                    snapshotRegion.coversExactly(appVisibleRegion.region)
                }
            }
        }
    }
}

/**
 * Asserts that:
 *     [originalLayer] is visible at the start of the trace
+8 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.wm.flicker.ime

import android.app.Instrumentation
import android.platform.test.annotations.Postsubmit
import android.platform.test.annotations.Presubmit
import android.platform.test.annotations.RequiresDevice
import android.view.Surface
@@ -34,6 +35,7 @@ import com.android.server.wm.flicker.helpers.ImeAppAutoFocusHelper
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.navBarLayerPositionEnd
import com.android.server.wm.flicker.navBarWindowIsVisible
import com.android.server.wm.flicker.snapshotStartingWindowLayerCoversExactlyOnApp
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsVisible
import org.junit.FixMethodOrder
@@ -107,6 +109,12 @@ class OpenImeWindowFromFixedOrientationAppTest(private val testSpec: FlickerTest
    @Test
    fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()

    @Postsubmit
    @Test
    fun snapshotStartingWindowLayerCoversExactlyOnApp() {
        testSpec.snapshotStartingWindowLayerCoversExactlyOnApp(imeTestApp.component)
    }

    companion object {
        /**
         * Creates the test configurations.