Merge "Make replaceLayers less flaky"

This commit is contained in:
TreeHugger Robot
2021-12-06 19:21:43 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 4 deletions

View File

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

View File

@@ -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)
}
/**