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

Commit 6d44d95a authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Make replaceLayers less flaky

This is done by checking for a splash screen layer before app layer becomes visible

Test: atest FlickerTest:OpenAppTransition#appLayerReplacesLauncher

Bug: 208623073
Change-Id: I2c1a84ddde363facce645d08bd09b66e69d16586
parent cd355907
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -143,17 +143,26 @@ fun FlickerTestParameter.statusBarLayerRotatesScales() {
 * @param newLayer Layer that should be visible at the end
 * @param ignoreSnapshot If the snapshot layer should be ignored during the transition
 *     (useful mostly for app launch)
 * @param ignoreSplashscreen If the splashscreen layer should be ignored during the transition.
 *      If true then we will allow for a splashscreen to be shown before the layer is shown,
 *      otherwise we won't and the layer must appear immediately.
 */
fun FlickerTestParameter.replacesLayer(
    originalLayer: FlickerComponentName,
    newLayer: FlickerComponentName,
    ignoreSnapshot: Boolean = false
    ignoreSnapshot: Boolean = false,
    ignoreSplashscreen: Boolean = true
) {
    assertLayers {
        val assertion = this.isVisible(originalLayer)
        if (ignoreSnapshot) {
        if (ignoreSnapshot || ignoreSplashscreen) {
            assertion.then()
                    .isVisible(FlickerComponentName.SNAPSHOT, isOptional = true)
        }
        if (ignoreSnapshot) {
            assertion.isVisible(FlickerComponentName.SNAPSHOT, isOptional = true)
        }
        if (ignoreSplashscreen) {
            assertion.isSplashScreenVisibleFor(newLayer, isOptional = true)
        }
        assertion.then().isVisible(newLayer)
    }
+1 −1
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ abstract class OpenAppTransition(protected val testSpec: FlickerTestParameter) {
     * is replaced by [testApp], which remains visible until the end
     */
    open fun appLayerReplacesLauncher() {
        testSpec.replacesLayer(LAUNCHER_COMPONENT, testApp.component)
        testSpec.replacesLayer(LAUNCHER_COMPONENT, testApp.component, ignoreSnapshot = true)
    }

    /**