Update PiP Flicker tests for content overlay

For some reason, the app icon overlay which is backed by hardware buffer
does not occlude the pipApp in the trace, though both the screen
recording and winscope trace suggest so.

Per discussion, we update the assertion that
- pipApp layer is always visible
- content overlay appears and then disappears
during the transition.

Bug: 265998256
Test: atest WMShellFlickerTests:EnterPipOnUserLeaveHintTest
Change-Id: I402aa1baf5c829fb12c30af659bc2827d65853a0
This commit is contained in:
Hongwei Wang
2023-03-03 14:04:40 -08:00
parent ba16de8065
commit 10489f711a
2 changed files with 23 additions and 5 deletions

View File

@@ -74,10 +74,18 @@ open class EnterPipOnUserLeaveHintTest(flicker: FlickerTest) : EnterPipTransitio
@Presubmit
@Test
override fun pipAppLayerOrOverlayAlwaysVisible() {
override fun pipAppLayerAlwaysVisible() {
// pip layer in gesture nav will disappear during transition
Assume.assumeFalse(flicker.scenario.isGesturalNavigation)
super.pipAppLayerOrOverlayAlwaysVisible()
super.pipAppLayerAlwaysVisible()
}
@Presubmit
@Test
override fun pipOverlayLayerAppearThenDisappear() {
// no overlay in gesture nav for non-auto enter PiP transition
Assume.assumeFalse(flicker.scenario.isGesturalNavigation)
super.pipOverlayLayerAppearThenDisappear()
}
@Presubmit

View File

@@ -43,13 +43,23 @@ abstract class EnterPipTransition(flicker: FlickerTest) : PipTransition(flicker)
/** Checks [pipApp] layer remains visible throughout the animation */
@Presubmit
@Test
open fun pipAppLayerOrOverlayAlwaysVisible() {
open fun pipAppLayerAlwaysVisible() {
flicker.assertLayers {
this.isVisible(pipApp)
}
}
/** Checks the content overlay appears then disappears during the animation */
@Presubmit
@Test
open fun pipOverlayLayerAppearThenDisappear() {
val overlay = ComponentNameMatcher.PIP_CONTENT_OVERLAY
flicker.assertLayers {
this.notContains(overlay)
.then()
.isVisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY)
.contains(overlay)
.then()
.isVisible(pipApp)
.notContains(overlay)
}
}