Merge "Adding assertions to ReOpenImeWindowTest"

This commit is contained in:
Antonella Dellanzo
2020-12-17 19:44:18 +00:00
committed by Android (Google) Code Review
10 changed files with 122 additions and 45 deletions

View File

@@ -80,12 +80,23 @@ fun WmAssertion.wallpaperWindowBecomesVisible(
}
}
fun WmAssertion.windowAlwaysVisible(
fun WmAssertion.wallpaperWindowBecomesInvisible(
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("wallpaperWindowBecomesInvisible", bugId, enabled) {
this.showsBelowAppWindow("Wallpaper")
.then()
.hidesBelowAppWindow("Wallpaper")
}
}
fun WmAssertion.appWindowAlwaysVisibleOnTop(
packageName: String,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("windowAlwaysVisible", bugId, enabled) {
all("appWindowAlwaysVisibleOnTop", bugId, enabled) {
this.showsAppWindowOnTop(packageName)
}
}
@@ -214,6 +225,18 @@ fun LayersAssertion.visibleLayersShownMoreThanOneConsecutiveEntry(
}
}
fun LayersAssertion.appLayerReplacesWallpaperLayer(
appName: String,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("appLayerReplacesWallpaperLayer", bugId, enabled) {
this.showsLayer("Wallpaper")
.then()
.replaceVisibleLayer("Wallpaper", appName)
}
}
fun LayersAssertion.wallpaperLayerReplacesAppLayer(
testApp: IAppHelper,
bugId: Int = 0,

View File

@@ -65,6 +65,17 @@ fun WmAssertion.imeAppWindowIsAlwaysVisible(
}
}
fun WmAssertion.imeWindowBecomesVisible(
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("imeWindowBecomesVisible", bugId, enabled) {
this.hidesNonAppWindow(IME_WINDOW_TITLE)
.then()
.showsNonAppWindow(IME_WINDOW_TITLE)
}
}
fun WmAssertion.imeWindowBecomesInvisible(
bugId: Int = 0,
enabled: Boolean = bugId == 0
@@ -76,6 +87,18 @@ fun WmAssertion.imeWindowBecomesInvisible(
}
}
fun WmAssertion.imeAppWindowBecomesVisible(
windowName: String,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("imeAppWindowBecomesVisible", bugId, enabled) {
this.hidesAppWindow(windowName)
.then()
.showsAppWindow(windowName)
}
}
fun WmAssertion.imeAppWindowBecomesInvisible(
testApp: IAppHelper,
bugId: Int = 0,

View File

@@ -33,6 +33,8 @@ import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.noUncoveredRegions
import com.android.server.wm.flicker.appWindowAlwaysVisibleOnTop
import com.android.server.wm.flicker.layerAlwaysVisible
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsAlwaysVisible
@@ -56,8 +58,6 @@ class OpenImeWindowTest(
flickerSpec: Flicker
) : FlickerTestRunner(testName, flickerSpec) {
companion object {
private const val IME_WINDOW_TITLE = "InputMethod"
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<Array<Any>> {
@@ -93,12 +93,8 @@ class OpenImeWindowTest(
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
all("imeWindowBecomesVisible") {
this.skipUntilFirstAssertion()
.hidesNonAppWindow(IME_WINDOW_TITLE)
.then()
.showsNonAppWindow(IME_WINDOW_TITLE)
}
imeWindowBecomesVisible()
appWindowAlwaysVisibleOnTop(testApp.`package`)
}
layersTrace {
@@ -110,6 +106,7 @@ class OpenImeWindowTest(
visibleLayersShownMoreThanOneConsecutiveEntry()
imeLayerBecomesVisible()
layerAlwaysVisible(testApp.`package`)
}
}
}

View File

@@ -23,14 +23,27 @@ import androidx.test.platform.app.InstrumentationRegistry
import com.android.server.wm.flicker.Flicker
import com.android.server.wm.flicker.FlickerTestRunner
import com.android.server.wm.flicker.FlickerTestRunnerFactory
import com.android.server.wm.flicker.helpers.buildTestTag
import com.android.server.wm.flicker.helpers.ImeAppAutoFocusHelper
import com.android.server.wm.flicker.helpers.reopenAppFromOverview
import com.android.server.wm.flicker.helpers.hasWindow
import com.android.server.wm.flicker.helpers.buildTestTag
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.flicker.navBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.navBarLayerRotatesAndScales
import com.android.server.wm.flicker.navBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.wallpaperWindowBecomesInvisible
import com.android.server.wm.flicker.appLayerReplacesWallpaperLayer
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
import com.android.server.wm.flicker.noUncoveredRegions
import com.android.server.wm.flicker.repetitions
import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.statusBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.testapp.ActivityOptions
import org.junit.FixMethodOrder
import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
@@ -54,8 +67,9 @@ class ReOpenImeWindowTest(
fun getParams(): List<Array<Any>> {
val instrumentation = InstrumentationRegistry.getInstrumentation()
val testApp = ImeAppAutoFocusHelper(instrumentation)
val testAppComponentName = ActivityOptions.IME_ACTIVITY_AUTO_FOCUS_COMPONENT_NAME
return FlickerTestRunnerFactory(instrumentation, repetitions = 10)
return FlickerTestRunnerFactory(instrumentation, repetitions = 5)
.buildTest { configuration ->
withTestName { buildTestTag("reOpenImeAutoFocus", testApp, configuration) }
repeat { configuration.repetitions }
@@ -73,7 +87,7 @@ class ReOpenImeWindowTest(
}
transitions {
device.reopenAppFromOverview()
device.hasWindow(testApp.getPackage())
WindowManagerStateHelper().waitForFullScreenApp(testAppComponentName)
}
teardown {
eachRun {
@@ -84,6 +98,35 @@ class ReOpenImeWindowTest(
this.setRotation(Surface.ROTATION_0)
}
}
assertions {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
imeWindowBecomesVisible()
imeAppWindowBecomesVisible(testAppComponentName.className)
wallpaperWindowBecomesInvisible()
}
layersTrace {
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation,
bugId = 141361128)
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerIsAlwaysVisible(
enabled = Surface.ROTATION_0 == configuration.endRotation)
navBarLayerIsAlwaysVisible(
enabled = Surface.ROTATION_0 == configuration.endRotation)
visibleLayersShownMoreThanOneConsecutiveEntry(
enabled = Surface.ROTATION_0 == configuration.endRotation)
imeLayerBecomesVisible()
appLayerReplacesWallpaperLayer(testAppComponentName.className)
}
}
}
}
}

View File

@@ -17,20 +17,8 @@
package com.android.server.wm.flicker.launch
import android.platform.helpers.IAppHelper
import com.android.server.wm.flicker.dsl.LayersAssertion
import com.android.server.wm.flicker.dsl.WmAssertion
fun WmAssertion.wallpaperWindowBecomesInvisible(
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("wallpaperWindowBecomesInvisible", bugId, enabled) {
this.showsBelowAppWindow("Wallpaper")
.then()
.hidesBelowAppWindow("Wallpaper")
}
}
fun WmAssertion.appWindowReplacesLauncherAsTopWindow(
testApp: IAppHelper,
bugId: Int = 0,
@@ -41,16 +29,4 @@ fun WmAssertion.appWindowReplacesLauncherAsTopWindow(
.then()
.showsAppWindowOnTop("Snapshot", testApp.getPackage())
}
}
fun LayersAssertion.appLayerReplacesWallpaperLayer(
testApp: IAppHelper,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("appLayerReplacesWallpaperLayer", bugId, enabled) {
this.showsLayer("Wallpaper")
.then()
.replaceVisibleLayer("Wallpaper", testApp.getPackage())
}
}

View File

@@ -40,6 +40,8 @@ import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.wallpaperWindowBecomesInvisible
import com.android.server.wm.flicker.appLayerReplacesWallpaperLayer
import org.junit.FixMethodOrder
import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
@@ -107,7 +109,7 @@ class OpenAppColdTest(
statusBarLayerIsAlwaysVisible(enabled = false)
visibleLayersShownMoreThanOneConsecutiveEntry(bugId = 174541970)
appLayerReplacesWallpaperLayer(testApp)
appLayerReplacesWallpaperLayer(testApp.`package`)
}
eventLog {

View File

@@ -29,7 +29,6 @@ import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEnt
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.helpers.StandardAppHelper
import com.android.server.wm.flicker.helpers.reopenAppFromOverview
import com.android.server.wm.flicker.helpers.hasWindow
import com.android.server.wm.flicker.helpers.buildTestTag
import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
@@ -42,6 +41,10 @@ import com.android.server.wm.flicker.startRotation
import com.android.server.wm.flicker.statusBarLayerIsAlwaysVisible
import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.wallpaperWindowBecomesInvisible
import com.android.server.wm.flicker.appLayerReplacesWallpaperLayer
import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
import org.junit.FixMethodOrder
import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
@@ -83,7 +86,9 @@ class OpenAppFromOverviewTest(
}
transitions {
device.reopenAppFromOverview()
device.hasWindow(testApp.getPackage())
WindowManagerStateHelper().waitForFullScreenApp(
ActivityOptions.SIMPLE_ACTIVITY_AUTO_FOCUS_COMPONENT_NAME
)
}
teardown {
test {
@@ -115,7 +120,7 @@ class OpenAppFromOverviewTest(
visibleLayersShownMoreThanOneConsecutiveEntry(
enabled = Surface.ROTATION_0 == configuration.endRotation)
appLayerReplacesWallpaperLayer(testApp)
appLayerReplacesWallpaperLayer(testApp.`package`)
}
eventLog {

View File

@@ -40,6 +40,8 @@ import com.android.server.wm.flicker.statusBarLayerRotatesScales
import com.android.server.wm.flicker.statusBarWindowIsAlwaysVisible
import com.android.server.wm.flicker.visibleWindowsShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.visibleLayersShownMoreThanOneConsecutiveEntry
import com.android.server.wm.flicker.wallpaperWindowBecomesInvisible
import com.android.server.wm.flicker.appLayerReplacesWallpaperLayer
import org.junit.FixMethodOrder
import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
@@ -112,7 +114,7 @@ class OpenAppWarmTest(
visibleLayersShownMoreThanOneConsecutiveEntry(
enabled = Surface.ROTATION_0 == configuration.endRotation)
appLayerReplacesWallpaperLayer(testApp)
appLayerReplacesWallpaperLayer(testApp.`package`)
}
eventLog {

View File

@@ -30,7 +30,7 @@ import com.android.server.wm.flicker.FlickerTestRunner
import com.android.server.wm.flicker.FlickerTestRunnerFactory
import com.android.server.wm.flicker.endRotation
import com.android.server.wm.flicker.focusDoesNotChange
import com.android.server.wm.flicker.windowAlwaysVisible
import com.android.server.wm.flicker.appWindowAlwaysVisibleOnTop
import com.android.server.wm.flicker.layerAlwaysVisible
import com.android.server.wm.flicker.helpers.WindowUtils
import com.android.server.wm.flicker.helpers.buildTestTag
@@ -146,7 +146,7 @@ class SeamlessAppRotationTest(
navBarWindowIsAlwaysVisible(bugId = 140855415)
statusBarWindowIsAlwaysVisible(bugId = 140855415)
visibleWindowsShownMoreThanOneConsecutiveEntry()
windowAlwaysVisible(configuration.intentPackageName)
appWindowAlwaysVisibleOnTop(configuration.intentPackageName)
}
layersTrace {

View File

@@ -23,4 +23,10 @@ public class ActivityOptions {
public static final ComponentName SEAMLESS_ACTIVITY_COMPONENT_NAME =
new ComponentName("com.android.server.wm.flicker.testapp",
"com.android.server.wm.flicker.testapp.SeamlessRotationActivity");
public static final ComponentName IME_ACTIVITY_AUTO_FOCUS_COMPONENT_NAME =
new ComponentName("com.android.server.wm.flicker.testapp",
"com.android.server.wm.flicker.testapp.ImeActivityAutoFocus");
public static final ComponentName SIMPLE_ACTIVITY_AUTO_FOCUS_COMPONENT_NAME =
new ComponentName("com.android.server.wm.flicker.testapp",
"com.android.server.wm.flicker.testapp.SimpleActivity");
}