Fix NavBar & StatusBar layer always visible assertion

When phone rotates, the status bar and navigation bar layers hide and then become visible again. The navBarLayerIsAlwaysVisible and statusBarLayerIsAlwaysVisible where only checking that the layer was always being shown. As part of the current behaviour, if the screen rotates, we need to check that the layer behaves this way: shows, hide, shows. Besides adding the new behaviour in the assertions, we are enabling again this assertions for some tests that had it disabled as part of the bug (OpenAppCold, OpenAppWarm, CloseImeAutoOpenWindow and CloseImeWindowToHome).

Test: atest FlickerTests:OpenAppColdTest FlickerTests:OpenAppWarmTest FlickerTests:CloseImeAutoOpenWindowToHomeTest FlickerTests:CloseImeWindowToHomeTest
Bug: b/140855415
Change-Id: I60a331a4a1242ef84acf93e2738bd9f4f92d51c5
This commit is contained in:
Antonella Dellanzo
2020-10-21 14:13:44 +02:00
parent df3eb6cff2
commit a1d07a8c4f
5 changed files with 47 additions and 15 deletions

View File

@@ -77,21 +77,43 @@ fun LayersAssertion.noUncoveredRegions(
@JvmOverloads
fun LayersAssertion.navBarLayerIsAlwaysVisible(
rotatesScreen: Boolean = false,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("navBarLayerIsAlwaysVisible", enabled, bugId) {
this.showsLayer(NAVIGATION_BAR_WINDOW_TITLE)
if (rotatesScreen) {
all("navBarLayerIsAlwaysVisible", enabled, bugId) {
this.showsLayer(NAVIGATION_BAR_WINDOW_TITLE)
.then()
.hidesLayer(NAVIGATION_BAR_WINDOW_TITLE)
.then()
.showsLayer(NAVIGATION_BAR_WINDOW_TITLE)
}
} else {
all("navBarLayerIsAlwaysVisible", enabled, bugId) {
this.showsLayer(NAVIGATION_BAR_WINDOW_TITLE)
}
}
}
@JvmOverloads
fun LayersAssertion.statusBarLayerIsAlwaysVisible(
rotatesScreen: Boolean = false,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("statusBarLayerIsAlwaysVisible", enabled, bugId) {
this.showsLayer(STATUS_BAR_WINDOW_TITLE)
if (rotatesScreen) {
all("statusBarLayerIsAlwaysVisible", enabled, bugId) {
this.showsLayer(STATUS_BAR_WINDOW_TITLE)
.then()
hidesLayer(STATUS_BAR_WINDOW_TITLE)
.then()
.showsLayer(STATUS_BAR_WINDOW_TITLE)
}
} else {
all("statusBarLayerIsAlwaysVisible", enabled, bugId) {
this.showsLayer(STATUS_BAR_WINDOW_TITLE)
}
}
}

View File

@@ -43,7 +43,7 @@ import org.junit.runners.Parameterized
/**
* Test IME window closing back to app window transitions.
* To run this test: `atest FlickerTests:CloseImeWindowToAppTest`
* To run this test: `atest FlickerTests:CloseImeAutoOpenWindowToHomeTest`
*/
@Presubmit
@RequiresDevice
@@ -94,14 +94,16 @@ class CloseImeAutoOpenWindowToHomeTest(
}
layersTrace {
navBarLayerIsAlwaysVisible(bugId = 140855415)
statusBarLayerIsAlwaysVisible(bugId = 140855415)
noUncoveredRegions(configuration.startRotation, Surface.ROTATION_0,
allStates = false)
navBarLayerRotatesAndScales(configuration.startRotation,
Surface.ROTATION_0, bugId = 140855415)
statusBarLayerRotatesScales(configuration.startRotation,
Surface.ROTATION_0)
navBarLayerIsAlwaysVisible(configuration.startRotation !=
Surface.ROTATION_0)
statusBarLayerIsAlwaysVisible(configuration.startRotation !=
Surface.ROTATION_0)
imeLayerBecomesInvisible(bugId = 141458352)
imeAppLayerBecomesInvisible(testApp, bugId = 153739621)
}

View File

@@ -100,14 +100,16 @@ class CloseImeWindowToHomeTest(
}
layersTrace {
navBarLayerIsAlwaysVisible(bugId = 140855415)
statusBarLayerIsAlwaysVisible(bugId = 140855415)
noUncoveredRegions(configuration.startRotation,
Surface.ROTATION_0, allStates = false)
navBarLayerRotatesAndScales(configuration.startRotation,
Surface.ROTATION_0, bugId = 140855415)
statusBarLayerRotatesScales(configuration.startRotation,
Surface.ROTATION_0)
navBarLayerIsAlwaysVisible(configuration.startRotation !=
Surface.ROTATION_0)
statusBarLayerIsAlwaysVisible(configuration.startRotation !=
Surface.ROTATION_0)
imeLayerBecomesInvisible(bugId = 153739621)
imeAppLayerBecomesInvisible(testApp, bugId = 153739621)
}

View File

@@ -87,6 +87,7 @@ class OpenAppColdTest(
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
}
@@ -99,9 +100,11 @@ class OpenAppColdTest(
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
navBarLayerIsAlwaysVisible(
enabled = configuration.endRotation == Surface.ROTATION_0)
statusBarLayerIsAlwaysVisible(enabled = false)
navBarLayerIsAlwaysVisible(Surface.ROTATION_0 !=
configuration.endRotation)
statusBarLayerIsAlwaysVisible(Surface.ROTATION_0 !=
configuration.endRotation)
wallpaperLayerBecomesInvisible(testApp)
}

View File

@@ -91,6 +91,7 @@ class OpenAppWarmTest(
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible(enabled = false)
}
@@ -103,9 +104,11 @@ class OpenAppWarmTest(
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
navBarLayerIsAlwaysVisible(
enabled = configuration.endRotation == Surface.ROTATION_0)
statusBarLayerIsAlwaysVisible(enabled = false)
navBarLayerIsAlwaysVisible(Surface.ROTATION_0 !=
configuration.endRotation)
statusBarLayerIsAlwaysVisible(Surface.ROTATION_0 !=
configuration.endRotation)
wallpaperLayerBecomesInvisible(testApp)
}