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

Commit b0d08a3a authored by Hongwei Wang's avatar Hongwei Wang
Browse files

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
Merged-In: I402aa1baf5c829fb12c30af659bc2827d65853a0
Change-Id: I402aa1baf5c829fb12c30af659bc2827d65853a0
parent 360db7b8
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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
+13 −3
Original line number Diff line number Diff line
@@ -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)
        }
    }