Merge "Update app launch tests to new DSL format" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-02-09 08:43:22 +00:00
committed by Android (Google) Code Review
4 changed files with 129 additions and 87 deletions

View File

@@ -17,14 +17,10 @@
package com.android.server.wm.flicker.launch
import android.platform.helpers.IAppHelper
import com.android.server.wm.flicker.dsl.WmAssertionBuilderLegacy
import com.android.server.wm.flicker.dsl.WmAssertionBuilder
fun WmAssertionBuilderLegacy.appWindowReplacesLauncherAsTopWindow(
testApp: IAppHelper,
bugId: Int = 0,
enabled: Boolean = bugId == 0
) {
all("appWindowReplacesLauncherAsTopWindow", bugId, enabled) {
fun WmAssertionBuilder.appWindowReplacesLauncherAsTopWindow(testApp: IAppHelper, bugId: Int = 0) {
all("appWindowReplacesLauncherAsTopWindow", bugId) {
this.showsAppWindowOnTop("Launcher")
.then()
.showsAppWindowOnTop("Snapshot", testApp.getPackage())

View File

@@ -16,7 +16,6 @@
package com.android.server.wm.flicker.launch
import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -51,7 +50,6 @@ import org.junit.runners.Parameterized
* Test cold launch app from launcher.
* To run this test: `atest FlickerTests:OpenAppColdTest`
*/
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -66,7 +64,7 @@ class OpenAppColdTest(
val testApp = SimpleAppHelper(instrumentation)
return FlickerTestRunnerFactory.getInstance()
.buildTest(instrumentation) { configuration ->
withTestName { buildTestTag("openAppCold", testApp, configuration) }
withTestName { buildTestTag(configuration) }
repeat { configuration.repetitions }
setup {
test {
@@ -88,33 +86,48 @@ class OpenAppColdTest(
}
}
assertions {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
val isRotated = configuration.startRotation.isRotated()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
presubmit {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
}
layersTrace {
// During testing the launcher is always in portrait mode
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation)
navBarLayerIsAlwaysVisible()
statusBarLayerIsAlwaysVisible()
appLayerReplacesWallpaperLayer(testApp.`package`)
if (!isRotated) {
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
}
}
eventLog {
focusChanges("NexusLauncherActivity", testApp.`package`)
}
}
layersTrace {
// During testing the launcher is always in portrait mode
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation)
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation,
enabled = !configuration.startRotation.isRotated())
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation,
enabled = !configuration.startRotation.isRotated())
navBarLayerIsAlwaysVisible()
statusBarLayerIsAlwaysVisible()
visibleLayersShownMoreThanOneConsecutiveEntry(enabled = false)
flaky {
layersTrace {
visibleLayersShownMoreThanOneConsecutiveEntry()
appLayerReplacesWallpaperLayer(testApp.`package`)
}
eventLog {
focusChanges("NexusLauncherActivity", testApp.`package`)
if (isRotated) {
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
}
}
}
}
}

View File

@@ -16,7 +16,6 @@
package com.android.server.wm.flicker.launch
import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -52,7 +51,6 @@ import org.junit.runners.Parameterized
* Launch an app from the recents app view (the overview)
* To run this test: `atest FlickerTests:OpenAppFromOverviewTest`
*/
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -67,7 +65,7 @@ class OpenAppFromOverviewTest(
val testApp = SimpleAppHelper(instrumentation)
return FlickerTestRunnerFactory.getInstance()
.buildTest(instrumentation, repetitions = 5) { configuration ->
withTestName { buildTestTag("openAppFromOverview", configuration) }
withTestName { buildTestTag(configuration) }
repeat { configuration.repetitions }
setup {
test {
@@ -92,36 +90,57 @@ class OpenAppFromOverviewTest(
}
}
assertions {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
val isRotated = configuration.startRotation.isRotated()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
presubmit {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
}
layersTrace {
appLayerReplacesWallpaperLayer(testApp.`package`)
if (!isRotated) {
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
} else {
statusBarLayerIsAlwaysVisible()
navBarLayerIsAlwaysVisible()
}
}
eventLog {
focusChanges("NexusLauncherActivity", testApp.`package`)
}
}
layersTrace {
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation,
bugId = 141361128)
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation,
enabled = !configuration.startRotation.isRotated())
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation,
enabled = !configuration.startRotation.isRotated())
statusBarLayerIsAlwaysVisible(
enabled = Surface.ROTATION_0 == configuration.endRotation)
navBarLayerIsAlwaysVisible(
enabled = Surface.ROTATION_0 == configuration.endRotation)
visibleLayersShownMoreThanOneConsecutiveEntry(
enabled = false)
appLayerReplacesWallpaperLayer(testApp.`package`)
postsubmit {
windowManagerTrace {
visibleWindowsShownMoreThanOneConsecutiveEntry()
}
}
eventLog {
focusChanges("NexusLauncherActivity", testApp.`package`)
flaky {
layersTrace {
visibleLayersShownMoreThanOneConsecutiveEntry()
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation,
bugId = 141361128)
if (isRotated) {
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
} else {
statusBarLayerIsAlwaysVisible()
navBarLayerIsAlwaysVisible()
}
}
}
}
}

View File

@@ -16,7 +16,6 @@
package com.android.server.wm.flicker.launch
import android.platform.test.annotations.Presubmit
import android.view.Surface
import androidx.test.filters.RequiresDevice
import androidx.test.platform.app.InstrumentationRegistry
@@ -51,7 +50,6 @@ import org.junit.runners.Parameterized
* Test warm launch app.
* To run this test: `atest FlickerTests:OpenAppWarmTest`
*/
@Presubmit
@RequiresDevice
@RunWith(Parameterized::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -64,7 +62,7 @@ class OpenAppWarmTest(testSpec: FlickerTestRunnerFactory.TestSpec) : FlickerTest
val testApp = SimpleAppHelper(instrumentation)
return FlickerTestRunnerFactory.getInstance()
.buildTest(instrumentation) { configuration ->
withTestName { buildTestTag("openAppWarm", testApp, configuration) }
withTestName { buildTestTag(configuration) }
repeat { configuration.repetitions }
setup {
test {
@@ -91,33 +89,49 @@ class OpenAppWarmTest(testSpec: FlickerTestRunnerFactory.TestSpec) : FlickerTest
}
}
assertions {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
val isRotated = configuration.startRotation.isRotated()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
presubmit {
windowManagerTrace {
navBarWindowIsAlwaysVisible()
statusBarWindowIsAlwaysVisible()
visibleWindowsShownMoreThanOneConsecutiveEntry()
appWindowReplacesLauncherAsTopWindow(testApp)
wallpaperWindowBecomesInvisible()
}
layersTrace {
// During testing the launcher is always in portrait mode
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation)
navBarLayerIsAlwaysVisible()
statusBarLayerIsAlwaysVisible()
appLayerReplacesWallpaperLayer(testApp.`package`)
if (!isRotated) {
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
}
}
eventLog {
focusChanges("NexusLauncherActivity", testApp.`package`)
}
}
layersTrace {
// During testing the launcher is always in portrait mode
noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation)
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation,
enabled = !configuration.startRotation.isRotated())
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation,
enabled = !configuration.startRotation.isRotated())
navBarLayerIsAlwaysVisible()
statusBarLayerIsAlwaysVisible()
visibleLayersShownMoreThanOneConsecutiveEntry(enabled = false)
flaky {
layersTrace {
visibleLayersShownMoreThanOneConsecutiveEntry()
appLayerReplacesWallpaperLayer(testApp.`package`)
}
eventLog {
focusChanges("NexusLauncherActivity", testApp.`package`)
if (isRotated) {
navBarLayerRotatesAndScales(Surface.ROTATION_0,
configuration.endRotation)
statusBarLayerRotatesScales(Surface.ROTATION_0,
configuration.endRotation)
}
}
}
}
}