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

This commit is contained in:
TreeHugger Robot
2022-06-08 15:04:27 +00:00
committed by Android (Google) Code Review
2 changed files with 36 additions and 0 deletions

View File

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

View File

@@ -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.