From 9edca34c6b7d48c69cd6df8f8e173a0ea236d457 Mon Sep 17 00:00:00 2001 From: Nataniel Borges Date: Mon, 1 Feb 2021 19:30:26 +0100 Subject: Update app launch tests to new DSL format Move the existing assertions into presubmit and flaky blocks Bug: 162923992 Test: atest FlickerTests Change-Id: I6bda8c4b56b19ab446751f951c0056728ca35fe3 --- .../server/wm/flicker/launch/CommonAssertions.kt | 10 +-- .../server/wm/flicker/launch/OpenAppColdTest.kt | 63 ++++++++++-------- .../wm/flicker/launch/OpenAppFromOverviewTest.kt | 75 ++++++++++++++-------- .../server/wm/flicker/launch/OpenAppWarmTest.kt | 64 ++++++++++-------- 4 files changed, 127 insertions(+), 85 deletions(-) diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/CommonAssertions.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/CommonAssertions.kt index 1bd1190313d8..be3fa5fa3cdf 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/CommonAssertions.kt +++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/CommonAssertions.kt @@ -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()) diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdTest.kt index 010ebf2c2788..0ec0b04339cd 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdTest.kt +++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdTest.kt @@ -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`) - 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) + if (!isRotated) { + navBarLayerRotatesAndScales(Surface.ROTATION_0, + configuration.endRotation) + statusBarLayerRotatesScales(Surface.ROTATION_0, + configuration.endRotation) + } + } - appLayerReplacesWallpaperLayer(testApp.`package`) + eventLog { + focusChanges("NexusLauncherActivity", testApp.`package`) + } } - eventLog { - focusChanges("NexusLauncherActivity", testApp.`package`) + flaky { + layersTrace { + visibleLayersShownMoreThanOneConsecutiveEntry() + + if (isRotated) { + navBarLayerRotatesAndScales(Surface.ROTATION_0, + configuration.endRotation) + statusBarLayerRotatesScales(Surface.ROTATION_0, + configuration.endRotation) + } + } } } } diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt index 5e08921c2253..84cc8e3ab058 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt +++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt @@ -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`) - 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) + if (!isRotated) { + navBarLayerRotatesAndScales(Surface.ROTATION_0, + configuration.endRotation) + statusBarLayerRotatesScales(Surface.ROTATION_0, + configuration.endRotation) + } else { + statusBarLayerIsAlwaysVisible() + navBarLayerIsAlwaysVisible() + } + } - appLayerReplacesWallpaperLayer(testApp.`package`) + eventLog { + focusChanges("NexusLauncherActivity", testApp.`package`) + } } - eventLog { - focusChanges("NexusLauncherActivity", testApp.`package`) + postsubmit { + windowManagerTrace { + visibleWindowsShownMoreThanOneConsecutiveEntry() + } + } + + 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() + } + } } } } diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppWarmTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppWarmTest.kt index 092cd4d2dad6..1f375a5cdea8 100644 --- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppWarmTest.kt +++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppWarmTest.kt @@ -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) - 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) + layersTrace { + // During testing the launcher is always in portrait mode + noUncoveredRegions(Surface.ROTATION_0, configuration.endRotation) + navBarLayerIsAlwaysVisible() + statusBarLayerIsAlwaysVisible() + appLayerReplacesWallpaperLayer(testApp.`package`) - appLayerReplacesWallpaperLayer(testApp.`package`) + if (!isRotated) { + navBarLayerRotatesAndScales(Surface.ROTATION_0, + configuration.endRotation) + statusBarLayerRotatesScales(Surface.ROTATION_0, + configuration.endRotation) + } + } + + eventLog { + focusChanges("NexusLauncherActivity", testApp.`package`) + } } - eventLog { - focusChanges("NexusLauncherActivity", testApp.`package`) + flaky { + layersTrace { + visibleLayersShownMoreThanOneConsecutiveEntry() + + if (isRotated) { + navBarLayerRotatesAndScales(Surface.ROTATION_0, + configuration.endRotation) + statusBarLayerRotatesScales(Surface.ROTATION_0, + configuration.endRotation) + } + } } } } -- cgit v1.2.3-59-g8ed1b