summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nataniel Borges <natanieljr@google.com> 2022-09-28 12:17:29 +0000
committer Nataniel Borges <natanieljr@google.com> 2022-10-03 16:37:37 +0000
commit9d7d75873ce9ba38d6c0c20b90a9794941f87d35 (patch)
tree90dcb54c8294a5dd0dd970bd274700570c38d9fb
parenta77b86f6f8435a62cfc8ce5a6001cf2b56a9109c (diff)
Fix code formatting according to ktfmt rules
Bug: 246905204 Test: atest FlickerTests WMShellFlickerTests Change-Id: I1192107a280eb5b068f9da4ba5b92092496351a2
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/BaseTest.kt59
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt254
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonConstants.kt6
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/MultiWindowUtils.kt16
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/NotificationListener.kt24
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/WaitUtils.kt1
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/BaseBubbleScreen.kt44
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/DismissBubbleScreen.kt22
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/ExpandBubbleScreen.kt16
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleFromLockScreen.kt61
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleScreen.kt14
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreen.kt28
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreenShellTransit.kt5
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt17
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt31
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt63
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt44
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipTransition.kt42
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipViaIntentTest.kt31
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithDismissButtonTest.kt19
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt43
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/MovePipShelfHeightTransition.kt44
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTest.kt19
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTestShellTransit.kt3
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest.kt82
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest_ShellTransit.kt10
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipTransition.kt13
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipAppHelperTv.kt13
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipTestBase.kt5
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipBasicTest.kt26
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipMenuTests.kt160
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipNotificationTests.kt82
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt3
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvUtils.kt50
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt78
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt167
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromAnotherApp.kt60
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromHome.kt60
-rw-r--r--libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromRecent.kt64
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt59
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt191
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/OpenActivityEmbeddingPlaceholderSplit.kt50
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt26
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt29
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt32
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt24
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/CameraAppHelper.kt22
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt9
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt3
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt35
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppAutoFocusHelper.kt62
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt32
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt11
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt4
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt11
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt16
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt20
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt21
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt4
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt21
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt118
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt4
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt4
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt7
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt8
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt47
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt45
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt43
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt38
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt49
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt13
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeAndDialogThemeAppTest.kt53
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeOnStartTest.kt65
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowAndCloseTest.kt27
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowFromFixedOrientationAppTest.kt36
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowTest.kt40
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToOverViewTest.kt96
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt58
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest.kt56
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt13
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivitiesTransitionTest.kt30
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest.kt26
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest_ShellTransit.kt8
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdFromIcon.kt61
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdTest.kt32
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLauncherTransition.kt39
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt42
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWarm.kt80
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWithLockOverlayApp.kt45
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockTransition.kt74
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationCold.kt12
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationWarm.kt84
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromOverviewTest.kt37
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppNonResizeableTest.kt68
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppTransition.kt28
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppWarmTest.kt32
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt35
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt62
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt79
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest_ShellTransit.kt12
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt108
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest_ShellTransit.kt11
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt116
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt47
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt35
-rw-r--r--tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt123
106 files changed, 1971 insertions, 2636 deletions
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/BaseTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/BaseTest.kt
index 2b162aec34ca..c9c894317ff8 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/BaseTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/BaseTest.kt
@@ -38,50 +38,44 @@ import org.junit.Test
/**
* Base test class containing common assertions for [ComponentMatcher.NAV_BAR],
- * [ComponentMatcher.TASK_BAR], [ComponentMatcher.STATUS_BAR], and general assertions
- * (layers visible in consecutive states, entire screen covered, etc.)
+ * [ComponentMatcher.TASK_BAR], [ComponentMatcher.STATUS_BAR], and general assertions (layers
+ * visible in consecutive states, entire screen covered, etc.)
*/
-abstract class BaseTest @JvmOverloads constructor(
+abstract class BaseTest
+@JvmOverloads
+constructor(
protected val testSpec: FlickerTestParameter,
protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation(),
protected val tapl: LauncherInstrumentation = LauncherInstrumentation()
) {
init {
testSpec.setIsTablet(
- WindowManagerStateHelper(
- instrumentation,
- clearCacheAfterParsing = false
- ).currentState.wmState.isTablet
+ WindowManagerStateHelper(instrumentation, clearCacheAfterParsing = false)
+ .currentState
+ .wmState
+ .isTablet
)
}
- /**
- * Specification of the test transition to execute
- */
+ /** Specification of the test transition to execute */
abstract val transition: FlickerBuilder.() -> Unit
/**
- * Entry point for the test runner. It will use this method to initialize and cache
- * flicker executions
+ * Entry point for the test runner. It will use this method to initialize and cache flicker
+ * executions
*/
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
- setup {
- testSpec.setIsTablet(wmHelper.currentState.wmState.isTablet)
- }
+ setup { testSpec.setIsTablet(wmHelper.currentState.wmState.isTablet) }
transition()
}
}
- /**
- * Checks that all parts of the screen are covered during the transition
- */
+ /** Checks that all parts of the screen are covered during the transition */
open fun entireScreenCovered() = testSpec.entireScreenCovered()
- /**
- * Checks that the [ComponentMatcher.NAV_BAR] layer is visible during the whole transition
- */
+ /** Checks that the [ComponentMatcher.NAV_BAR] layer is visible during the whole transition */
@Presubmit
@Test
open fun navBarLayerIsVisibleAtStartAndEnd() {
@@ -111,9 +105,7 @@ abstract class BaseTest @JvmOverloads constructor(
testSpec.navBarWindowIsAlwaysVisible()
}
- /**
- * Checks that the [ComponentMatcher.TASK_BAR] layer is visible during the whole transition
- */
+ /** Checks that the [ComponentMatcher.TASK_BAR] layer is visible during the whole transition */
@Presubmit
@Test
open fun taskBarLayerIsVisibleAtStartAndEnd() {
@@ -142,7 +134,8 @@ abstract class BaseTest @JvmOverloads constructor(
testSpec.statusBarLayerIsVisibleAtStartAndEnd()
/**
- * Checks the position of the [ComponentMatcher.STATUS_BAR] at the start and end of the transition
+ * Checks the position of the [ComponentMatcher.STATUS_BAR] at the start and end of the
+ * transition
*/
@Presubmit
@Test
@@ -156,26 +149,22 @@ abstract class BaseTest @JvmOverloads constructor(
open fun statusBarWindowIsAlwaysVisible() = testSpec.statusBarWindowIsAlwaysVisible()
/**
- * Checks that all layers that are visible on the trace, are visible for at least 2
- * consecutive entries.
+ * Checks that all layers that are visible on the trace, are visible for at least 2 consecutive
+ * entries.
*/
@Presubmit
@Test
open fun visibleLayersShownMoreThanOneConsecutiveEntry() {
- testSpec.assertLayers {
- this.visibleLayersShownMoreThanOneConsecutiveEntry()
- }
+ testSpec.assertLayers { this.visibleLayersShownMoreThanOneConsecutiveEntry() }
}
/**
- * Checks that all windows that are visible on the trace, are visible for at least 2
- * consecutive entries.
+ * Checks that all windows that are visible on the trace, are visible for at least 2 consecutive
+ * entries.
*/
@Presubmit
@Test
open fun visibleWindowsShownMoreThanOneConsecutiveEntry() {
- testSpec.assertWm {
- this.visibleWindowsShownMoreThanOneConsecutiveEntry()
- }
+ testSpec.assertWm { this.visibleWindowsShownMoreThanOneConsecutiveEntry() }
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt
index 6d133779ea60..6f1ff99cb0b3 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt
@@ -15,6 +15,7 @@
*/
@file:JvmName("CommonAssertions")
+
package com.android.wm.shell.flicker
import android.view.Surface
@@ -26,15 +27,11 @@ import com.android.server.wm.traces.common.IComponentMatcher
import com.android.server.wm.traces.common.region.Region
fun FlickerTestParameter.appPairsDividerIsVisibleAtEnd() {
- assertLayersEnd {
- this.isVisible(APP_PAIR_SPLIT_DIVIDER_COMPONENT)
- }
+ assertLayersEnd { this.isVisible(APP_PAIR_SPLIT_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.appPairsDividerIsInvisibleAtEnd() {
- assertLayersEnd {
- this.notContains(APP_PAIR_SPLIT_DIVIDER_COMPONENT)
- }
+ assertLayersEnd { this.notContains(APP_PAIR_SPLIT_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.appPairsDividerBecomesVisible() {
@@ -82,27 +79,19 @@ fun FlickerTestParameter.splitScreenDismissed(
}
fun FlickerTestParameter.splitScreenDividerIsVisibleAtStart() {
- assertLayersStart {
- this.isVisible(SPLIT_SCREEN_DIVIDER_COMPONENT)
- }
+ assertLayersStart { this.isVisible(SPLIT_SCREEN_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.splitScreenDividerIsVisibleAtEnd() {
- assertLayersEnd {
- this.isVisible(SPLIT_SCREEN_DIVIDER_COMPONENT)
- }
+ assertLayersEnd { this.isVisible(SPLIT_SCREEN_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.splitScreenDividerIsInvisibleAtStart() {
- assertLayersStart {
- this.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT)
- }
+ assertLayersStart { this.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.splitScreenDividerIsInvisibleAtEnd() {
- assertLayersEnd {
- this.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT)
- }
+ assertLayersEnd { this.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.splitScreenDividerBecomesVisible() {
@@ -117,40 +106,20 @@ fun FlickerTestParameter.splitScreenDividerBecomesInvisible() {
}
}
-fun FlickerTestParameter.layerBecomesVisible(
- component: IComponentMatcher
-) {
- assertLayers {
- this.isInvisible(component)
- .then()
- .isVisible(component)
- }
+fun FlickerTestParameter.layerBecomesVisible(component: IComponentMatcher) {
+ assertLayers { this.isInvisible(component).then().isVisible(component) }
}
-fun FlickerTestParameter.layerBecomesInvisible(
- component: IComponentMatcher
-) {
- assertLayers {
- this.isVisible(component)
- .then()
- .isInvisible(component)
- }
+fun FlickerTestParameter.layerBecomesInvisible(component: IComponentMatcher) {
+ assertLayers { this.isVisible(component).then().isInvisible(component) }
}
-fun FlickerTestParameter.layerIsVisibleAtEnd(
- component: IComponentMatcher
-) {
- assertLayersEnd {
- this.isVisible(component)
- }
+fun FlickerTestParameter.layerIsVisibleAtEnd(component: IComponentMatcher) {
+ assertLayersEnd { this.isVisible(component) }
}
-fun FlickerTestParameter.layerKeepVisible(
- component: IComponentMatcher
-) {
- assertLayers {
- this.isVisible(component)
- }
+fun FlickerTestParameter.layerKeepVisible(component: IComponentMatcher) {
+ assertLayers { this.isVisible(component) }
}
fun FlickerTestParameter.splitAppLayerBoundsBecomesVisible(
@@ -164,13 +133,15 @@ fun FlickerTestParameter.splitAppLayerBoundsBecomesVisible(
.isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
.then()
.splitAppLayerBoundsSnapToDivider(
- component, landscapePosLeft, portraitPosTop, endRotation)
+ component,
+ landscapePosLeft,
+ portraitPosTop,
+ endRotation
+ )
}
}
-fun FlickerTestParameter.splitAppLayerBoundsBecomesVisibleByDrag(
- component: IComponentMatcher
-) {
+fun FlickerTestParameter.splitAppLayerBoundsBecomesVisibleByDrag(component: IComponentMatcher) {
assertLayers {
this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component), isOptional = true)
.then()
@@ -188,7 +159,11 @@ fun FlickerTestParameter.splitAppLayerBoundsBecomesInvisible(
) {
assertLayers {
this.splitAppLayerBoundsSnapToDivider(
- component, landscapePosLeft, portraitPosTop, endRotation)
+ component,
+ landscapePosLeft,
+ portraitPosTop,
+ endRotation
+ )
.then()
.isVisible(component, true)
.then()
@@ -224,15 +199,27 @@ fun FlickerTestParameter.splitAppLayerBoundsChanges(
assertLayers {
if (landscapePosLeft) {
this.splitAppLayerBoundsSnapToDivider(
- component, landscapePosLeft, portraitPosTop, endRotation)
+ component,
+ landscapePosLeft,
+ portraitPosTop,
+ endRotation
+ )
} else {
this.splitAppLayerBoundsSnapToDivider(
- component, landscapePosLeft, portraitPosTop, endRotation)
+ component,
+ landscapePosLeft,
+ portraitPosTop,
+ endRotation
+ )
.then()
.isInvisible(component)
.then()
.splitAppLayerBoundsSnapToDivider(
- component, landscapePosLeft, portraitPosTop, endRotation)
+ component,
+ landscapePosLeft,
+ portraitPosTop,
+ endRotation
+ )
}
}
}
@@ -257,45 +244,46 @@ fun LayerTraceEntrySubject.splitAppLayerBoundsSnapToDivider(
val displayBounds = WindowUtils.getDisplayBounds(rotation)
return invoke {
val dividerRegion = layer(SPLIT_SCREEN_DIVIDER_COMPONENT).visibleRegion.region
- visibleRegion(component).coversAtMost(
- if (displayBounds.width > displayBounds.height) {
- if (landscapePosLeft) {
- Region.from(
- 0,
- 0,
- (dividerRegion.bounds.left + dividerRegion.bounds.right) / 2,
- displayBounds.bounds.bottom)
- } else {
- Region.from(
- (dividerRegion.bounds.left + dividerRegion.bounds.right) / 2,
- 0,
- displayBounds.bounds.right,
- displayBounds.bounds.bottom
- )
- }
- } else {
- if (portraitPosTop) {
- Region.from(
- 0,
- 0,
- displayBounds.bounds.right,
- (dividerRegion.bounds.top + dividerRegion.bounds.bottom) / 2)
+ visibleRegion(component)
+ .coversAtMost(
+ if (displayBounds.width > displayBounds.height) {
+ if (landscapePosLeft) {
+ Region.from(
+ 0,
+ 0,
+ (dividerRegion.bounds.left + dividerRegion.bounds.right) / 2,
+ displayBounds.bounds.bottom
+ )
+ } else {
+ Region.from(
+ (dividerRegion.bounds.left + dividerRegion.bounds.right) / 2,
+ 0,
+ displayBounds.bounds.right,
+ displayBounds.bounds.bottom
+ )
+ }
} else {
- Region.from(
- 0,
- (dividerRegion.bounds.top + dividerRegion.bounds.bottom) / 2,
- displayBounds.bounds.right,
- displayBounds.bounds.bottom
- )
+ if (portraitPosTop) {
+ Region.from(
+ 0,
+ 0,
+ displayBounds.bounds.right,
+ (dividerRegion.bounds.top + dividerRegion.bounds.bottom) / 2
+ )
+ } else {
+ Region.from(
+ 0,
+ (dividerRegion.bounds.top + dividerRegion.bounds.bottom) / 2,
+ displayBounds.bounds.right,
+ displayBounds.bounds.bottom
+ )
+ }
}
- }
- )
+ )
}
}
-fun FlickerTestParameter.appWindowBecomesVisible(
- component: IComponentMatcher
-) {
+fun FlickerTestParameter.appWindowBecomesVisible(component: IComponentMatcher) {
assertWm {
this.isAppWindowInvisible(component)
.then()
@@ -307,60 +295,32 @@ fun FlickerTestParameter.appWindowBecomesVisible(
}
}
-fun FlickerTestParameter.appWindowBecomesInvisible(
- component: IComponentMatcher
-) {
- assertWm {
- this.isAppWindowVisible(component)
- .then()
- .isAppWindowInvisible(component)
- }
+fun FlickerTestParameter.appWindowBecomesInvisible(component: IComponentMatcher) {
+ assertWm { this.isAppWindowVisible(component).then().isAppWindowInvisible(component) }
}
-fun FlickerTestParameter.appWindowIsVisibleAtStart(
- component: IComponentMatcher
-) {
- assertWmStart {
- this.isAppWindowVisible(component)
- }
+fun FlickerTestParameter.appWindowIsVisibleAtStart(component: IComponentMatcher) {
+ assertWmStart { this.isAppWindowVisible(component) }
}
-fun FlickerTestParameter.appWindowIsVisibleAtEnd(
- component: IComponentMatcher
-) {
- assertWmEnd {
- this.isAppWindowVisible(component)
- }
+fun FlickerTestParameter.appWindowIsVisibleAtEnd(component: IComponentMatcher) {
+ assertWmEnd { this.isAppWindowVisible(component) }
}
-fun FlickerTestParameter.appWindowIsInvisibleAtStart(
- component: IComponentMatcher
-) {
- assertWmStart {
- this.isAppWindowInvisible(component)
- }
+fun FlickerTestParameter.appWindowIsInvisibleAtStart(component: IComponentMatcher) {
+ assertWmStart { this.isAppWindowInvisible(component) }
}
-fun FlickerTestParameter.appWindowIsInvisibleAtEnd(
- component: IComponentMatcher
-) {
- assertWmEnd {
- this.isAppWindowInvisible(component)
- }
+fun FlickerTestParameter.appWindowIsInvisibleAtEnd(component: IComponentMatcher) {
+ assertWmEnd { this.isAppWindowInvisible(component) }
}
-fun FlickerTestParameter.appWindowKeepVisible(
- component: IComponentMatcher
-) {
- assertWm {
- this.isAppWindowVisible(component)
- }
+fun FlickerTestParameter.appWindowKeepVisible(component: IComponentMatcher) {
+ assertWm { this.isAppWindowVisible(component) }
}
fun FlickerTestParameter.dockedStackDividerIsVisibleAtEnd() {
- assertLayersEnd {
- this.isVisible(DOCKED_STACK_DIVIDER_COMPONENT)
- }
+ assertLayersEnd { this.isVisible(DOCKED_STACK_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.dockedStackDividerBecomesVisible() {
@@ -380,9 +340,7 @@ fun FlickerTestParameter.dockedStackDividerBecomesInvisible() {
}
fun FlickerTestParameter.dockedStackDividerNotExistsAtEnd() {
- assertLayersEnd {
- this.notContains(DOCKED_STACK_DIVIDER_COMPONENT)
- }
+ assertLayersEnd { this.notContains(DOCKED_STACK_DIVIDER_COMPONENT) }
}
fun FlickerTestParameter.appPairsPrimaryBoundsIsVisibleAtEnd(
@@ -391,8 +349,7 @@ fun FlickerTestParameter.appPairsPrimaryBoundsIsVisibleAtEnd(
) {
assertLayersEnd {
val dividerRegion = layer(APP_PAIR_SPLIT_DIVIDER_COMPONENT).visibleRegion.region
- visibleRegion(primaryComponent)
- .overlaps(getPrimaryRegion(dividerRegion, rotation))
+ visibleRegion(primaryComponent).overlaps(getPrimaryRegion(dividerRegion, rotation))
}
}
@@ -402,8 +359,7 @@ fun FlickerTestParameter.dockedStackPrimaryBoundsIsVisibleAtEnd(
) {
assertLayersEnd {
val dividerRegion = layer(DOCKED_STACK_DIVIDER_COMPONENT).visibleRegion.region
- visibleRegion(primaryComponent)
- .overlaps(getPrimaryRegion(dividerRegion, rotation))
+ visibleRegion(primaryComponent).overlaps(getPrimaryRegion(dividerRegion, rotation))
}
}
@@ -413,8 +369,7 @@ fun FlickerTestParameter.appPairsSecondaryBoundsIsVisibleAtEnd(
) {
assertLayersEnd {
val dividerRegion = layer(APP_PAIR_SPLIT_DIVIDER_COMPONENT).visibleRegion.region
- visibleRegion(secondaryComponent)
- .overlaps(getSecondaryRegion(dividerRegion, rotation))
+ visibleRegion(secondaryComponent).overlaps(getSecondaryRegion(dividerRegion, rotation))
}
}
@@ -424,8 +379,7 @@ fun FlickerTestParameter.dockedStackSecondaryBoundsIsVisibleAtEnd(
) {
assertLayersEnd {
val dividerRegion = layer(DOCKED_STACK_DIVIDER_COMPONENT).visibleRegion.region
- visibleRegion(secondaryComponent)
- .overlaps(getSecondaryRegion(dividerRegion, rotation))
+ visibleRegion(secondaryComponent).overlaps(getSecondaryRegion(dividerRegion, rotation))
}
}
@@ -433,12 +387,16 @@ fun getPrimaryRegion(dividerRegion: Region, rotation: Int): Region {
val displayBounds = WindowUtils.getDisplayBounds(rotation)
return if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) {
Region.from(
- 0, 0, displayBounds.bounds.right,
+ 0,
+ 0,
+ displayBounds.bounds.right,
dividerRegion.bounds.top + WindowUtils.dockedStackDividerInset
)
} else {
Region.from(
- 0, 0, dividerRegion.bounds.left + WindowUtils.dockedStackDividerInset,
+ 0,
+ 0,
+ dividerRegion.bounds.left + WindowUtils.dockedStackDividerInset,
displayBounds.bounds.bottom
)
}
@@ -448,13 +406,17 @@ fun getSecondaryRegion(dividerRegion: Region, rotation: Int): Region {
val displayBounds = WindowUtils.getDisplayBounds(rotation)
return if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) {
Region.from(
- 0, dividerRegion.bounds.bottom - WindowUtils.dockedStackDividerInset,
- displayBounds.bounds.right, displayBounds.bounds.bottom
+ 0,
+ dividerRegion.bounds.bottom - WindowUtils.dockedStackDividerInset,
+ displayBounds.bounds.right,
+ displayBounds.bounds.bottom
)
} else {
Region.from(
- dividerRegion.bounds.right - WindowUtils.dockedStackDividerInset, 0,
- displayBounds.bounds.right, displayBounds.bounds.bottom
+ dividerRegion.bounds.right - WindowUtils.dockedStackDividerInset,
+ 0,
+ displayBounds.bounds.right,
+ displayBounds.bounds.bottom
)
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonConstants.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonConstants.kt
index 53dd8b04afeb..79978929cf3e 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonConstants.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonConstants.kt
@@ -15,6 +15,7 @@
*/
@file:JvmName("CommonConstants")
+
package com.android.wm.shell.flicker
import com.android.server.wm.traces.common.ComponentNameMatcher
@@ -26,5 +27,8 @@ val SPLIT_SCREEN_DIVIDER_COMPONENT = ComponentNameMatcher("", "StageCoordinatorS
val SPLIT_DECOR_MANAGER = ComponentNameMatcher("", "SplitDecorManager#")
enum class Direction {
- UP, DOWN, LEFT, RIGHT
+ UP,
+ DOWN,
+ LEFT,
+ RIGHT
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/MultiWindowUtils.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/MultiWindowUtils.kt
index c045325f19c3..87b94ff8668b 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/MultiWindowUtils.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/MultiWindowUtils.kt
@@ -33,17 +33,23 @@ object MultiWindowUtils {
}
fun getDevEnableNonResizableMultiWindow(context: Context): Int =
- Settings.Global.getInt(context.contentResolver,
- Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW)
+ Settings.Global.getInt(
+ context.contentResolver,
+ Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW
+ )
fun setDevEnableNonResizableMultiWindow(context: Context, configValue: Int) =
- Settings.Global.putInt(context.contentResolver,
- Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, configValue)
+ Settings.Global.putInt(
+ context.contentResolver,
+ Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW,
+ configValue
+ )
fun setSupportsNonResizableMultiWindow(instrumentation: Instrumentation, configValue: Int) =
executeShellCommand(
instrumentation,
- createConfigSupportsNonResizableMultiWindowCommand(configValue))
+ createConfigSupportsNonResizableMultiWindowCommand(configValue)
+ )
fun resetMultiWindowConfig(instrumentation: Instrumentation) =
executeShellCommand(instrumentation, resetMultiWindowConfigCommand)
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/NotificationListener.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/NotificationListener.kt
index 51f7a18f60dd..e0ef92457f58 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/NotificationListener.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/NotificationListener.kt
@@ -51,7 +51,7 @@ class NotificationListener : NotificationListenerService() {
private const val CMD_NOTIFICATION_ALLOW_LISTENER = "cmd notification allow_listener %s"
private const val CMD_NOTIFICATION_DISALLOW_LISTENER =
- "cmd notification disallow_listener %s"
+ "cmd notification disallow_listener %s"
private const val COMPONENT_NAME = "com.android.wm.shell.flicker/.NotificationListener"
private var instance: NotificationListener? = null
@@ -79,25 +79,23 @@ class NotificationListener : NotificationListenerService() {
): StatusBarNotification? {
instance?.run {
return notifications.values.firstOrNull(predicate)
- } ?: throw IllegalStateException("NotificationListenerService is not connected")
+ }
+ ?: throw IllegalStateException("NotificationListenerService is not connected")
}
fun waitForNotificationToAppear(
predicate: (StatusBarNotification) -> Boolean
): StatusBarNotification? {
instance?.let {
- return waitForResult(extractor = {
- it.notifications.values.firstOrNull(predicate)
- }).second
- } ?: throw IllegalStateException("NotificationListenerService is not connected")
+ return waitForResult(extractor = { it.notifications.values.firstOrNull(predicate) })
+ .second
+ }
+ ?: throw IllegalStateException("NotificationListenerService is not connected")
}
- fun waitForNotificationToDisappear(
- predicate: (StatusBarNotification) -> Boolean
- ): Boolean {
- return instance?.let {
- wait { it.notifications.values.none(predicate) }
- } ?: throw IllegalStateException("NotificationListenerService is not connected")
+ fun waitForNotificationToDisappear(predicate: (StatusBarNotification) -> Boolean): Boolean {
+ return instance?.let { wait { it.notifications.values.none(predicate) } }
+ ?: throw IllegalStateException("NotificationListenerService is not connected")
}
}
-} \ No newline at end of file
+}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/WaitUtils.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/WaitUtils.kt
index 4d87ec9e872f..556cb06f3ca1 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/WaitUtils.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/WaitUtils.kt
@@ -15,6 +15,7 @@
*/
@file:JvmName("WaitUtils")
+
package com.android.wm.shell.flicker
import android.os.SystemClock
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/BaseBubbleScreen.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/BaseBubbleScreen.kt
index cbe085be8952..0fc2004ce7f9 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/BaseBubbleScreen.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/BaseBubbleScreen.kt
@@ -34,21 +34,21 @@ import com.android.server.wm.flicker.helpers.SYSTEMUI_PACKAGE
import com.android.wm.shell.flicker.BaseTest
import org.junit.runners.Parameterized
-/**
- * Base configurations for Bubble flicker tests
- */
-abstract class BaseBubbleScreen(
- testSpec: FlickerTestParameter
-) : BaseTest(testSpec) {
+/** Base configurations for Bubble flicker tests */
+abstract class BaseBubbleScreen(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
protected val context: Context = instrumentation.context
protected val testApp = LaunchBubbleHelper(instrumentation)
- private val notifyManager = INotificationManager.Stub.asInterface(
- ServiceManager.getService(Context.NOTIFICATION_SERVICE))
+ private val notifyManager =
+ INotificationManager.Stub.asInterface(
+ ServiceManager.getService(Context.NOTIFICATION_SERVICE)
+ )
- private val uid = context.packageManager.getApplicationInfo(
- testApp.`package`, PackageManager.ApplicationInfoFlags.of(0)).uid
+ private val uid =
+ context.packageManager
+ .getApplicationInfo(testApp.`package`, PackageManager.ApplicationInfoFlags.of(0))
+ .uid
@JvmOverloads
protected open fun buildTransition(
@@ -56,16 +56,22 @@ abstract class BaseBubbleScreen(
): FlickerBuilder.() -> Unit {
return {
setup {
- notifyManager.setBubblesAllowed(testApp.`package`,
- uid, NotificationManager.BUBBLE_PREFERENCE_ALL)
+ notifyManager.setBubblesAllowed(
+ testApp.`package`,
+ uid,
+ NotificationManager.BUBBLE_PREFERENCE_ALL
+ )
testApp.launchViaIntent(wmHelper)
waitAndGetAddBubbleBtn()
waitAndGetCancelAllBtn()
}
teardown {
- notifyManager.setBubblesAllowed(testApp.`package`,
- uid, NotificationManager.BUBBLE_PREFERENCE_NONE)
+ notifyManager.setBubblesAllowed(
+ testApp.`package`,
+ uid,
+ NotificationManager.BUBBLE_PREFERENCE_NONE
+ )
testApp.exit()
}
@@ -73,17 +79,17 @@ abstract class BaseBubbleScreen(
}
}
- protected fun Flicker.waitAndGetAddBubbleBtn(): UiObject2? = device.wait(Until.findObject(
- By.text("Add Bubble")), FIND_OBJECT_TIMEOUT)
- protected fun Flicker.waitAndGetCancelAllBtn(): UiObject2? = device.wait(Until.findObject(
- By.text("Cancel All Bubble")), FIND_OBJECT_TIMEOUT)
+ protected fun Flicker.waitAndGetAddBubbleBtn(): UiObject2? =
+ device.wait(Until.findObject(By.text("Add Bubble")), FIND_OBJECT_TIMEOUT)
+ protected fun Flicker.waitAndGetCancelAllBtn(): UiObject2? =
+ device.wait(Until.findObject(By.text("Cancel All Bubble")), FIND_OBJECT_TIMEOUT)
companion object {
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
+ .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
}
const val FIND_OBJECT_TIMEOUT = 2000L
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/DismissBubbleScreen.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/DismissBubbleScreen.kt
index 4a914a3eaf5c..ab721173763e 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/DismissBubbleScreen.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/DismissBubbleScreen.kt
@@ -38,7 +38,9 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:DismissBubbleScreen`
*
* Actions:
+ * ```
* Dismiss a bubble notification
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -58,11 +60,11 @@ open class DismissBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScree
transitions {
wm.run { wm.defaultDisplay.getMetrics(displaySize) }
val dist = Point((displaySize.widthPixels / 2), displaySize.heightPixels)
- val showBubble = device.wait(
- Until.findObject(
- By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)
- ), FIND_OBJECT_TIMEOUT
- )
+ val showBubble =
+ device.wait(
+ Until.findObject(By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)),
+ FIND_OBJECT_TIMEOUT
+ )
showBubble?.run { drag(dist, 1000) } ?: error("Show bubble not found")
}
}
@@ -70,22 +72,18 @@ open class DismissBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScree
@Presubmit
@Test
open fun testAppIsAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/ExpandBubbleScreen.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/ExpandBubbleScreen.kt
index d48175e5f49a..226eab89920f 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/ExpandBubbleScreen.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/ExpandBubbleScreen.kt
@@ -33,9 +33,11 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:ExpandBubbleScreen`
*
* Actions:
+ * ```
* Launch an app and enable app's bubble notification
* Send a bubble notification
* The activity for the bubble is launched
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -50,11 +52,11 @@ open class ExpandBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen
addBubbleBtn?.click() ?: error("Add Bubble not found")
}
transitions {
- val showBubble = device.wait(
- Until.findObject(
- By.res("com.android.systemui", "bubble_view")
- ), FIND_OBJECT_TIMEOUT
- )
+ val showBubble =
+ device.wait(
+ Until.findObject(By.res("com.android.systemui", "bubble_view")),
+ FIND_OBJECT_TIMEOUT
+ )
showBubble?.run { showBubble.click() } ?: error("Bubble notify not found")
}
}
@@ -62,8 +64,6 @@ open class ExpandBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen
@Presubmit
@Test
open fun testAppIsAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleFromLockScreen.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleFromLockScreen.kt
index 83dcb5a3fb8b..275f6c802293 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleFromLockScreen.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleFromLockScreen.kt
@@ -36,7 +36,9 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:LaunchBubbleFromLockScreen`
*
* Actions:
+ * ```
* Launch an bubble from notification on lock screen
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -50,36 +52,32 @@ class LaunchBubbleFromLockScreen(testSpec: FlickerTestParameter) : BaseBubbleScr
val addBubbleBtn = waitAndGetAddBubbleBtn()
addBubbleBtn?.click() ?: error("Bubble widget not found")
device.sleep()
- wmHelper.StateSyncBuilder()
- .withoutTopVisibleAppWindows()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify()
device.wakeUp()
}
transitions {
// Swipe & wait for the notification shade to expand so all can be seen
- val wm = context.getSystemService(WindowManager::class.java)
- ?: error("Unable to obtain WM service")
+ val wm =
+ context.getSystemService(WindowManager::class.java)
+ ?: error("Unable to obtain WM service")
val metricInsets = wm.currentWindowMetrics.windowInsets
- val insets = metricInsets.getInsetsIgnoringVisibility(
- WindowInsets.Type.statusBars()
- or WindowInsets.Type.displayCutout()
- )
+ val insets =
+ metricInsets.getInsetsIgnoringVisibility(
+ WindowInsets.Type.statusBars() or WindowInsets.Type.displayCutout()
+ )
device.swipe(100, insets.top + 100, 100, device.displayHeight / 2, 4)
device.waitForIdle(2000)
instrumentation.uiAutomation.syncInputTransactions()
- val notification = device.wait(
- Until.findObject(
- By.text("BubbleChat")
- ), FIND_OBJECT_TIMEOUT
- )
+ val notification =
+ device.wait(Until.findObject(By.text("BubbleChat")), FIND_OBJECT_TIMEOUT)
notification?.click() ?: error("Notification not found")
instrumentation.uiAutomation.syncInputTransactions()
- val showBubble = device.wait(
- Until.findObject(
- By.res("com.android.systemui", "bubble_view")
- ), FIND_OBJECT_TIMEOUT
- )
+ val showBubble =
+ device.wait(
+ Until.findObject(By.res("com.android.systemui", "bubble_view")),
+ FIND_OBJECT_TIMEOUT
+ )
showBubble?.click() ?: error("Bubble notify not found")
instrumentation.uiAutomation.syncInputTransactions()
val cancelAllBtn = waitAndGetCancelAllBtn()
@@ -90,9 +88,7 @@ class LaunchBubbleFromLockScreen(testSpec: FlickerTestParameter) : BaseBubbleScr
@FlakyTest(bugId = 242088970)
@Test
fun testAppIsVisibleAtEnd() {
- testSpec.assertLayersEnd {
- this.isVisible(testApp)
- }
+ testSpec.assertLayersEnd { this.isVisible(testApp) }
}
/** {@inheritDoc} */
@@ -104,32 +100,27 @@ class LaunchBubbleFromLockScreen(testSpec: FlickerTestParameter) : BaseBubbleScr
/** {@inheritDoc} */
@FlakyTest(bugId = 206753786)
@Test
- override fun navBarLayerIsVisibleAtStartAndEnd() =
- super.navBarLayerIsVisibleAtStartAndEnd()
+ override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@FlakyTest(bugId = 206753786)
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@FlakyTest(bugId = 206753786)
@Test
- override fun navBarWindowIsAlwaysVisible() =
- super.navBarWindowIsAlwaysVisible()
+ override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@FlakyTest(bugId = 242088970)
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@FlakyTest(bugId = 242088970)
@@ -140,14 +131,12 @@ class LaunchBubbleFromLockScreen(testSpec: FlickerTestParameter) : BaseBubbleScr
/** {@inheritDoc} */
@FlakyTest(bugId = 242088970)
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@FlakyTest(bugId = 242088970)
@Test
- override fun statusBarWindowIsAlwaysVisible() =
- super.statusBarWindowIsAlwaysVisible()
+ override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@FlakyTest(bugId = 242088970)
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleScreen.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleScreen.kt
index 81204f49d03b..b86599913649 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleScreen.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/LaunchBubbleScreen.kt
@@ -32,8 +32,10 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:LaunchBubbleScreen`
*
* Actions:
+ * ```
* Launch an app and enable app's bubble notification
* Send a bubble notification
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -48,17 +50,15 @@ open class LaunchBubbleScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen
addBubbleBtn?.click() ?: error("Bubble widget not found")
device.wait(
- Until.findObjects(
- By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)
- ), FIND_OBJECT_TIMEOUT
- ) ?: error("No bubbles found")
+ Until.findObjects(By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)),
+ FIND_OBJECT_TIMEOUT
+ )
+ ?: error("No bubbles found")
}
}
@Test
open fun testAppIsAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreen.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreen.kt
index 364090510138..bf4d7d4e7734 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreen.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreen.kt
@@ -38,7 +38,9 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:MultiBubblesScreen`
*
* Actions:
+ * ```
* Switch in different bubble notifications
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -59,20 +61,22 @@ open class MultiBubblesScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen
addBubbleBtn.click()
SystemClock.sleep(1000)
}
- val showBubble = device.wait(
- Until.findObject(
- By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)
- ), FIND_OBJECT_TIMEOUT
- ) ?: error("Show bubble not found")
+ val showBubble =
+ device.wait(
+ Until.findObject(By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)),
+ FIND_OBJECT_TIMEOUT
+ )
+ ?: error("Show bubble not found")
showBubble.click()
SystemClock.sleep(1000)
}
transitions {
- val bubbles: List<UiObject2> = device.wait(
- Until.findObjects(
- By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)
- ), FIND_OBJECT_TIMEOUT
- ) ?: error("No bubbles found")
+ val bubbles: List<UiObject2> =
+ device.wait(
+ Until.findObjects(By.res(SYSTEM_UI_PACKAGE, BUBBLE_RES_NAME)),
+ FIND_OBJECT_TIMEOUT
+ )
+ ?: error("No bubbles found")
for (entry in bubbles) {
entry.click()
SystemClock.sleep(1000)
@@ -83,8 +87,6 @@ open class MultiBubblesScreen(testSpec: FlickerTestParameter) : BaseBubbleScreen
@Presubmit
@Test
open fun testAppIsAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreenShellTransit.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreenShellTransit.kt
index 839fef904244..57adeab7b070 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreenShellTransit.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/bubble/MultiBubblesScreenShellTransit.kt
@@ -30,9 +30,8 @@ import org.junit.runners.Parameterized
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FlakyTest(bugId = 217777115)
-class MultiBubblesScreenShellTransit(
- testSpec: FlickerTestParameter
-) : MultiBubblesScreen(testSpec) {
+class MultiBubblesScreenShellTransit(testSpec: FlickerTestParameter) :
+ MultiBubblesScreen(testSpec) {
@Before
override fun before() {
Assume.assumeTrue(isShellTransitionsEnabled)
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt
index 1be93527e0e5..1fc0375e9feb 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/AutoEnterPipOnGoToHomeTest.kt
@@ -40,16 +40,19 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:AutoEnterPipOnGoToHomeTest`
*
* Actions:
+ * ```
* Launch an app in full screen
* Select "Auto-enter PiP" radio button
* Press Home button or swipe up to go Home and put [pipApp] in pip mode
- *
+ * ```
* Notes:
+ * ```
* 1. All assertions are inherited from [EnterPipTest]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -57,9 +60,7 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@FlakyTest(bugId = 238367575)
class AutoEnterPipOnGoToHomeTest(testSpec: FlickerTestParameter) : EnterPipTest(testSpec) {
- /**
- * Defines the transition used to run the test
- */
+ /** Defines the transition used to run the test */
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
@@ -76,9 +77,7 @@ class AutoEnterPipOnGoToHomeTest(testSpec: FlickerTestParameter) : EnterPipTest(
RemoveAllTasksButHomeRule.removeAllTasksButHome()
pipApp.exit(wmHelper)
}
- transitions {
- tapl.goHome()
- }
+ transitions { tapl.goHome() }
}
@FlakyTest
@@ -92,9 +91,7 @@ class AutoEnterPipOnGoToHomeTest(testSpec: FlickerTestParameter) : EnterPipTest(
}
}
- /**
- * Checks that [pipApp] window is animated towards default position in right bottom corner
- */
+ /** Checks that [pipApp] window is animated towards default position in right bottom corner */
@Presubmit
@Test
fun pipLayerMovesTowardsRightBottomCorner() {
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt
index 75543cfed1ac..4f9ab6f00838 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt
@@ -40,25 +40,26 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:EnterPipOnUserLeaveHintTest`
*
* Actions:
+ * ```
* Launch an app in full screen
* Select "Via code behind" radio button
* Press Home button or swipe up to go Home and put [pipApp] in pip mode
- *
+ * ```
* Notes:
+ * ```
* 1. All assertions are inherited from [EnterPipTest]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class EnterPipOnUserLeaveHintTest(testSpec: FlickerTestParameter) : EnterPipTest(testSpec) {
- /**
- * Defines the transition used to run the test
- */
+ /** Defines the transition used to run the test */
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
@@ -73,20 +74,17 @@ class EnterPipOnUserLeaveHintTest(testSpec: FlickerTestParameter) : EnterPipTest
RemoveAllTasksButHomeRule.removeAllTasksButHome()
pipApp.exit(wmHelper)
}
- transitions {
- tapl.goHome()
- }
+ transitions { tapl.goHome() }
}
@Presubmit
@Test
override fun pipAppLayerAlwaysVisible() {
- if (!testSpec.isGesturalNavigation) super.pipAppLayerAlwaysVisible() else {
+ if (!testSpec.isGesturalNavigation) super.pipAppLayerAlwaysVisible()
+ else {
// pip layer in gesture nav will disappear during transition
testSpec.assertLayers {
- this.isVisible(pipApp)
- .then().isInvisible(pipApp)
- .then().isVisible(pipApp)
+ this.isVisible(pipApp).then().isInvisible(pipApp).then().isVisible(pipApp)
}
}
}
@@ -124,14 +122,11 @@ class EnterPipOnUserLeaveHintTest(testSpec: FlickerTestParameter) : EnterPipTest
@Presubmit
@Test
override fun pipLayerRemainInsideVisibleBounds() {
- if (!testSpec.isGesturalNavigation) super.pipLayerRemainInsideVisibleBounds() else {
+ if (!testSpec.isGesturalNavigation) super.pipLayerRemainInsideVisibleBounds()
+ else {
// pip layer in gesture nav will disappear during transition
- testSpec.assertLayersStart {
- this.visibleRegion(pipApp).coversAtMost(displayBounds)
- }
- testSpec.assertLayersEnd {
- this.visibleRegion(pipApp).coversAtMost(displayBounds)
- }
+ testSpec.assertLayersStart { this.visibleRegion(pipApp).coversAtMost(displayBounds) }
+ testSpec.assertLayersEnd { this.visibleRegion(pipApp).coversAtMost(displayBounds) }
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt
index 239d337be991..56e5e27e21ce 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt
@@ -40,16 +40,19 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:EnterPipTest`
*
* Actions:
+ * ```
* Launch an app in full screen
* Press an "enter pip" button to put [pipApp] in pip mode
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited from [PipTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -57,7 +60,7 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
- /** {@inheritDoc} */
+ /** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit
get() = {
setup {
@@ -70,31 +73,21 @@ open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec
RemoveAllTasksButHomeRule.removeAllTasksButHome()
pipApp.exit(wmHelper)
}
- transitions {
- pipApp.clickEnterPipButton(wmHelper)
- }
+ transitions { pipApp.clickEnterPipButton(wmHelper) }
}
- /**
- * Checks [pipApp] window remains visible throughout the animation
- */
+ /** Checks [pipApp] window remains visible throughout the animation */
@Presubmit
@Test
open fun pipAppWindowAlwaysVisible() {
- testSpec.assertWm {
- this.isAppWindowVisible(pipApp)
- }
+ testSpec.assertWm { this.isAppWindowVisible(pipApp) }
}
- /**
- * Checks [pipApp] layer remains visible throughout the animation
- */
+ /** Checks [pipApp] layer remains visible throughout the animation */
@FlakyTest(bugId = 239807171)
@Test
open fun pipAppLayerAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(pipApp)
- }
+ testSpec.assertLayers { this.isVisible(pipApp) }
}
/**
@@ -104,9 +97,7 @@ open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec
@Presubmit
@Test
fun pipWindowRemainInsideVisibleBounds() {
- testSpec.assertWmVisibleRegion(pipApp) {
- coversAtMost(displayBounds)
- }
+ testSpec.assertWmVisibleRegion(pipApp) { coversAtMost(displayBounds) }
}
/**
@@ -116,14 +107,10 @@ open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec
@FlakyTest(bugId = 239807171)
@Test
open fun pipLayerRemainInsideVisibleBounds() {
- testSpec.assertLayersVisibleRegion(pipApp) {
- coversAtMost(displayBounds)
- }
+ testSpec.assertLayersVisibleRegion(pipApp) { coversAtMost(displayBounds) }
}
- /**
- * Checks that the visible region of [pipApp] always reduces during the animation
- */
+ /** Checks that the visible region of [pipApp] always reduces during the animation */
@Presubmit
@Test
open fun pipLayerReduces() {
@@ -135,9 +122,7 @@ open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec
}
}
- /**
- * Checks that [pipApp] window becomes pinned
- */
+ /** Checks that [pipApp] window becomes pinned */
@Presubmit
@Test
fun pipWindowBecomesPinned() {
@@ -148,9 +133,7 @@ open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec
}
}
- /**
- * Checks [ComponentMatcher.LAUNCHER] layer remains visible throughout the animation
- */
+ /** Checks [ComponentMatcher.LAUNCHER] layer remains visible throughout the animation */
@Presubmit
@Test
fun launcherLayerBecomesVisible() {
@@ -162,31 +145,27 @@ open class EnterPipTest(testSpec: FlickerTestParameter) : PipTransition(testSpec
}
/**
- * Checks that the focus changes between the [pipApp] window and the launcher when
- * closing the pip window
+ * Checks that the focus changes between the [pipApp] window and the launcher when closing the
+ * pip window
*/
@Presubmit
@Test
open fun focusChanges() {
- testSpec.assertEventLog {
- this.focusChanges(pipApp.`package`, "NexusLauncherActivity")
- }
+ testSpec.assertEventLog { this.focusChanges(pipApp.`package`, "NexusLauncherActivity") }
}
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0)
- )
+ .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt
index 628599160c65..3d8525b3d4ad 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt
@@ -21,9 +21,7 @@ import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.helpers.FixedOrientationAppHelper
import org.junit.Test
-/**
- * Base class for pip expand tests
- */
+/** Base class for pip expand tests */
abstract class ExitPipToAppTransition(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
protected val testApp = FixedOrientationAppHelper(instrumentation)
@@ -34,9 +32,7 @@ abstract class ExitPipToAppTransition(testSpec: FlickerTestParameter) : PipTrans
@Presubmit
@Test
open fun pipAppWindowRemainInsideVisibleBounds() {
- testSpec.assertWmVisibleRegion(pipApp) {
- coversAtMost(displayBounds)
- }
+ testSpec.assertWmVisibleRegion(pipApp) { coversAtMost(displayBounds) }
}
/**
@@ -46,9 +42,7 @@ abstract class ExitPipToAppTransition(testSpec: FlickerTestParameter) : PipTrans
@Presubmit
@Test
open fun pipAppLayerRemainInsideVisibleBounds() {
- testSpec.assertLayersVisibleRegion(pipApp) {
- coversAtMost(displayBounds)
- }
+ testSpec.assertLayersVisibleRegion(pipApp) { coversAtMost(displayBounds) }
}
/**
@@ -78,44 +72,34 @@ abstract class ExitPipToAppTransition(testSpec: FlickerTestParameter) : PipTrans
@Test
open fun showBothAppLayersThenHidePip() {
testSpec.assertLayers {
- isVisible(testApp)
- .isVisible(pipApp)
- .then()
- .isInvisible(testApp)
- .isVisible(pipApp)
+ isVisible(testApp).isVisible(pipApp).then().isInvisible(testApp).isVisible(pipApp)
}
}
/**
- * Checks that the visible region of [testApp] plus the visible region of [pipApp]
- * cover the full display area at the start of the transition
+ * Checks that the visible region of [testApp] plus the visible region of [pipApp] cover the
+ * full display area at the start of the transition
*/
@Presubmit
@Test
open fun testPlusPipAppsCoverFullScreenAtStart() {
testSpec.assertLayersStart {
val pipRegion = visibleRegion(pipApp).region
- visibleRegion(testApp)
- .plus(pipRegion)
- .coversExactly(displayBounds)
+ visibleRegion(testApp).plus(pipRegion).coversExactly(displayBounds)
}
}
/**
- * Checks that the visible region oft [pipApp] covers the full display area at the end of
- * the transition
+ * Checks that the visible region oft [pipApp] covers the full display area at the end of the
+ * transition
*/
@Presubmit
@Test
open fun pipAppCoversFullScreenAtEnd() {
- testSpec.assertLayersEnd {
- visibleRegion(pipApp).coversExactly(displayBounds)
- }
+ testSpec.assertLayersEnd { visibleRegion(pipApp).coversExactly(displayBounds) }
}
- /**
- * Checks that the visible region of [pipApp] always expands during the animation
- */
+ /** Checks that the visible region of [pipApp] always expands during the animation */
@Presubmit
@Test
open fun pipLayerExpands() {
@@ -127,8 +111,6 @@ abstract class ExitPipToAppTransition(testSpec: FlickerTestParameter) : PipTrans
}
}
- /** {@inheritDoc} */
- @Presubmit
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ /** {@inheritDoc} */
+ @Presubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipTransition.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipTransition.kt
index 39be89d2592b..3b8bb90988f9 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipTransition.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipTransition.kt
@@ -25,24 +25,18 @@ import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.traces.common.ComponentNameMatcher.Companion.LAUNCHER
import org.junit.Test
-/**
- * Base class for exiting pip (closing pip window) without returning to the app
- */
+/** Base class for exiting pip (closing pip window) without returning to the app */
abstract class ExitPipTransition(testSpec: FlickerTestParameter) : PipTransition(testSpec) {
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
- setup {
- this.setRotation(testSpec.startRotation)
- }
- teardown {
- this.setRotation(Surface.ROTATION_0)
- }
+ setup { this.setRotation(testSpec.startRotation) }
+ teardown { this.setRotation(Surface.ROTATION_0) }
}
/**
- * Checks that [pipApp] window is pinned and visible at the start and then becomes
- * unpinned and invisible at the same moment, and remains unpinned and invisible
- * until the end of the transition
+ * Checks that [pipApp] window is pinned and visible at the start and then becomes unpinned and
+ * invisible at the same moment, and remains unpinned and invisible until the end of the
+ * transition
*/
@Presubmit
@Test
@@ -53,30 +47,24 @@ abstract class ExitPipTransition(testSpec: FlickerTestParameter) : PipTransition
// and isAppWindowInvisible in the same assertion block.
testSpec.assertWm {
this.invoke("hasPipWindow") {
- it.isPinned(pipApp)
- .isAppWindowVisible(pipApp)
- .isAppWindowOnTop(pipApp)
- }.then().invoke("!hasPipWindow") {
- it.isNotPinned(pipApp)
- .isAppWindowNotOnTop(pipApp)
- }
+ it.isPinned(pipApp).isAppWindowVisible(pipApp).isAppWindowOnTop(pipApp)
+ }
+ .then()
+ .invoke("!hasPipWindow") { it.isNotPinned(pipApp).isAppWindowNotOnTop(pipApp) }
}
testSpec.assertWmEnd { isAppWindowInvisible(pipApp) }
} else {
testSpec.assertWm {
- this.invoke("hasPipWindow") {
- it.isPinned(pipApp).isAppWindowVisible(pipApp)
- }.then().invoke("!hasPipWindow") {
- it.isNotPinned(pipApp).isAppWindowInvisible(pipApp)
- }
+ this.invoke("hasPipWindow") { it.isPinned(pipApp).isAppWindowVisible(pipApp) }
+ .then()
+ .invoke("!hasPipWindow") { it.isNotPinned(pipApp).isAppWindowInvisible(pipApp) }
}
}
}
/**
- * Checks that [pipApp] and [LAUNCHER] layers are visible at the start
- * of the transition. Then [pipApp] layer becomes invisible, and remains invisible
- * until the end of the transition
+ * Checks that [pipApp] and [LAUNCHER] layers are visible at the start of the transition. Then
+ * [pipApp] layer becomes invisible, and remains invisible until the end of the transition
*/
@Presubmit
@Test
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipViaIntentTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipViaIntentTest.kt
index 7ef332399246..18790713a828 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipViaIntentTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipViaIntentTest.kt
@@ -38,17 +38,20 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:ExitPipViaIntentTest`
*
* Actions:
+ * ```
* Launch an app in pip mode [pipApp],
* Launch another full screen mode [testApp]
* Expand [pipApp] app to full screen via an intent
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited from [PipTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -56,9 +59,7 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class ExitPipViaIntentTest(testSpec: FlickerTestParameter) : ExitPipToAppTransition(testSpec) {
- /**
- * Defines the transition used to run the test
- */
+ /** Defines the transition used to run the test */
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
setup {
@@ -69,18 +70,14 @@ class ExitPipViaIntentTest(testSpec: FlickerTestParameter) : ExitPipToAppTransit
// This will bring PipApp to fullscreen
pipApp.exitPipToFullScreenViaIntent(wmHelper)
// Wait until the other app is no longer visible
- wmHelper.StateSyncBuilder()
- .withWindowSurfaceDisappeared(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withWindowSurfaceDisappeared(testApp).waitForAndVerify()
}
}
- /** {@inheritDoc} */
- @FlakyTest
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ /** {@inheritDoc} */
+ @FlakyTest @Test override fun entireScreenCovered() = super.entireScreenCovered()
- /** {@inheritDoc} */
+ /** {@inheritDoc} */
@Presubmit
@Test
override fun statusBarLayerPositionAtStartAndEnd() {
@@ -95,7 +92,7 @@ class ExitPipViaIntentTest(testSpec: FlickerTestParameter) : ExitPipToAppTransit
super.statusBarLayerPositionAtStartAndEnd()
}
- /** {@inheritDoc} */
+ /** {@inheritDoc} */
@FlakyTest(bugId = 197726610)
@Test
override fun pipLayerExpands() {
@@ -114,14 +111,14 @@ class ExitPipViaIntentTest(testSpec: FlickerTestParameter) : ExitPipToAppTransit
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0))
+ return FlickerTestParameterFactory.getInstance()
+ .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithDismissButtonTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithDismissButtonTest.kt
index a33d9144fbbb..d195abb2aaec 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithDismissButtonTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithDismissButtonTest.kt
@@ -35,17 +35,20 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:ExitPipWithDismissButtonTest`
*
* Actions:
+ * ```
* Launch an app in pip mode [pipApp],
* Click on the pip window
* Click on dismiss button and wait window disappear
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [PipTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -56,9 +59,7 @@ class ExitPipWithDismissButtonTest(testSpec: FlickerTestParameter) : ExitPipTran
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
- transitions {
- pipApp.closePipWindow(wmHelper)
- }
+ transitions { pipApp.closePipWindow(wmHelper) }
}
/**
@@ -68,23 +69,21 @@ class ExitPipWithDismissButtonTest(testSpec: FlickerTestParameter) : ExitPipTran
@Presubmit
@Test
fun focusChanges() {
- testSpec.assertEventLog {
- this.focusChanges("PipMenuView", "NexusLauncherActivity")
- }
+ testSpec.assertEventLog { this.focusChanges("PipMenuView", "NexusLauncherActivity") }
}
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
+ .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt
index e5695694dfbc..f7a244717141 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt
@@ -36,16 +36,19 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:ExitPipWithSwipeDownTest`
*
* Actions:
+ * ```
* Launch an app in pip mode [pipApp],
* Swipe the pip window to the bottom-center of the screen and wait it disappear
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [PipTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -60,20 +63,24 @@ class ExitPipWithSwipeDownTest(testSpec: FlickerTestParameter) : ExitPipTransiti
val pipCenterX = pipRegion.centerX()
val pipCenterY = pipRegion.centerY()
val displayCenterX = device.displayWidth / 2
- val barComponent = if (testSpec.isTablet) {
- ComponentNameMatcher.TASK_BAR
- } else {
- ComponentNameMatcher.NAV_BAR
- }
- val barLayerHeight = wmHelper.currentState.layerState
- .getLayerWithBuffer(barComponent)
- ?.visibleRegion
- ?.height ?: error("Couldn't find Nav or Task bar layer")
+ val barComponent =
+ if (testSpec.isTablet) {
+ ComponentNameMatcher.TASK_BAR
+ } else {
+ ComponentNameMatcher.NAV_BAR
+ }
+ val barLayerHeight =
+ wmHelper.currentState.layerState
+ .getLayerWithBuffer(barComponent)
+ ?.visibleRegion
+ ?.height
+ ?: error("Couldn't find Nav or Task bar layer")
// The dismiss button doesn't appear at the complete bottom of the screen,
val displayY = device.displayHeight - barLayerHeight
device.swipe(pipCenterX, pipCenterY, displayCenterX, displayY, 50)
// Wait until the other app is no longer visible
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withPipGone()
.withWindowSurfaceDisappeared(pipApp)
.withAppTransitionIdle()
@@ -81,29 +88,25 @@ class ExitPipWithSwipeDownTest(testSpec: FlickerTestParameter) : ExitPipTransiti
}
}
- /**
- * Checks that the focus doesn't change between windows during the transition
- */
+ /** Checks that the focus doesn't change between windows during the transition */
@Presubmit
@Test
fun focusDoesNotChange() {
- testSpec.assertEventLog {
- this.focusDoesNotChange()
- }
+ testSpec.assertEventLog { this.focusDoesNotChange() }
}
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
+ .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/MovePipShelfHeightTransition.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/MovePipShelfHeightTransition.kt
index 5f9419694c13..b40106790b6c 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/MovePipShelfHeightTransition.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/MovePipShelfHeightTransition.kt
@@ -23,34 +23,23 @@ import com.android.server.wm.flicker.traces.region.RegionSubject
import com.android.wm.shell.flicker.Direction
import org.junit.Test
-/**
- * Base class for pip tests with Launcher shelf height change
- */
-abstract class MovePipShelfHeightTransition(
- testSpec: FlickerTestParameter
-) : PipTransition(testSpec) {
+/** Base class for pip tests with Launcher shelf height change */
+abstract class MovePipShelfHeightTransition(testSpec: FlickerTestParameter) :
+ PipTransition(testSpec) {
protected val testApp = FixedOrientationAppHelper(instrumentation)
- /**
- * Checks [pipApp] window remains visible throughout the animation
- */
+ /** Checks [pipApp] window remains visible throughout the animation */
@Presubmit
@Test
open fun pipWindowIsAlwaysVisible() {
- testSpec.assertWm {
- isAppWindowVisible(pipApp)
- }
+ testSpec.assertWm { isAppWindowVisible(pipApp) }
}
- /**
- * Checks [pipApp] layer remains visible throughout the animation
- */
+ /** Checks [pipApp] layer remains visible throughout the animation */
@Presubmit
@Test
open fun pipLayerIsAlwaysVisible() {
- testSpec.assertLayers {
- isVisible(pipApp)
- }
+ testSpec.assertLayers { isVisible(pipApp) }
}
/**
@@ -60,9 +49,7 @@ abstract class MovePipShelfHeightTransition(
@Presubmit
@Test
open fun pipWindowRemainInsideVisibleBounds() {
- testSpec.assertWmVisibleRegion(pipApp) {
- coversAtMost(displayBounds)
- }
+ testSpec.assertWmVisibleRegion(pipApp) { coversAtMost(displayBounds) }
}
/**
@@ -72,9 +59,7 @@ abstract class MovePipShelfHeightTransition(
@Presubmit
@Test
open fun pipLayerRemainInsideVisibleBounds() {
- testSpec.assertLayersVisibleRegion(pipApp) {
- coversAtMost(displayBounds)
- }
+ testSpec.assertLayersVisibleRegion(pipApp) { coversAtMost(displayBounds) }
}
/**
@@ -83,9 +68,8 @@ abstract class MovePipShelfHeightTransition(
*/
protected fun pipWindowMoves(direction: Direction) {
testSpec.assertWm {
- val pipWindowFrameList = this.windowStates {
- pipApp.windowMatchesAnyOf(it) && it.isVisible
- }.map { it.frame }
+ val pipWindowFrameList =
+ this.windowStates { pipApp.windowMatchesAnyOf(it) && it.isVisible }.map { it.frame }
when (direction) {
Direction.UP -> assertRegionMovementUp(pipWindowFrameList)
Direction.DOWN -> assertRegionMovementDown(pipWindowFrameList)
@@ -100,9 +84,9 @@ abstract class MovePipShelfHeightTransition(
*/
protected fun pipLayerMoves(direction: Direction) {
testSpec.assertLayers {
- val pipLayerRegionList = this.layers {
- pipApp.layerMatchesAnyOf(it) && it.isVisible
- }.map { it.visibleRegion }
+ val pipLayerRegionList =
+ this.layers { pipApp.layerMatchesAnyOf(it) && it.isVisible }
+ .map { it.visibleRegion }
when (direction) {
Direction.UP -> assertRegionMovementUp(pipLayerRegionList)
Direction.DOWN -> assertRegionMovementDown(pipLayerRegionList)
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTest.kt
index ca086e850f52..3b64d218a73d 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTest.kt
@@ -36,10 +36,7 @@ import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
-/**
- * Test Pip launch.
- * To run this test: `atest WMShellFlickerTests:PipKeyboardTest`
- */
+/** Test Pip launch. To run this test: `atest WMShellFlickerTests:PipKeyboardTest` */
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@@ -52,7 +49,7 @@ open class PipKeyboardTest(testSpec: FlickerTestParameter) : PipTransition(testS
assumeFalse(isShellTransitionsEnabled)
}
- /** {@inheritDoc} */
+ /** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit
get() = buildTransition {
setup {
@@ -73,9 +70,7 @@ open class PipKeyboardTest(testSpec: FlickerTestParameter) : PipTransition(testS
}
}
- /**
- * Ensure the pip window remains visible throughout any keyboard interactions
- */
+ /** Ensure the pip window remains visible throughout any keyboard interactions */
@Presubmit
@Test
open fun pipInVisibleBounds() {
@@ -85,15 +80,11 @@ open class PipKeyboardTest(testSpec: FlickerTestParameter) : PipTransition(testS
}
}
- /**
- * Ensure that the pip window does not obscure the keyboard
- */
+ /** Ensure that the pip window does not obscure the keyboard */
@Presubmit
@Test
open fun pipIsAboveAppWindow() {
- testSpec.assertWmTag(TAG_IME_VISIBLE) {
- isAboveWindow(ComponentNameMatcher.IME, pipApp)
- }
+ testSpec.assertWmTag(TAG_IME_VISIBLE) { isAboveWindow(ComponentNameMatcher.IME, pipApp) }
}
companion object {
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTestShellTransit.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTestShellTransit.kt
index 3b6d7da1eaa8..2a82c00bebd3 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTestShellTransit.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipKeyboardTestShellTransit.kt
@@ -42,6 +42,5 @@ class PipKeyboardTestShellTransit(testSpec: FlickerTestParameter) : PipKeyboardT
@Presubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest.kt
index 61cb2b0c0ca8..1d12154d9be5 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest.kt
@@ -42,18 +42,21 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:PipRotationTest`
*
* Actions:
+ * ```
* Launch a [pipApp] in pip mode
* Launch another app [fixedApp] (appears below pip)
* Rotate the screen from [testSpec.startRotation] to [testSpec.endRotation]
* (usually, 0->90 and 90->0)
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited from [PipTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -75,43 +78,31 @@ open class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testS
testApp.launchViaIntent(wmHelper)
setRotation(testSpec.startRotation)
}
- transitions {
- setRotation(testSpec.endRotation)
- }
+ transitions { setRotation(testSpec.endRotation) }
}
- /**
- * Checks the position of the navigation bar at the start and end of the transition
- */
+ /** Checks the position of the navigation bar at the start and end of the transition */
@FlakyTest(bugId = 240499181)
@Test
override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
- /**
- * Checks that [testApp] layer is within [screenBoundsStart] at the start of the transition
- */
+ /** Checks that [testApp] layer is within [screenBoundsStart] at the start of the transition */
@Presubmit
@Test
fun fixedAppLayer_StartingBounds() {
- testSpec.assertLayersStart {
- visibleRegion(testApp).coversAtMost(screenBoundsStart)
- }
+ testSpec.assertLayersStart { visibleRegion(testApp).coversAtMost(screenBoundsStart) }
}
- /**
- * Checks that [testApp] layer is within [screenBoundsEnd] at the end of the transition
- */
+ /** Checks that [testApp] layer is within [screenBoundsEnd] at the end of the transition */
@Presubmit
@Test
fun fixedAppLayer_EndingBounds() {
- testSpec.assertLayersEnd {
- visibleRegion(testApp).coversAtMost(screenBoundsEnd)
- }
+ testSpec.assertLayersEnd { visibleRegion(testApp).coversAtMost(screenBoundsEnd) }
}
/**
- * Checks that [testApp] plus [pipApp] layers are within [screenBoundsEnd] at the start
- * of the transition
+ * Checks that [testApp] plus [pipApp] layers are within [screenBoundsEnd] at the start of the
+ * transition
*/
@Presubmit
@Test
@@ -122,8 +113,8 @@ open class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testS
}
/**
- * Checks that [testApp] plus [pipApp] layers are within [screenBoundsEnd] at the end
- * of the transition
+ * Checks that [testApp] plus [pipApp] layers are within [screenBoundsEnd] at the end of the
+ * transition
*/
@Presubmit
@Test
@@ -133,57 +124,41 @@ open class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testS
}
}
- /**
- * Checks that [pipApp] layer is within [screenBoundsStart] at the start of the transition
- */
+ /** Checks that [pipApp] layer is within [screenBoundsStart] at the start of the transition */
private fun pipLayerRotates_StartingBounds_internal() {
- testSpec.assertLayersStart {
- visibleRegion(pipApp).coversAtMost(screenBoundsStart)
- }
+ testSpec.assertLayersStart { visibleRegion(pipApp).coversAtMost(screenBoundsStart) }
}
- /**
- * Checks that [pipApp] layer is within [screenBoundsStart] at the start of the transition
- */
+ /** Checks that [pipApp] layer is within [screenBoundsStart] at the start of the transition */
@Presubmit
@Test
fun pipLayerRotates_StartingBounds() {
pipLayerRotates_StartingBounds_internal()
}
- /**
- * Checks that [pipApp] layer is within [screenBoundsEnd] at the end of the transition
- */
+ /** Checks that [pipApp] layer is within [screenBoundsEnd] at the end of the transition */
@Presubmit
@Test
fun pipLayerRotates_EndingBounds() {
- testSpec.assertLayersEnd {
- visibleRegion(pipApp).coversAtMost(screenBoundsEnd)
- }
+ testSpec.assertLayersEnd { visibleRegion(pipApp).coversAtMost(screenBoundsEnd) }
}
/**
- * Ensure that the [pipApp] window does not obscure the [testApp] at the start of the
- * transition
+ * Ensure that the [pipApp] window does not obscure the [testApp] at the start of the transition
*/
@Presubmit
@Test
fun pipIsAboveFixedAppWindow_Start() {
- testSpec.assertWmStart {
- isAboveWindow(pipApp, testApp)
- }
+ testSpec.assertWmStart { isAboveWindow(pipApp, testApp) }
}
/**
- * Ensure that the [pipApp] window does not obscure the [testApp] at the end of the
- * transition
+ * Ensure that the [pipApp] window does not obscure the [testApp] at the end of the transition
*/
@Presubmit
@Test
fun pipIsAboveFixedAppWindow_End() {
- testSpec.assertWmEnd {
- isAboveWindow(pipApp, testApp)
- }
+ testSpec.assertWmEnd { isAboveWindow(pipApp, testApp) }
}
@FlakyTest(bugId = 240499181)
@@ -196,15 +171,16 @@ open class PipRotationTest(testSpec: FlickerTestParameter) : PipTransition(testS
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance().getConfigRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90)
- )
+ return FlickerTestParameterFactory.getInstance()
+ .getConfigRotationTests(
+ supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90)
+ )
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest_ShellTransit.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest_ShellTransit.kt
index d868e98d0cf8..983cb1c6bafd 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest_ShellTransit.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipRotationTest_ShellTransit.kt
@@ -35,18 +35,21 @@ import org.junit.runners.Parameterized
* To run this test: `atest WMShellFlickerTests:PipRotationTest_ShellTransit`
*
* Actions:
+ * ```
* Launch a [pipApp] in pip mode
* Launch another app [fixedApp] (appears below pip)
* Rotate the screen from [testSpec.startRotation] to [testSpec.endRotation]
* (usually, 0->90 and 90->0)
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited from [PipTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -59,9 +62,8 @@ class PipRotationTest_ShellTransit(testSpec: FlickerTestParameter) : PipRotation
Assume.assumeTrue(isShellTransitionsEnabled)
}
- /** {@inheritDoc} */
+ /** {@inheritDoc} */
@FlakyTest
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipTransition.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipTransition.kt
index ff505a04290b..dfa25104ccc8 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipTransition.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/PipTransition.kt
@@ -40,24 +40,21 @@ abstract class PipTransition(testSpec: FlickerTestParameter) : BaseTest(testSpec
}
fun doAction(broadcastAction: String) {
- instrumentation.context
- .sendBroadcast(createIntentWithAction(broadcastAction))
+ instrumentation.context.sendBroadcast(createIntentWithAction(broadcastAction))
}
companion object {
// Corresponds to ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
- @JvmStatic
- val ORIENTATION_LANDSCAPE = 0
+ @JvmStatic val ORIENTATION_LANDSCAPE = 0
// Corresponds to ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
- @JvmStatic
- val ORIENTATION_PORTRAIT = 1
+ @JvmStatic val ORIENTATION_PORTRAIT = 1
}
}
/**
- * Gets a configuration that handles basic setup and teardown of pip tests and that
- * launches the Pip app for test
+ * Gets a configuration that handles basic setup and teardown of pip tests and that launches the
+ * Pip app for test
*
* @param eachRun If the pip app should be launched in each run (otherwise only 1x per test)
* @param stringExtras Arguments to pass to the PIP launch intent
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipAppHelperTv.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipAppHelperTv.kt
index cdd768abd5bd..36909dd74245 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipAppHelperTv.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipAppHelperTv.kt
@@ -24,9 +24,7 @@ import androidx.test.uiautomator.Until
import com.android.server.wm.flicker.helpers.PipAppHelper
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-/**
- * Helper class for PIP app on AndroidTV
- */
+/** Helper class for PIP app on AndroidTV */
open class PipAppHelperTv(instrumentation: Instrumentation) : PipAppHelper(instrumentation) {
private val appSelector = By.pkg(`package`).depth(0)
@@ -61,17 +59,12 @@ open class PipAppHelperTv(instrumentation: Instrumentation) : PipAppHelper(instr
uiDevice.closeTvPipWindow()
}
- /**
- * Taps the pip window and dismisses it by clicking on the X button.
- */
+ /** Taps the pip window and dismisses it by clicking on the X button. */
override fun closePipWindow(wmHelper: WindowManagerStateHelper) {
uiDevice.closeTvPipWindow()
// Wait for animation to complete.
- wmHelper.StateSyncBuilder()
- .withPipGone()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withPipGone().withHomeActivityVisible().waitForAndVerify()
}
fun waitUntilClosed(): Boolean {
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipTestBase.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipTestBase.kt
index a16f5f6f1620..2cb18f948f0e 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipTestBase.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/PipTestBase.kt
@@ -24,10 +24,7 @@ import androidx.test.uiautomator.UiDevice
import org.junit.Before
import org.junit.runners.Parameterized
-abstract class PipTestBase(
- protected val rotationName: String,
- protected val rotation: Int
-) {
+abstract class PipTestBase(protected val rotationName: String, protected val rotation: Int) {
val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
val uiDevice = UiDevice.getInstance(instrumentation)
val packageManager: PackageManager = instrumentation.context.packageManager
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipBasicTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipBasicTest.kt
index 31fb16ffbd3e..8a073abf032c 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipBasicTest.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipBasicTest.kt
@@ -25,16 +25,11 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
-/**
- * Test Pip Menu on TV.
- * To run this test: `atest WMShellFlickerTests:TvPipBasicTest`
- */
+/** Test Pip Menu on TV. To run this test: `atest WMShellFlickerTests:TvPipBasicTest` */
@RequiresDevice
@RunWith(Parameterized::class)
-class TvPipBasicTest(
- private val radioButtonId: String,
- private val pipWindowRatio: Rational?
-) : TvPipTestBase() {
+class TvPipBasicTest(private val radioButtonId: String, private val pipWindowRatio: Rational?) :
+ TvPipTestBase() {
@Test
fun enterPip_openMenu_pressBack_closePip() {
@@ -45,8 +40,8 @@ class TvPipBasicTest(
testApp.clickObject(radioButtonId)
testApp.clickEnterPipButton(wmHelper)
- val actualRatio: Float = testApp.ui?.visibleBounds?.ratio
- ?: fail("Application UI not found")
+ val actualRatio: Float =
+ testApp.ui?.visibleBounds?.ratio ?: fail("Application UI not found")
pipWindowRatio?.let { expectedRatio ->
assertEquals("Wrong Pip window ratio", expectedRatio.toFloat(), actualRatio)
}
@@ -62,7 +57,8 @@ class TvPipBasicTest(
// Make sure Pip Window ration remained the same after Pip menu was closed
testApp.ui?.visibleBounds?.let { newBounds ->
assertEquals("Pip window ratio has changed", actualRatio, newBounds.ratio)
- } ?: fail("Application UI not found")
+ }
+ ?: fail("Application UI not found")
// Close Pip
testApp.closePipWindow()
@@ -77,10 +73,10 @@ class TvPipBasicTest(
fun getParams(): Collection<Array<Any?>> {
infix fun Int.to(denominator: Int) = Rational(this, denominator)
return listOf(
- arrayOf("ratio_default", null),
- arrayOf("ratio_square", 1 to 1),
- arrayOf("ratio_wide", 2 to 1),
- arrayOf("ratio_tall", 1 to 2)
+ arrayOf("ratio_default", null),
+ arrayOf("ratio_square", 1 to 1),
+ arrayOf("ratio_wide", 2 to 1),
+ arrayOf("ratio_tall", 1 to 2)
)
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipMenuTests.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipMenuTests.kt
index 68dbbfb89b6c..7403aab7d4c0 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipMenuTests.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipMenuTests.kt
@@ -27,28 +27,26 @@ import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
-/**
- * Test Pip Menu on TV.
- * To run this test: `atest WMShellFlickerTests:TvPipMenuTests`
- */
+/** Test Pip Menu on TV. To run this test: `atest WMShellFlickerTests:TvPipMenuTests` */
@RequiresDevice
class TvPipMenuTests : TvPipTestBase() {
private val systemUiResources =
- packageManager.getResourcesForApplication(SYSTEM_UI_PACKAGE_NAME)
- private val pipBoundsWhileInMenu: Rect = systemUiResources.run {
- val bounds = getString(getIdentifier("pip_menu_bounds", "string",
- SYSTEM_UI_PACKAGE_NAME))
- Rect.unflattenFromString(bounds) ?: error("Could not retrieve PiP menu bounds")
- }
- private val playButtonDescription = systemUiResources.run {
- getString(getIdentifier("pip_play", "string",
- SYSTEM_UI_PACKAGE_NAME))
- }
- private val pauseButtonDescription = systemUiResources.run {
- getString(getIdentifier("pip_pause", "string",
- SYSTEM_UI_PACKAGE_NAME))
- }
+ packageManager.getResourcesForApplication(SYSTEM_UI_PACKAGE_NAME)
+ private val pipBoundsWhileInMenu: Rect =
+ systemUiResources.run {
+ val bounds =
+ getString(getIdentifier("pip_menu_bounds", "string", SYSTEM_UI_PACKAGE_NAME))
+ Rect.unflattenFromString(bounds) ?: error("Could not retrieve PiP menu bounds")
+ }
+ private val playButtonDescription =
+ systemUiResources.run {
+ getString(getIdentifier("pip_play", "string", SYSTEM_UI_PACKAGE_NAME))
+ }
+ private val pauseButtonDescription =
+ systemUiResources.run {
+ getString(getIdentifier("pip_pause", "string", SYSTEM_UI_PACKAGE_NAME))
+ }
@Before
fun tvPipMenuTestsTestUp() {
@@ -61,20 +59,29 @@ class TvPipMenuTests : TvPipTestBase() {
enterPip_openMenu_assertShown()
// Make sure the PiP task is positioned where it should be.
- val activityBounds: Rect = testApp.ui?.visibleBounds
- ?: error("Could not retrieve Pip Activity bounds")
- assertTrue("Pip Activity is positioned correctly while Pip menu is shown",
- pipBoundsWhileInMenu == activityBounds)
+ val activityBounds: Rect =
+ testApp.ui?.visibleBounds ?: error("Could not retrieve Pip Activity bounds")
+ assertTrue(
+ "Pip Activity is positioned correctly while Pip menu is shown",
+ pipBoundsWhileInMenu == activityBounds
+ )
// Make sure the Pip Menu Actions are positioned correctly.
uiDevice.findTvPipMenuControls()?.visibleBounds?.run {
- assertTrue("Pip Menu Actions should be positioned below the Activity in Pip",
- top >= activityBounds.bottom)
- assertTrue("Pip Menu Actions should be positioned central horizontally",
- centerX() == uiDevice.displayWidth / 2)
- assertTrue("Pip Menu Actions should be fully shown on the screen",
- left >= 0 && right <= uiDevice.displayWidth && bottom <= uiDevice.displayHeight)
- } ?: error("Could not retrieve Pip Menu Actions bounds")
+ assertTrue(
+ "Pip Menu Actions should be positioned below the Activity in Pip",
+ top >= activityBounds.bottom
+ )
+ assertTrue(
+ "Pip Menu Actions should be positioned central horizontally",
+ centerX() == uiDevice.displayWidth / 2
+ )
+ assertTrue(
+ "Pip Menu Actions should be fully shown on the screen",
+ left >= 0 && right <= uiDevice.displayWidth && bottom <= uiDevice.displayHeight
+ )
+ }
+ ?: error("Could not retrieve Pip Menu Actions bounds")
testApp.closePipWindow()
}
@@ -107,7 +114,7 @@ class TvPipMenuTests : TvPipTestBase() {
// PiP menu should contain the Close button
uiDevice.findTvPipMenuCloseButton()
- ?: fail("\"Close PIP\" button should be shown in Pip menu")
+ ?: fail("\"Close PIP\" button should be shown in Pip menu")
// Clicking on the Close button should close the app
uiDevice.clickTvPipMenuCloseButton()
@@ -120,13 +127,15 @@ class TvPipMenuTests : TvPipTestBase() {
// PiP menu should contain the Fullscreen button
uiDevice.findTvPipMenuFullscreenButton()
- ?: fail("\"Full screen\" button should be shown in Pip menu")
+ ?: fail("\"Full screen\" button should be shown in Pip menu")
// Clicking on the fullscreen button should return app to the fullscreen mode.
// Click, wait for the app to go fullscreen
uiDevice.clickTvPipMenuFullscreenButton()
- assertTrue("\"Full screen\" button should open the app fullscreen",
- wait { testApp.ui?.isFullscreen(uiDevice) ?: false })
+ assertTrue(
+ "\"Full screen\" button should open the app fullscreen",
+ wait { testApp.ui?.isFullscreen(uiDevice) ?: false }
+ )
// Close the app
uiDevice.pressBack()
@@ -143,8 +152,10 @@ class TvPipMenuTests : TvPipTestBase() {
// PiP menu should contain the Pause button
uiDevice.findTvPipMenuElementWithDescription(pauseButtonDescription)
- ?: fail("\"Pause\" button should be shown in Pip menu if there is an active " +
- "playing media session.")
+ ?: fail(
+ "\"Pause\" button should be shown in Pip menu if there is an active " +
+ "playing media session."
+ )
// When we pause media, the button should change from Pause to Play
uiDevice.clickTvPipMenuElementWithDescription(pauseButtonDescription)
@@ -152,8 +163,10 @@ class TvPipMenuTests : TvPipTestBase() {
assertFullscreenAndCloseButtonsAreShown()
// PiP menu should contain the Play button now
uiDevice.waitForTvPipMenuElementWithDescription(playButtonDescription)
- ?: fail("\"Play\" button should be shown in Pip menu if there is an active " +
- "paused media session.")
+ ?: fail(
+ "\"Play\" button should be shown in Pip menu if there is an active " +
+ "paused media session."
+ )
testApp.closePipWindow()
}
@@ -166,11 +179,11 @@ class TvPipMenuTests : TvPipTestBase() {
// PiP menu should contain "No-Op", "Off" and "Clear" buttons...
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_NO_OP)
- ?: fail("\"No-Op\" button should be shown in Pip menu")
+ ?: fail("\"No-Op\" button should be shown in Pip menu")
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_OFF)
- ?: fail("\"Off\" button should be shown in Pip menu")
+ ?: fail("\"Off\" button should be shown in Pip menu")
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_CLEAR)
- ?: fail("\"Clear\" button should be shown in Pip menu")
+ ?: fail("\"Clear\" button should be shown in Pip menu")
// ... and should also contain the "Full screen" and "Close" buttons.
assertFullscreenAndCloseButtonsAreShown()
@@ -178,31 +191,34 @@ class TvPipMenuTests : TvPipTestBase() {
// Invoking the "Off" action should replace it with the "On" action/button and should
// remove the "No-Op" action/button. "Clear" action/button should remain in the menu ...
uiDevice.waitForTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_ON)
- ?: fail("\"On\" button should be shown in Pip for a corresponding custom action")
- assertNull("\"No-Op\" button should not be shown in Pip menu",
- uiDevice.findTvPipMenuElementWithDescription(
- ActivityOptions.Pip.MENU_ACTION_NO_OP))
+ ?: fail("\"On\" button should be shown in Pip for a corresponding custom action")
+ assertNull(
+ "\"No-Op\" button should not be shown in Pip menu",
+ uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_NO_OP)
+ )
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_CLEAR)
- ?: fail("\"Clear\" button should be shown in Pip menu")
+ ?: fail("\"Clear\" button should be shown in Pip menu")
// ... as well as the "Full screen" and "Close" buttons.
assertFullscreenAndCloseButtonsAreShown()
uiDevice.clickTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_CLEAR)
// Invoking the "Clear" action should remove all the custom actions and their corresponding
// buttons, ...
- uiDevice.waitUntilTvPipMenuElementWithDescriptionIsGone(
- ActivityOptions.Pip.MENU_ACTION_ON)?.also {
- isGone -> if (!isGone) fail("\"On\" button should not be shown in Pip menu")
- }
- assertNull("\"Off\" button should not be shown in Pip menu",
- uiDevice.findTvPipMenuElementWithDescription(
- ActivityOptions.Pip.MENU_ACTION_OFF))
- assertNull("\"Clear\" button should not be shown in Pip menu",
- uiDevice.findTvPipMenuElementWithDescription(
- ActivityOptions.Pip.MENU_ACTION_CLEAR))
- assertNull("\"No-Op\" button should not be shown in Pip menu",
- uiDevice.findTvPipMenuElementWithDescription(
- ActivityOptions.Pip.MENU_ACTION_NO_OP))
+ uiDevice
+ .waitUntilTvPipMenuElementWithDescriptionIsGone(ActivityOptions.Pip.MENU_ACTION_ON)
+ ?.also { isGone -> if (!isGone) fail("\"On\" button should not be shown in Pip menu") }
+ assertNull(
+ "\"Off\" button should not be shown in Pip menu",
+ uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_OFF)
+ )
+ assertNull(
+ "\"Clear\" button should not be shown in Pip menu",
+ uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_CLEAR)
+ )
+ assertNull(
+ "\"No-Op\" button should not be shown in Pip menu",
+ uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_NO_OP)
+ )
// ... but the menu should still contain the "Full screen" and "Close" buttons.
assertFullscreenAndCloseButtonsAreShown()
@@ -218,25 +234,31 @@ class TvPipMenuTests : TvPipTestBase() {
// PiP menu should contain "No-Op", "Off" and "Clear" buttons for the custom actions...
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_NO_OP)
- ?: fail("\"No-Op\" button should be shown in Pip menu")
+ ?: fail("\"No-Op\" button should be shown in Pip menu")
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_OFF)
- ?: fail("\"Off\" button should be shown in Pip menu")
+ ?: fail("\"Off\" button should be shown in Pip menu")
uiDevice.findTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_CLEAR)
- ?: fail("\"Clear\" button should be shown in Pip menu")
+ ?: fail("\"Clear\" button should be shown in Pip menu")
// ... should also contain the "Full screen" and "Close" buttons, ...
assertFullscreenAndCloseButtonsAreShown()
// ... but should not contain media buttons.
- assertNull("\"Play\" button should not be shown in menu when there are custom actions",
- uiDevice.findTvPipMenuElementWithDescription(playButtonDescription))
- assertNull("\"Pause\" button should not be shown in menu when there are custom actions",
- uiDevice.findTvPipMenuElementWithDescription(pauseButtonDescription))
+ assertNull(
+ "\"Play\" button should not be shown in menu when there are custom actions",
+ uiDevice.findTvPipMenuElementWithDescription(playButtonDescription)
+ )
+ assertNull(
+ "\"Pause\" button should not be shown in menu when there are custom actions",
+ uiDevice.findTvPipMenuElementWithDescription(pauseButtonDescription)
+ )
uiDevice.clickTvPipMenuElementWithDescription(ActivityOptions.Pip.MENU_ACTION_CLEAR)
// Invoking the "Clear" action should remove all the custom actions, which should bring up
// media buttons...
uiDevice.waitForTvPipMenuElementWithDescription(pauseButtonDescription)
- ?: fail("\"Pause\" button should be shown in Pip menu if there is an active " +
- "playing media session.")
+ ?: fail(
+ "\"Pause\" button should be shown in Pip menu if there is an active " +
+ "playing media session."
+ )
// ... while the "Full screen" and "Close" buttons should remain in the menu.
assertFullscreenAndCloseButtonsAreShown()
@@ -252,8 +274,8 @@ class TvPipMenuTests : TvPipTestBase() {
private fun assertFullscreenAndCloseButtonsAreShown() {
uiDevice.findTvPipMenuCloseButton()
- ?: fail("\"Close PIP\" button should be shown in Pip menu")
+ ?: fail("\"Close PIP\" button should be shown in Pip menu")
uiDevice.findTvPipMenuFullscreenButton()
- ?: fail("\"Full screen\" button should be shown in Pip menu")
+ ?: fail("\"Full screen\" button should be shown in Pip menu")
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipNotificationTests.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipNotificationTests.kt
index 134e97bd46e7..90406c510bad 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipNotificationTests.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipNotificationTests.kt
@@ -34,8 +34,8 @@ import org.junit.Before
import org.junit.Test
/**
- * Test Pip Notifications on TV.
- * To run this test: `atest WMShellFlickerTests:TvPipNotificationTests`
+ * Test Pip Notifications on TV. To run this test: `atest
+ * WMShellFlickerTests:TvPipNotificationTests`
*/
@RequiresDevice
class TvPipNotificationTests : TvPipTestBase() {
@@ -58,13 +58,17 @@ class TvPipNotificationTests : TvPipTestBase() {
testApp.launchViaIntent()
testApp.clickEnterPipButton(wmHelper)
- assertNotNull("Pip notification should have been posted",
- waitForNotificationToAppear { it.isPipNotificationWithTitle(testApp.appName) })
+ assertNotNull(
+ "Pip notification should have been posted",
+ waitForNotificationToAppear { it.isPipNotificationWithTitle(testApp.appName) }
+ )
testApp.closePipWindow()
- assertTrue("Pip notification should have been dismissed",
- waitForNotificationToDisappear { it.isPipNotificationWithTitle(testApp.appName) })
+ assertTrue(
+ "Pip notification should have been dismissed",
+ waitForNotificationToDisappear { it.isPipNotificationWithTitle(testApp.appName) }
+ )
}
@Test
@@ -72,17 +76,20 @@ class TvPipNotificationTests : TvPipTestBase() {
testApp.launchViaIntent()
testApp.clickEnterPipButton(wmHelper)
- val notification: StatusBarNotification = waitForNotificationToAppear {
- it.isPipNotificationWithTitle(testApp.appName)
- } ?: fail("Pip notification should have been posted")
+ val notification: StatusBarNotification =
+ waitForNotificationToAppear { it.isPipNotificationWithTitle(testApp.appName) }
+ ?: fail("Pip notification should have been posted")
- notification.deleteIntent?.send()
- ?: fail("Pip notification should contain `delete_intent`")
+ notification.deleteIntent?.send() ?: fail("Pip notification should contain `delete_intent`")
- assertTrue("Pip should have closed by sending the `delete_intent`",
- testApp.waitUntilClosed())
- assertTrue("Pip notification should have been dismissed",
- waitForNotificationToDisappear { it.isPipNotificationWithTitle(testApp.appName) })
+ assertTrue(
+ "Pip should have closed by sending the `delete_intent`",
+ testApp.waitUntilClosed()
+ )
+ assertTrue(
+ "Pip notification should have been dismissed",
+ waitForNotificationToDisappear { it.isPipNotificationWithTitle(testApp.appName) }
+ )
}
@Test
@@ -90,15 +97,17 @@ class TvPipNotificationTests : TvPipTestBase() {
testApp.launchViaIntent(wmHelper)
testApp.clickEnterPipButton(wmHelper)
- val notification: StatusBarNotification = waitForNotificationToAppear {
- it.isPipNotificationWithTitle(testApp.appName)
- } ?: fail("Pip notification should have been posted")
+ val notification: StatusBarNotification =
+ waitForNotificationToAppear { it.isPipNotificationWithTitle(testApp.appName) }
+ ?: fail("Pip notification should have been posted")
notification.contentIntent?.send()
?: fail("Pip notification should contain `content_intent`")
- assertNotNull("Pip menu should have been shown after sending `content_intent`",
- uiDevice.waitForTvPipMenu())
+ assertNotNull(
+ "Pip menu should have been shown after sending `content_intent`",
+ uiDevice.waitForTvPipMenu()
+ )
uiDevice.pressBack()
testApp.closePipWindow()
@@ -112,35 +121,38 @@ class TvPipNotificationTests : TvPipTestBase() {
testApp.clickEnterPipButton(wmHelper)
// Wait for the correct notification to show up...
- waitForNotificationToAppear {
- it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PLAYING)
- } ?: fail("Pip notification with media session title should have been posted")
+ waitForNotificationToAppear { it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PLAYING) }
+ ?: fail("Pip notification with media session title should have been posted")
// ... and make sure "regular" PiP notification is now shown
- assertNull("Regular notification should not have been posted",
- findNotification { it.isPipNotificationWithTitle(testApp.appName) })
+ assertNull(
+ "Regular notification should not have been posted",
+ findNotification { it.isPipNotificationWithTitle(testApp.appName) }
+ )
// Pause the media session. When paused the application updates the title for the media
// session. This change should be reflected in the notification.
testApp.pauseMedia()
// Wait for the "paused" notification to show up...
- waitForNotificationToAppear {
- it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PAUSED)
- } ?: fail("Pip notification with media session title should have been posted")
+ waitForNotificationToAppear { it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PAUSED) }
+ ?: fail("Pip notification with media session title should have been posted")
// ... and make sure "playing" PiP notification is gone
- assertNull("Regular notification should not have been posted",
- findNotification { it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PLAYING) })
+ assertNull(
+ "Regular notification should not have been posted",
+ findNotification { it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PLAYING) }
+ )
// Now stop the media session, which should revert the title to the "default" one.
testApp.stopMedia()
// Wait for the "regular" notification to show up...
- waitForNotificationToAppear {
- it.isPipNotificationWithTitle(testApp.appName)
- } ?: fail("Pip notification with media session title should have been posted")
+ waitForNotificationToAppear { it.isPipNotificationWithTitle(testApp.appName) }
+ ?: fail("Pip notification with media session title should have been posted")
// ... and make sure previous ("paused") notification is gone
- assertNull("Regular notification should not have been posted",
- findNotification { it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PAUSED) })
+ assertNull(
+ "Regular notification should not have been posted",
+ findNotification { it.isPipNotificationWithTitle(TITLE_MEDIA_SESSION_PAUSED) }
+ )
testApp.closePipWindow()
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt
index aeff0ac9f4f2..dc1fe4761757 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvPipTestBase.kt
@@ -68,7 +68,8 @@ abstract class TvPipTestBase : PipTestBase(rotationToString(ROTATION_0), ROTATIO
fun start() {
hasDied = false
uiAutomation.adoptShellPermissionIdentity(
- android.Manifest.permission.SET_ACTIVITY_WATCHER)
+ android.Manifest.permission.SET_ACTIVITY_WATCHER
+ )
activityManager.registerProcessObserver(this)
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvUtils.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvUtils.kt
index 1c663409b913..b0adbe1d07ce 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvUtils.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/tv/TvUtils.kt
@@ -33,32 +33,31 @@ private const val TV_PIP_MENU_FULLSCREEN_BUTTON_ID = "tv_pip_menu_fullscreen_but
private const val FOCUS_ATTEMPTS = 10
private const val WAIT_TIME_MS = 3_000L
-private val TV_PIP_MENU_SELECTOR =
- By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_ROOT_ID)
+private val TV_PIP_MENU_SELECTOR = By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_ROOT_ID)
private val TV_PIP_MENU_BUTTONS_CONTAINER_SELECTOR =
- By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_BUTTONS_CONTAINER_ID)
+ By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_BUTTONS_CONTAINER_ID)
private val TV_PIP_MENU_CLOSE_BUTTON_SELECTOR =
- By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_CLOSE_BUTTON_ID)
+ By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_CLOSE_BUTTON_ID)
private val TV_PIP_MENU_FULLSCREEN_BUTTON_SELECTOR =
- By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_FULLSCREEN_BUTTON_ID)
+ By.res(SYSTEM_UI_PACKAGE_NAME, TV_PIP_MENU_FULLSCREEN_BUTTON_ID)
fun UiDevice.waitForTvPipMenu(): UiObject2? =
- wait(Until.findObject(TV_PIP_MENU_SELECTOR), WAIT_TIME_MS)
+ wait(Until.findObject(TV_PIP_MENU_SELECTOR), WAIT_TIME_MS)
fun UiDevice.waitForTvPipMenuToClose(): Boolean =
- wait(Until.gone(TV_PIP_MENU_SELECTOR), WAIT_TIME_MS)
+ wait(Until.gone(TV_PIP_MENU_SELECTOR), WAIT_TIME_MS)
fun UiDevice.findTvPipMenuControls(): UiObject2? =
- findTvPipMenuElement(TV_PIP_MENU_BUTTONS_CONTAINER_SELECTOR)
+ findTvPipMenuElement(TV_PIP_MENU_BUTTONS_CONTAINER_SELECTOR)
fun UiDevice.findTvPipMenuCloseButton(): UiObject2? =
- findTvPipMenuElement(TV_PIP_MENU_CLOSE_BUTTON_SELECTOR)
+ findTvPipMenuElement(TV_PIP_MENU_CLOSE_BUTTON_SELECTOR)
fun UiDevice.findTvPipMenuFullscreenButton(): UiObject2? =
- findTvPipMenuElement(TV_PIP_MENU_FULLSCREEN_BUTTON_SELECTOR)
+ findTvPipMenuElement(TV_PIP_MENU_FULLSCREEN_BUTTON_SELECTOR)
fun UiDevice.findTvPipMenuElementWithDescription(desc: String): UiObject2? =
- findTvPipMenuElement(By.desc(desc))
+ findTvPipMenuElement(By.desc(desc))
private fun UiDevice.findTvPipMenuElement(selector: BySelector): UiObject2? =
findObject(TV_PIP_MENU_SELECTOR)?.findObject(selector)
@@ -70,11 +69,10 @@ fun UiDevice.waitForTvPipMenuElementWithDescription(desc: String): UiObject2? {
// descendant and then retrieve the element from the menu and return to the caller of this
// method.
val elementSelector = By.desc(desc)
- val menuContainingElementSelector = By.copy(TV_PIP_MENU_SELECTOR)
- .hasDescendant(elementSelector)
+ val menuContainingElementSelector = By.copy(TV_PIP_MENU_SELECTOR).hasDescendant(elementSelector)
return wait(Until.findObject(menuContainingElementSelector), WAIT_TIME_MS)
- ?.findObject(elementSelector)
+ ?.findObject(elementSelector)
}
fun UiDevice.waitUntilTvPipMenuElementWithDescriptionIsGone(desc: String): Boolean? {
@@ -86,18 +84,17 @@ fun UiDevice.waitUntilTvPipMenuElementWithDescriptionIsGone(desc: String): Boole
fun UiDevice.clickTvPipMenuCloseButton() {
focusOnAndClickTvPipMenuElement(TV_PIP_MENU_CLOSE_BUTTON_SELECTOR) ||
- error("Could not focus on the Close button")
+ error("Could not focus on the Close button")
}
fun UiDevice.clickTvPipMenuFullscreenButton() {
focusOnAndClickTvPipMenuElement(TV_PIP_MENU_FULLSCREEN_BUTTON_SELECTOR) ||
- error("Could not focus on the Fullscreen button")
+ error("Could not focus on the Fullscreen button")
}
fun UiDevice.clickTvPipMenuElementWithDescription(desc: String) {
- focusOnAndClickTvPipMenuElement(By.desc(desc)
- .pkg(SYSTEM_UI_PACKAGE_NAME)) ||
- error("Could not focus on the Pip menu object with \"$desc\" description")
+ focusOnAndClickTvPipMenuElement(By.desc(desc).pkg(SYSTEM_UI_PACKAGE_NAME)) ||
+ error("Could not focus on the Pip menu object with \"$desc\" description")
// So apparently Accessibility framework on TV is not very reliable and sometimes the state of
// the tree of accessibility nodes as seen by the accessibility clients kind of lags behind of
// the "real" state of the "UI tree". It seems, however, that moving focus around the tree
@@ -110,7 +107,8 @@ fun UiDevice.clickTvPipMenuElementWithDescription(desc: String) {
private fun UiDevice.focusOnAndClickTvPipMenuElement(selector: BySelector): Boolean {
repeat(FOCUS_ATTEMPTS) {
- val element = findTvPipMenuElement(selector)
+ val element =
+ findTvPipMenuElement(selector)
?: error("The Pip Menu element we try to focus on is gone.")
if (element.isFocusedOrHasFocusedChild) {
@@ -119,10 +117,11 @@ private fun UiDevice.focusOnAndClickTvPipMenuElement(selector: BySelector): Bool
}
findTvPipMenuElement(By.focused(true))?.let { focused ->
- if (element.visibleCenter.x < focused.visibleCenter.x)
- pressDPadLeft() else pressDPadRight()
+ if (element.visibleCenter.x < focused.visibleCenter.x) pressDPadLeft()
+ else pressDPadRight()
waitForIdle()
- } ?: error("Pip menu does not contain a focused element")
+ }
+ ?: error("Pip menu does not contain a focused element")
}
return false
@@ -155,9 +154,8 @@ private fun UiDevice.moveFocus() {
fun UiDevice.pressWindowKey() = pressKeyCode(KeyEvent.KEYCODE_WINDOW)
-fun UiObject2.isFullscreen(uiDevice: UiDevice): Boolean = visibleBounds.run {
- height() == uiDevice.displayHeight && width() == uiDevice.displayWidth
-}
+fun UiObject2.isFullscreen(uiDevice: UiDevice): Boolean =
+ visibleBounds.run { height() == uiDevice.displayHeight && width() == uiDevice.displayWidth }
val UiObject2.isFocusedOrHasFocusedChild: Boolean
get() = isFocused || findObject(By.focused(true)) != null
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt
index 5bed66339ee5..93be15484335 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/CopyContentInSplit.kt
@@ -54,12 +54,14 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
- setup {
- SplitScreenUtils.enterSplit(wmHelper, tapl, primaryApp, textEditApp)
- }
+ setup { SplitScreenUtils.enterSplit(wmHelper, tapl, primaryApp, textEditApp) }
transitions {
SplitScreenUtils.copyContentInSplit(
- instrumentation, device, primaryApp, textEditApp)
+ instrumentation,
+ device,
+ primaryApp,
+ textEditApp
+ )
}
}
@@ -82,55 +84,49 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS
@Test
fun splitScreenDividerKeepVisible() = testSpec.layerKeepVisible(SPLIT_SCREEN_DIVIDER_COMPONENT)
- @Presubmit
- @Test
- fun primaryAppLayerKeepVisible() = testSpec.layerKeepVisible(primaryApp)
+ @Presubmit @Test fun primaryAppLayerKeepVisible() = testSpec.layerKeepVisible(primaryApp)
- @Presubmit
- @Test
- fun textEditAppLayerKeepVisible() = testSpec.layerKeepVisible(textEditApp)
+ @Presubmit @Test fun textEditAppLayerKeepVisible() = testSpec.layerKeepVisible(textEditApp)
@Presubmit
@Test
- fun primaryAppBoundsKeepVisible() = testSpec.splitAppLayerBoundsKeepVisible(
- primaryApp, landscapePosLeft = tapl.isTablet, portraitPosTop = false)
+ fun primaryAppBoundsKeepVisible() =
+ testSpec.splitAppLayerBoundsKeepVisible(
+ primaryApp,
+ landscapePosLeft = tapl.isTablet,
+ portraitPosTop = false
+ )
@Presubmit
@Test
- fun textEditAppBoundsKeepVisible() = testSpec.splitAppLayerBoundsKeepVisible(
- textEditApp, landscapePosLeft = !tapl.isTablet, portraitPosTop = true)
+ fun textEditAppBoundsKeepVisible() =
+ testSpec.splitAppLayerBoundsKeepVisible(
+ textEditApp,
+ landscapePosLeft = !tapl.isTablet,
+ portraitPosTop = true
+ )
- @Presubmit
- @Test
- fun primaryAppWindowKeepVisible() = testSpec.appWindowKeepVisible(primaryApp)
+ @Presubmit @Test fun primaryAppWindowKeepVisible() = testSpec.appWindowKeepVisible(primaryApp)
- @Presubmit
- @Test
- fun textEditAppWindowKeepVisible() = testSpec.appWindowKeepVisible(textEditApp)
+ @Presubmit @Test fun textEditAppWindowKeepVisible() = testSpec.appWindowKeepVisible(textEditApp)
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() =
- super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerIsVisibleAtStartAndEnd() =
- super.navBarLayerIsVisibleAtStartAndEnd()
+ override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarWindowIsAlwaysVisible() =
- super.navBarWindowIsAlwaysVisible()
+ override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -141,26 +137,22 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarWindowIsAlwaysVisible() =
- super.statusBarWindowIsAlwaysVisible()
+ override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -178,10 +170,12 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests(
- // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
- supportedNavigationModes =
- listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY))
+ return FlickerTestParameterFactory.getInstance()
+ .getConfigNonRotationTests(
+ // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)
+ )
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt
index e57ac91617b7..6453ed869681 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SplitScreenUtils.kt
@@ -76,15 +76,15 @@ internal object SplitScreenUtils {
fun getSendNotification(instrumentation: Instrumentation): NotificationAppHelper =
NotificationAppHelper(instrumentation)
- fun getIme(instrumentation: Instrumentation): ImeAppHelper =
- ImeAppHelper(instrumentation)
+ fun getIme(instrumentation: Instrumentation): ImeAppHelper = ImeAppHelper(instrumentation)
fun waitForSplitComplete(
wmHelper: WindowManagerStateHelper,
primaryApp: IComponentMatcher,
secondaryApp: IComponentMatcher,
) {
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withWindowSurfaceAppeared(primaryApp)
.withWindowSurfaceAppeared(secondaryApp)
.withSplitDividerVisible()
@@ -101,9 +101,7 @@ internal object SplitScreenUtils {
primaryApp.launchViaIntent(wmHelper)
secondaryApp.launchViaIntent(wmHelper)
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
splitFromOverview(tapl)
waitForSplitComplete(wmHelper, primaryApp, secondaryApp)
}
@@ -113,12 +111,11 @@ internal object SplitScreenUtils {
// In landscape, tablet will let the first app split to right side, and phone will
// split to left side.
if (tapl.isTablet) {
- tapl.workspace.switchToOverview().overviewActions
- .clickSplit()
- .currentTask
- .open()
+ tapl.workspace.switchToOverview().overviewActions.clickSplit().currentTask.open()
} else {
- tapl.workspace.switchToOverview().currentTask
+ tapl.workspace
+ .switchToOverview()
+ .currentTask
.tapMenu()
.tapSplitMenuItem()
.currentTask
@@ -132,28 +129,33 @@ internal object SplitScreenUtils {
device: UiDevice,
wmHelper: WindowManagerStateHelper
) {
- val displayBounds = wmHelper.currentState.layerState
- .displays.firstOrNull { !it.isVirtual }
- ?.layerStackSpace
- ?: error("Display not found")
+ val displayBounds =
+ wmHelper.currentState.layerState.displays.firstOrNull { !it.isVirtual }?.layerStackSpace
+ ?: error("Display not found")
// Pull down the notifications
device.swipe(
- displayBounds.centerX(), 5,
- displayBounds.centerX(), displayBounds.bottom, 50 /* steps */
+ displayBounds.centerX(),
+ 5,
+ displayBounds.centerX(),
+ displayBounds.bottom,
+ 50 /* steps */
)
SystemClock.sleep(TIMEOUT_MS)
// Find the target notification
- val notificationScroller = device.wait(
- Until.findObject(notificationScrollerSelector), TIMEOUT_MS
- ) ?: error ("Unable to find view $notificationScrollerSelector")
+ val notificationScroller =
+ device.wait(Until.findObject(notificationScrollerSelector), TIMEOUT_MS)
+ ?: error("Unable to find view $notificationScrollerSelector")
var notificationContent = notificationScroller.findObject(notificationContentSelector)
while (notificationContent == null) {
device.swipe(
- displayBounds.centerX(), displayBounds.centerY(),
- displayBounds.centerX(), displayBounds.centerY() - 150, 20 /* steps */
+ displayBounds.centerX(),
+ displayBounds.centerY(),
+ displayBounds.centerX(),
+ displayBounds.centerY() - 150,
+ 20 /* steps */
)
notificationContent = notificationScroller.findObject(notificationContentSelector)
}
@@ -164,24 +166,33 @@ internal object SplitScreenUtils {
val dragEnd = Point(displayBounds.width / 4, displayBounds.width / 4)
val downTime = SystemClock.uptimeMillis()
- touch(
- instrumentation, MotionEvent.ACTION_DOWN, downTime, downTime,
- TIMEOUT_MS, dragStart
- )
+ touch(instrumentation, MotionEvent.ACTION_DOWN, downTime, downTime, TIMEOUT_MS, dragStart)
// It needs a horizontal movement to trigger the drag
touchMove(
- instrumentation, downTime, SystemClock.uptimeMillis(),
- DRAG_DURATION_MS, dragStart, dragMiddle
+ instrumentation,
+ downTime,
+ SystemClock.uptimeMillis(),
+ DRAG_DURATION_MS,
+ dragStart,
+ dragMiddle
)
touchMove(
- instrumentation, downTime, SystemClock.uptimeMillis(),
- DRAG_DURATION_MS, dragMiddle, dragEnd
+ instrumentation,
+ downTime,
+ SystemClock.uptimeMillis(),
+ DRAG_DURATION_MS,
+ dragMiddle,
+ dragEnd
)
// Wait for a while to start splitting
SystemClock.sleep(TIMEOUT_MS)
touch(
- instrumentation, MotionEvent.ACTION_UP, downTime, SystemClock.uptimeMillis(),
- GESTURE_STEP_MS, dragEnd
+ instrumentation,
+ MotionEvent.ACTION_UP,
+ downTime,
+ SystemClock.uptimeMillis(),
+ GESTURE_STEP_MS,
+ dragEnd
)
SystemClock.sleep(TIMEOUT_MS)
}
@@ -194,9 +205,8 @@ internal object SplitScreenUtils {
duration: Long,
point: Point
) {
- val motionEvent = MotionEvent.obtain(
- downTime, eventTime, action, point.x.toFloat(), point.y.toFloat(), 0
- )
+ val motionEvent =
+ MotionEvent.obtain(downTime, eventTime, action, point.x.toFloat(), point.y.toFloat(), 0)
motionEvent.source = InputDevice.SOURCE_TOUCHSCREEN
instrumentation.uiAutomation.injectInputEvent(motionEvent, true)
motionEvent.recycle()
@@ -219,9 +229,15 @@ internal object SplitScreenUtils {
val stepY = (to.y.toFloat() - from.y.toFloat()) / steps.toFloat()
for (i in 1..steps) {
- val motionMove = MotionEvent.obtain(
- downTime, currentTime, MotionEvent.ACTION_MOVE, currentX, currentY, 0
- )
+ val motionMove =
+ MotionEvent.obtain(
+ downTime,
+ currentTime,
+ MotionEvent.ACTION_MOVE,
+ currentX,
+ currentY,
+ 0
+ )
motionMove.source = InputDevice.SOURCE_TOUCHSCREEN
instrumentation.uiAutomation.injectInputEvent(motionMove, true)
motionMove.recycle()
@@ -238,20 +254,14 @@ internal object SplitScreenUtils {
}
}
- fun longPress(
- instrumentation: Instrumentation,
- point: Point
- ) {
+ fun longPress(instrumentation: Instrumentation, point: Point) {
val downTime = SystemClock.uptimeMillis()
touch(instrumentation, MotionEvent.ACTION_DOWN, downTime, downTime, TIMEOUT_MS, point)
SystemClock.sleep(LONG_PRESS_TIME_MS)
touch(instrumentation, MotionEvent.ACTION_UP, downTime, downTime, TIMEOUT_MS, point)
}
- fun createShortcutOnHotseatIfNotExist(
- tapl: LauncherInstrumentation,
- appName: String
- ) {
+ fun createShortcutOnHotseatIfNotExist(tapl: LauncherInstrumentation, appName: String) {
tapl.workspace.deleteAppIcon(tapl.workspace.getHotseatAppIcon(0))
val allApps = tapl.workspace.switchToAllApps()
allApps.freeze()
@@ -262,18 +272,15 @@ internal object SplitScreenUtils {
}
}
- fun dragDividerToResizeAndWait(
- device: UiDevice,
- wmHelper: WindowManagerStateHelper
- ) {
- val displayBounds = wmHelper.currentState.layerState
- .displays.firstOrNull { !it.isVirtual }
- ?.layerStackSpace
- ?: error("Display not found")
+ fun dragDividerToResizeAndWait(device: UiDevice, wmHelper: WindowManagerStateHelper) {
+ val displayBounds =
+ wmHelper.currentState.layerState.displays.firstOrNull { !it.isVirtual }?.layerStackSpace
+ ?: error("Display not found")
val dividerBar = device.wait(Until.findObject(dividerBarSelector), TIMEOUT_MS)
dividerBar.drag(Point(displayBounds.width * 1 / 3, displayBounds.height * 2 / 3))
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withWindowSurfaceDisappeared(SPLIT_DECOR_MANAGER)
.waitForAndVerify()
}
@@ -284,28 +291,30 @@ internal object SplitScreenUtils {
dragToRight: Boolean,
dragToBottom: Boolean
) {
- val displayBounds = wmHelper.currentState.layerState
- .displays.firstOrNull { !it.isVirtual }
- ?.layerStackSpace
- ?: error("Display not found")
+ val displayBounds =
+ wmHelper.currentState.layerState.displays.firstOrNull { !it.isVirtual }?.layerStackSpace
+ ?: error("Display not found")
val dividerBar = device.wait(Until.findObject(dividerBarSelector), TIMEOUT_MS)
- dividerBar.drag(Point(
- if (dragToRight) {
- displayBounds.width * 4 / 5
- } else {
- displayBounds.width * 1 / 5
- },
- if (dragToBottom) {
- displayBounds.height * 4 / 5
- } else {
- displayBounds.height * 1 / 5
- }))
+ dividerBar.drag(
+ Point(
+ if (dragToRight) {
+ displayBounds.width * 4 / 5
+ } else {
+ displayBounds.width * 1 / 5
+ },
+ if (dragToBottom) {
+ displayBounds.height * 4 / 5
+ } else {
+ displayBounds.height * 1 / 5
+ }
+ )
+ )
}
fun doubleTapDividerToSwitch(device: UiDevice) {
val dividerBar = device.wait(Until.findObject(dividerBarSelector), TIMEOUT_MS)
- val interval = (ViewConfiguration.getDoubleTapTimeout() +
- ViewConfiguration.getDoubleTapMinTime()) / 2
+ val interval =
+ (ViewConfiguration.getDoubleTapTimeout() + ViewConfiguration.getDoubleTapMinTime()) / 2
dividerBar.click()
SystemClock.sleep(interval.toLong())
dividerBar.click()
@@ -318,16 +327,22 @@ internal object SplitScreenUtils {
destinationApp: IComponentNameMatcher,
) {
// Copy text from sourceApp
- val textView = device.wait(Until.findObject(
- By.res(sourceApp.packageName, "SplitScreenTest")), TIMEOUT_MS)
+ val textView =
+ device.wait(
+ Until.findObject(By.res(sourceApp.packageName, "SplitScreenTest")),
+ TIMEOUT_MS
+ )
longPress(instrumentation, textView.visibleCenter)
val copyBtn = device.wait(Until.findObject(By.text("Copy")), TIMEOUT_MS)
copyBtn.click()
// Paste text to destinationApp
- val editText = device.wait(Until.findObject(
- By.res(destinationApp.packageName, "plain_text_input")), TIMEOUT_MS)
+ val editText =
+ device.wait(
+ Until.findObject(By.res(destinationApp.packageName, "plain_text_input")),
+ TIMEOUT_MS
+ )
longPress(instrumentation, editText.visibleCenter)
val pasteBtn = device.wait(Until.findObject(By.text("Paste")), TIMEOUT_MS)
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromAnotherApp.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromAnotherApp.kt
index 274a58c136c8..a340f6061ffb 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromAnotherApp.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromAnotherApp.kt
@@ -55,9 +55,7 @@ class SwitchBackToSplitFromAnotherApp(testSpec: FlickerTestParameter) : SplitScr
SplitScreenUtils.enterSplit(wmHelper, tapl, primaryApp, secondaryApp)
thirdApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withWindowSurfaceAppeared(thirdApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withWindowSurfaceAppeared(thirdApp).waitForAndVerify()
}
transitions {
tapl.launchedAppState.quickSwitchToPreviousApp()
@@ -74,9 +72,7 @@ class SwitchBackToSplitFromAnotherApp(testSpec: FlickerTestParameter) : SplitScr
@Test
fun splitScreenDividerBecomesVisible() = testSpec.splitScreenDividerBecomesVisible()
- @Presubmit
- @Test
- fun primaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(primaryApp)
+ @Presubmit @Test fun primaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(primaryApp)
@Presubmit
@Test
@@ -84,13 +80,21 @@ class SwitchBackToSplitFromAnotherApp(testSpec: FlickerTestParameter) : SplitScr
@Presubmit
@Test
- fun primaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd(
- primaryApp, landscapePosLeft = tapl.isTablet, portraitPosTop = false)
+ fun primaryAppBoundsIsVisibleAtEnd() =
+ testSpec.splitAppLayerBoundsIsVisibleAtEnd(
+ primaryApp,
+ landscapePosLeft = tapl.isTablet,
+ portraitPosTop = false
+ )
@Presubmit
@Test
- fun secondaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd(
- secondaryApp, landscapePosLeft = !tapl.isTablet, portraitPosTop = true)
+ fun secondaryAppBoundsIsVisibleAtEnd() =
+ testSpec.splitAppLayerBoundsIsVisibleAtEnd(
+ secondaryApp,
+ landscapePosLeft = !tapl.isTablet,
+ portraitPosTop = true
+ )
@Presubmit
@Test
@@ -101,28 +105,22 @@ class SwitchBackToSplitFromAnotherApp(testSpec: FlickerTestParameter) : SplitScr
fun secondaryAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(secondaryApp)
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() =
- super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerIsVisibleAtStartAndEnd() =
- super.navBarLayerIsVisibleAtStartAndEnd()
+ override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarWindowIsAlwaysVisible() =
- super.navBarWindowIsAlwaysVisible()
+ override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -133,26 +131,22 @@ class SwitchBackToSplitFromAnotherApp(testSpec: FlickerTestParameter) : SplitScr
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarWindowIsAlwaysVisible() =
- super.statusBarWindowIsAlwaysVisible()
+ override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -170,10 +164,12 @@ class SwitchBackToSplitFromAnotherApp(testSpec: FlickerTestParameter) : SplitScr
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests(
- // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
- supportedNavigationModes =
- listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY))
+ return FlickerTestParameterFactory.getInstance()
+ .getConfigNonRotationTests(
+ // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)
+ )
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromHome.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromHome.kt
index 3da4a943af4e..8fdc9d6cb3bf 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromHome.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromHome.kt
@@ -54,9 +54,7 @@ class SwitchBackToSplitFromHome(testSpec: FlickerTestParameter) : SplitScreenBas
SplitScreenUtils.enterSplit(wmHelper, tapl, primaryApp, secondaryApp)
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
}
transitions {
tapl.workspace.quickSwitchToPreviousApp()
@@ -73,9 +71,7 @@ class SwitchBackToSplitFromHome(testSpec: FlickerTestParameter) : SplitScreenBas
@Test
fun splitScreenDividerBecomesVisible() = testSpec.splitScreenDividerBecomesVisible()
- @Presubmit
- @Test
- fun primaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(primaryApp)
+ @Presubmit @Test fun primaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(primaryApp)
@Presubmit
@Test
@@ -83,13 +79,21 @@ class SwitchBackToSplitFromHome(testSpec: FlickerTestParameter) : SplitScreenBas
@Presubmit
@Test
- fun primaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd(
- primaryApp, landscapePosLeft = tapl.isTablet, portraitPosTop = false)
+ fun primaryAppBoundsIsVisibleAtEnd() =
+ testSpec.splitAppLayerBoundsIsVisibleAtEnd(
+ primaryApp,
+ landscapePosLeft = tapl.isTablet,
+ portraitPosTop = false
+ )
@Presubmit
@Test
- fun secondaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd(
- secondaryApp, landscapePosLeft = !tapl.isTablet, portraitPosTop = true)
+ fun secondaryAppBoundsIsVisibleAtEnd() =
+ testSpec.splitAppLayerBoundsIsVisibleAtEnd(
+ secondaryApp,
+ landscapePosLeft = !tapl.isTablet,
+ portraitPosTop = true
+ )
@Presubmit
@Test
@@ -100,28 +104,22 @@ class SwitchBackToSplitFromHome(testSpec: FlickerTestParameter) : SplitScreenBas
fun secondaryAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(secondaryApp)
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() =
- super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerIsVisibleAtStartAndEnd() =
- super.navBarLayerIsVisibleAtStartAndEnd()
+ override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarWindowIsAlwaysVisible() =
- super.navBarWindowIsAlwaysVisible()
+ override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -132,26 +130,22 @@ class SwitchBackToSplitFromHome(testSpec: FlickerTestParameter) : SplitScreenBas
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarWindowIsAlwaysVisible() =
- super.statusBarWindowIsAlwaysVisible()
+ override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -169,10 +163,12 @@ class SwitchBackToSplitFromHome(testSpec: FlickerTestParameter) : SplitScreenBas
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests(
- // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
- supportedNavigationModes =
- listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY))
+ return FlickerTestParameterFactory.getInstance()
+ .getConfigNonRotationTests(
+ // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)
+ )
}
}
}
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromRecent.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromRecent.kt
index f87d2951f265..5180389b9e7c 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromRecent.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/SwitchBackToSplitFromRecent.kt
@@ -54,14 +54,10 @@ class SwitchBackToSplitFromRecent(testSpec: FlickerTestParameter) : SplitScreenB
SplitScreenUtils.enterSplit(wmHelper, tapl, primaryApp, secondaryApp)
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
}
transitions {
- tapl.workspace.switchToOverview()
- .currentTask
- .open()
+ tapl.workspace.switchToOverview().currentTask.open()
SplitScreenUtils.waitForSplitComplete(wmHelper, primaryApp, secondaryApp)
}
}
@@ -75,9 +71,7 @@ class SwitchBackToSplitFromRecent(testSpec: FlickerTestParameter) : SplitScreenB
@Test
fun splitScreenDividerBecomesVisible() = testSpec.splitScreenDividerBecomesVisible()
- @Presubmit
- @Test
- fun primaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(primaryApp)
+ @Presubmit @Test fun primaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(primaryApp)
@Presubmit
@Test
@@ -85,13 +79,21 @@ class SwitchBackToSplitFromRecent(testSpec: FlickerTestParameter) : SplitScreenB
@Presubmit
@Test
- fun primaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd(
- primaryApp, landscapePosLeft = tapl.isTablet, portraitPosTop = false)
+ fun primaryAppBoundsIsVisibleAtEnd() =
+ testSpec.splitAppLayerBoundsIsVisibleAtEnd(
+ primaryApp,
+ landscapePosLeft = tapl.isTablet,
+ portraitPosTop = false
+ )
@Presubmit
@Test
- fun secondaryAppBoundsIsVisibleAtEnd() = testSpec.splitAppLayerBoundsIsVisibleAtEnd(
- secondaryApp, landscapePosLeft = !tapl.isTablet, portraitPosTop = true)
+ fun secondaryAppBoundsIsVisibleAtEnd() =
+ testSpec.splitAppLayerBoundsIsVisibleAtEnd(
+ secondaryApp,
+ landscapePosLeft = !tapl.isTablet,
+ portraitPosTop = true
+ )
@Presubmit
@Test
@@ -102,28 +104,22 @@ class SwitchBackToSplitFromRecent(testSpec: FlickerTestParameter) : SplitScreenB
fun secondaryAppWindowBecomesVisible() = testSpec.appWindowBecomesVisible(secondaryApp)
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() =
- super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerIsVisibleAtStartAndEnd() =
- super.navBarLayerIsVisibleAtStartAndEnd()
+ override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun navBarWindowIsAlwaysVisible() =
- super.navBarWindowIsAlwaysVisible()
+ override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -134,26 +130,22 @@ class SwitchBackToSplitFromRecent(testSpec: FlickerTestParameter) : SplitScreenB
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarWindowIsAlwaysVisible() =
- super.statusBarWindowIsAlwaysVisible()
+ override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -171,10 +163,12 @@ class SwitchBackToSplitFromRecent(testSpec: FlickerTestParameter) : SplitScreenB
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests(
- // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
- supportedNavigationModes =
- listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY))
+ return FlickerTestParameterFactory.getInstance()
+ .getConfigNonRotationTests(
+ // TODO(b/176061063):The 3 buttons of nav bar do not exist in the hierarchy.
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)
+ )
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt
index f77ec8a4a853..8a1e1fabd131 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/BaseTest.kt
@@ -31,46 +31,40 @@ import org.junit.Test
* [ComponentNameMatcher.TASK_BAR], [ComponentNameMatcher.STATUS_BAR], and general assertions
* (layers visible in consecutive states, entire screen covered, etc.)
*/
-abstract class BaseTest @JvmOverloads constructor(
+abstract class BaseTest
+@JvmOverloads
+constructor(
protected val testSpec: FlickerTestParameter,
protected val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation(),
protected val tapl: LauncherInstrumentation = LauncherInstrumentation()
) {
init {
testSpec.setIsTablet(
- WindowManagerStateHelper(
- instrumentation,
- clearCacheAfterParsing = false
- ).currentState.wmState.isTablet
+ WindowManagerStateHelper(instrumentation, clearCacheAfterParsing = false)
+ .currentState
+ .wmState
+ .isTablet
)
tapl.setExpectedRotationCheckEnabled(true)
}
- /**
- * Specification of the test transition to execute
- */
+ /** Specification of the test transition to execute */
abstract val transition: FlickerBuilder.() -> Unit
/**
- * Entry point for the test runner. It will use this method to initialize and cache
- * flicker executions
+ * Entry point for the test runner. It will use this method to initialize and cache flicker
+ * executions
*/
@FlickerBuilderProvider
fun buildFlicker(): FlickerBuilder {
return FlickerBuilder(instrumentation).apply {
- setup {
- testSpec.setIsTablet(wmHelper.currentState.wmState.isTablet)
- }
+ setup { testSpec.setIsTablet(wmHelper.currentState.wmState.isTablet) }
transition()
}
}
- /**
- * Checks that all parts of the screen are covered during the transition
- */
- @Presubmit
- @Test
- open fun entireScreenCovered() = testSpec.entireScreenCovered()
+ /** Checks that all parts of the screen are covered during the transition */
+ @Presubmit @Test open fun entireScreenCovered() = testSpec.entireScreenCovered()
/**
* Checks that the [ComponentNameMatcher.NAV_BAR] layer is visible during the whole transition
@@ -110,8 +104,8 @@ abstract class BaseTest @JvmOverloads constructor(
}
/**
- * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible at the start and end of
- * the transition
+ * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible at the start and end of the
+ * transition
*
* Note: Large screen only
*/
@@ -123,8 +117,7 @@ abstract class BaseTest @JvmOverloads constructor(
}
/**
- * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible during the whole
- * transition
+ * Checks that the [ComponentNameMatcher.TASK_BAR] window is visible during the whole transition
*
* Note: Large screen only
*/
@@ -136,8 +129,8 @@ abstract class BaseTest @JvmOverloads constructor(
}
/**
- * Checks that the [ComponentNameMatcher.STATUS_BAR] layer is visible at the start and end
- * of the transition
+ * Checks that the [ComponentNameMatcher.STATUS_BAR] layer is visible at the start and end of
+ * the transition
*/
@Presubmit
@Test
@@ -161,26 +154,22 @@ abstract class BaseTest @JvmOverloads constructor(
open fun statusBarWindowIsAlwaysVisible() = testSpec.statusBarWindowIsAlwaysVisible()
/**
- * Checks that all layers that are visible on the trace, are visible for at least 2
- * consecutive entries.
+ * Checks that all layers that are visible on the trace, are visible for at least 2 consecutive
+ * entries.
*/
@Presubmit
@Test
open fun visibleLayersShownMoreThanOneConsecutiveEntry() {
- testSpec.assertLayers {
- this.visibleLayersShownMoreThanOneConsecutiveEntry()
- }
+ testSpec.assertLayers { this.visibleLayersShownMoreThanOneConsecutiveEntry() }
}
/**
- * Checks that all windows that are visible on the trace, are visible for at least 2
- * consecutive entries.
+ * Checks that all windows that are visible on the trace, are visible for at least 2 consecutive
+ * entries.
*/
@Presubmit
@Test
open fun visibleWindowsShownMoreThanOneConsecutiveEntry() {
- testSpec.assertWm {
- this.visibleWindowsShownMoreThanOneConsecutiveEntry()
- }
+ testSpec.assertWm { this.visibleWindowsShownMoreThanOneConsecutiveEntry() }
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt
index c6a7c887c0c7..bbffd0881775 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/CommonAssertions.kt
@@ -15,6 +15,7 @@
*/
@file:JvmName("CommonAssertions")
+
package com.android.server.wm.flicker
import com.android.server.wm.flicker.helpers.WindowUtils
@@ -23,28 +24,24 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.common.IComponentNameMatcher
/**
- * Checks that [ComponentNameMatcher.STATUS_BAR] window is visible and above the app windows in
- * all WM trace entries
+ * Checks that [ComponentNameMatcher.STATUS_BAR] window is visible and above the app windows in all
+ * WM trace entries
*/
fun FlickerTestParameter.statusBarWindowIsAlwaysVisible() {
- assertWm {
- this.isAboveAppWindowVisible(ComponentNameMatcher.STATUS_BAR)
- }
+ assertWm { this.isAboveAppWindowVisible(ComponentNameMatcher.STATUS_BAR) }
}
/**
- * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows in
- * all WM trace entries
+ * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows in all WM
+ * trace entries
*/
fun FlickerTestParameter.navBarWindowIsAlwaysVisible() {
- assertWm {
- this.isAboveAppWindowVisible(ComponentNameMatcher.NAV_BAR)
- }
+ assertWm { this.isAboveAppWindowVisible(ComponentNameMatcher.NAV_BAR) }
}
/**
- * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the start
- * and end of the WM trace
+ * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the
+ * start and end of the WM trace
*/
fun FlickerTestParameter.navBarWindowIsVisibleAtStartAndEnd() {
this.navBarWindowIsVisibleAtStart()
@@ -52,51 +49,43 @@ fun FlickerTestParameter.navBarWindowIsVisibleAtStartAndEnd() {
}
/**
- * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the start
- * of the WM trace
+ * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the
+ * start of the WM trace
*/
fun FlickerTestParameter.navBarWindowIsVisibleAtStart() {
- assertWmStart {
- this.isAboveAppWindowVisible(ComponentNameMatcher.NAV_BAR)
- }
+ assertWmStart { this.isAboveAppWindowVisible(ComponentNameMatcher.NAV_BAR) }
}
/**
- * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the
- * end of the WM trace
+ * Checks that [ComponentNameMatcher.NAV_BAR] window is visible and above the app windows at the end
+ * of the WM trace
*/
fun FlickerTestParameter.navBarWindowIsVisibleAtEnd() {
- assertWmEnd {
- this.isAboveAppWindowVisible(ComponentNameMatcher.NAV_BAR)
- }
+ assertWmEnd { this.isAboveAppWindowVisible(ComponentNameMatcher.NAV_BAR) }
}
/**
- * Checks that [ComponentNameMatcher.TASK_BAR] window is visible and above the app windows in
- * all WM trace entries
+ * Checks that [ComponentNameMatcher.TASK_BAR] window is visible and above the app windows in all WM
+ * trace entries
*/
fun FlickerTestParameter.taskBarWindowIsAlwaysVisible() {
- assertWm {
- this.isAboveAppWindowVisible(ComponentNameMatcher.TASK_BAR)
- }
+ assertWm { this.isAboveAppWindowVisible(ComponentNameMatcher.TASK_BAR) }
}
/**
- * Checks that [ComponentNameMatcher.TASK_BAR] window is visible and above the app windows in
- * all WM trace entries
+ * Checks that [ComponentNameMatcher.TASK_BAR] window is visible and above the app windows in all WM
+ * trace entries
*/
fun FlickerTestParameter.taskBarWindowIsVisibleAtEnd() {
- assertWmEnd {
- this.isAboveAppWindowVisible(ComponentNameMatcher.TASK_BAR)
- }
+ assertWmEnd { this.isAboveAppWindowVisible(ComponentNameMatcher.TASK_BAR) }
}
/**
- * If [allStates] is true, checks if the stack space of all displays is fully covered
- * by any visible layer, during the whole transitions
+ * If [allStates] is true, checks if the stack space of all displays is fully covered by any visible
+ * layer, during the whole transitions
*
- * Otherwise, checks if the stack space of all displays is fully covered
- * by any visible layer, at the start and end of the transition
+ * Otherwise, checks if the stack space of all displays is fully covered by any visible layer, at
+ * the start and end of the transition
*
* @param allStates if all states should be checked, othersie, just initial and final
*/
@@ -124,27 +113,18 @@ fun FlickerTestParameter.entireScreenCovered(allStates: Boolean = true) {
}
}
-/**
- * Checks that [ComponentNameMatcher.NAV_BAR] layer is visible at the start of the SF trace
- */
+/** Checks that [ComponentNameMatcher.NAV_BAR] layer is visible at the start of the SF trace */
fun FlickerTestParameter.navBarLayerIsVisibleAtStart() {
- assertLayersStart {
- this.isVisible(ComponentNameMatcher.NAV_BAR)
- }
+ assertLayersStart { this.isVisible(ComponentNameMatcher.NAV_BAR) }
}
-/**
- * Checks that [ComponentNameMatcher.NAV_BAR] layer is visible at the end of the SF trace
- */
+/** Checks that [ComponentNameMatcher.NAV_BAR] layer is visible at the end of the SF trace */
fun FlickerTestParameter.navBarLayerIsVisibleAtEnd() {
- assertLayersEnd {
- this.isVisible(ComponentNameMatcher.NAV_BAR)
- }
+ assertLayersEnd { this.isVisible(ComponentNameMatcher.NAV_BAR) }
}
/**
- * Checks that [ComponentNameMatcher.NAV_BAR] layer is visible at the start and end of the SF
- * trace
+ * Checks that [ComponentNameMatcher.NAV_BAR] layer is visible at the start and end of the SF trace
*/
fun FlickerTestParameter.navBarLayerIsVisibleAtStartAndEnd() {
this.navBarLayerIsVisibleAtStart()
@@ -152,32 +132,21 @@ fun FlickerTestParameter.navBarLayerIsVisibleAtStartAndEnd() {
}
/**
- * Checks that [ComponentNameMatcher.TASK_BAR] layer is visible at the start and end of the SF
- * trace
+ * Checks that [ComponentNameMatcher.TASK_BAR] layer is visible at the start and end of the SF trace
*/
fun FlickerTestParameter.taskBarLayerIsVisibleAtStartAndEnd() {
this.taskBarLayerIsVisibleAtStart()
this.taskBarLayerIsVisibleAtEnd()
}
-/**
- * Checks that [ComponentNameMatcher.TASK_BAR] layer is visible at the start of the SF
- * trace
- */
+/** Checks that [ComponentNameMatcher.TASK_BAR] layer is visible at the start of the SF trace */
fun FlickerTestParameter.taskBarLayerIsVisibleAtStart() {
- assertLayersStart {
- this.isVisible(ComponentNameMatcher.TASK_BAR)
- }
+ assertLayersStart { this.isVisible(ComponentNameMatcher.TASK_BAR) }
}
-/**
- * Checks that [ComponentNameMatcher.TASK_BAR] layer is visible at the end of the SF
- * trace
- */
+/** Checks that [ComponentNameMatcher.TASK_BAR] layer is visible at the end of the SF trace */
fun FlickerTestParameter.taskBarLayerIsVisibleAtEnd() {
- assertLayersEnd {
- this.isVisible(ComponentNameMatcher.TASK_BAR)
- }
+ assertLayersEnd { this.isVisible(ComponentNameMatcher.TASK_BAR) }
}
/**
@@ -185,43 +154,40 @@ fun FlickerTestParameter.taskBarLayerIsVisibleAtEnd() {
* trace
*/
fun FlickerTestParameter.statusBarLayerIsVisibleAtStartAndEnd() {
- assertLayersStart {
- this.isVisible(ComponentNameMatcher.STATUS_BAR)
- }
- assertLayersEnd {
- this.isVisible(ComponentNameMatcher.STATUS_BAR)
- }
+ assertLayersStart { this.isVisible(ComponentNameMatcher.STATUS_BAR) }
+ assertLayersEnd { this.isVisible(ComponentNameMatcher.STATUS_BAR) }
}
/**
- * Asserts that the [ComponentNameMatcher.NAV_BAR] layer is at the correct position at the start
- * of the SF trace
+ * Asserts that the [ComponentNameMatcher.NAV_BAR] layer is at the correct position at the start of
+ * the SF trace
*/
fun FlickerTestParameter.navBarLayerPositionAtStart() {
assertLayersStart {
- val display = this.entry.displays.firstOrNull { !it.isVirtual }
- ?: error("There is no display!")
+ val display =
+ this.entry.displays.firstOrNull { !it.isVirtual } ?: error("There is no display!")
this.visibleRegion(ComponentNameMatcher.NAV_BAR)
.coversExactly(WindowUtils.getNavigationBarPosition(display, isGesturalNavigation))
}
}
/**
- * Asserts that the [ComponentNameMatcher.NAV_BAR] layer is at the correct position at the end
- * of the SF trace
+ * Asserts that the [ComponentNameMatcher.NAV_BAR] layer is at the correct position at the end of
+ * the SF trace
*/
fun FlickerTestParameter.navBarLayerPositionAtEnd() {
assertLayersEnd {
- val display = this.entry.displays.minByOrNull { it.id }
- ?: throw RuntimeException("There is no display!")
+ val display =
+ this.entry.displays.minByOrNull { it.id }
+ ?: throw RuntimeException("There is no display!")
this.visibleRegion(ComponentNameMatcher.NAV_BAR)
.coversExactly(WindowUtils.getNavigationBarPosition(display, isGesturalNavigation))
}
}
/**
- * Asserts that the [ComponentNameMatcher.NAV_BAR] layer is at the correct position at the start
- * and end of the SF trace
+ * Asserts that the [ComponentNameMatcher.NAV_BAR] layer is at the correct position at the start and
+ * end of the SF trace
*/
fun FlickerTestParameter.navBarLayerPositionAtStartAndEnd() {
navBarLayerPositionAtStart()
@@ -234,21 +200,23 @@ fun FlickerTestParameter.navBarLayerPositionAtStartAndEnd() {
*/
fun FlickerTestParameter.statusBarLayerPositionAtStart() {
assertLayersStart {
- val display = this.entry.displays.minByOrNull { it.id }
- ?: throw RuntimeException("There is no display!")
+ val display =
+ this.entry.displays.minByOrNull { it.id }
+ ?: throw RuntimeException("There is no display!")
this.visibleRegion(ComponentNameMatcher.STATUS_BAR)
.coversExactly(WindowUtils.getStatusBarPosition(display))
}
}
/**
- * Asserts that the [ComponentNameMatcher.STATUS_BAR] layer is at the correct position at the end
- * of the SF trace
+ * Asserts that the [ComponentNameMatcher.STATUS_BAR] layer is at the correct position at the end of
+ * the SF trace
*/
fun FlickerTestParameter.statusBarLayerPositionAtEnd() {
assertLayersEnd {
- val display = this.entry.displays.minByOrNull { it.id }
- ?: throw RuntimeException("There is no display!")
+ val display =
+ this.entry.displays.minByOrNull { it.id }
+ ?: throw RuntimeException("There is no display!")
this.visibleRegion(ComponentNameMatcher.STATUS_BAR)
.coversExactly(WindowUtils.getStatusBarPosition(display))
}
@@ -264,23 +232,25 @@ fun FlickerTestParameter.statusBarLayerPositionAtStartAndEnd() {
}
/**
- * Asserts that the visibleRegion of the [ComponentNameMatcher.SNAPSHOT] layer can cover
- * the visibleRegion of the given app component exactly
+ * Asserts that the visibleRegion of the [ComponentNameMatcher.SNAPSHOT] layer can cover the
+ * visibleRegion of the given app component exactly
*/
fun FlickerTestParameter.snapshotStartingWindowLayerCoversExactlyOnApp(
component: IComponentNameMatcher
) {
assertLayers {
invoke("snapshotStartingWindowLayerCoversExactlyOnApp") {
- val snapshotLayers = it.subjects.filter { subject ->
- subject.name.contains(
- ComponentNameMatcher.SNAPSHOT.toLayerName()) && subject.isVisible
- }
+ val snapshotLayers =
+ it.subjects.filter { subject ->
+ subject.name.contains(ComponentNameMatcher.SNAPSHOT.toLayerName()) &&
+ subject.isVisible
+ }
// Verify the size of snapshotRegion covers appVisibleRegion exactly in animation.
if (snapshotLayers.isNotEmpty()) {
- val visibleAreas = snapshotLayers.mapNotNull { snapshotLayer ->
- snapshotLayer.layer?.visibleRegion
- }.toTypedArray()
+ val visibleAreas =
+ snapshotLayers
+ .mapNotNull { snapshotLayer -> snapshotLayer.layer?.visibleRegion }
+ .toTypedArray()
val snapshotRegion = RegionSubject.assertThat(visibleAreas, this, timestamp)
val appVisibleRegion = it.visibleRegion(component)
if (snapshotRegion.region.isNotEmpty) {
@@ -293,22 +263,33 @@ fun FlickerTestParameter.snapshotStartingWindowLayerCoversExactlyOnApp(
/**
* Asserts that:
+ * ```
* [originalLayer] is visible at the start of the trace
* [originalLayer] becomes invisible during the trace and (in the same entry) [newLayer]
* becomes visible
* [newLayer] remains visible until the end of the trace
*
- * @param originalLayer Layer that should be visible at the start
+ * @param originalLayer
+ * ```
+ * Layer that should be visible at the start
* @param newLayer Layer that should be visible at the end
* @param ignoreEntriesWithRotationLayer If entries with a visible rotation layer should be ignored
+ * ```
* when checking the transition. If true we will not fail the assertion if a rotation layer is
* visible to fill the gap between the [originalLayer] being visible and the [newLayer] being
* visible.
- * @param ignoreSnapshot If the snapshot layer should be ignored during the transition
+ * @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.
+ * @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: IComponentNameMatcher,
@@ -333,13 +314,7 @@ fun FlickerTestParameter.replacesLayer(
assertion.then().isVisible(newLayer)
}
- assertLayersStart {
- this.isVisible(originalLayer)
- .isInvisible(newLayer)
- }
+ assertLayersStart { this.isVisible(originalLayer).isInvisible(newLayer) }
- assertLayersEnd {
- this.isInvisible(originalLayer)
- .isVisible(newLayer)
- }
+ assertLayersEnd { this.isInvisible(originalLayer).isVisible(newLayer) }
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/OpenActivityEmbeddingPlaceholderSplit.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/OpenActivityEmbeddingPlaceholderSplit.kt
index 79654e36a888..b23fb5a284c1 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/OpenActivityEmbeddingPlaceholderSplit.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/activityembedding/OpenActivityEmbeddingPlaceholderSplit.kt
@@ -41,9 +41,8 @@ import org.junit.runners.Parameterized
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class OpenActivityEmbeddingPlaceholderSplit(
- testSpec: FlickerTestParameter
-) : ActivityEmbeddingTestBase(testSpec) {
+class OpenActivityEmbeddingPlaceholderSplit(testSpec: FlickerTestParameter) :
+ ActivityEmbeddingTestBase(testSpec) {
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
@@ -51,9 +50,7 @@ class OpenActivityEmbeddingPlaceholderSplit(
tapl.setExpectedRotationCheckEnabled(false)
testApp.launchViaIntent(wmHelper)
}
- transitions {
- testApp.launchPlaceholderSplit(wmHelper)
- }
+ transitions { testApp.launchPlaceholderSplit(wmHelper) }
teardown {
tapl.goHome()
testApp.exit(wmHelper)
@@ -65,8 +62,8 @@ class OpenActivityEmbeddingPlaceholderSplit(
fun mainActivityBecomesInvisible() {
testSpec.assertLayers {
isVisible(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT)
- .then()
- .isInvisible(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT)
+ .then()
+ .isInvisible(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT)
}
}
@@ -75,20 +72,18 @@ class OpenActivityEmbeddingPlaceholderSplit(
fun placeholderSplitBecomesVisible() {
testSpec.assertLayers {
isInvisible(ActivityEmbeddingAppHelper.PLACEHOLDER_PRIMARY_COMPONENT)
- .then()
- .isVisible(ActivityEmbeddingAppHelper.PLACEHOLDER_PRIMARY_COMPONENT)
+ .then()
+ .isVisible(ActivityEmbeddingAppHelper.PLACEHOLDER_PRIMARY_COMPONENT)
}
testSpec.assertLayers {
isInvisible(ActivityEmbeddingAppHelper.PLACEHOLDER_SECONDARY_COMPONENT)
- .then()
- .isVisible(ActivityEmbeddingAppHelper.PLACEHOLDER_SECONDARY_COMPONENT)
+ .then()
+ .isVisible(ActivityEmbeddingAppHelper.PLACEHOLDER_SECONDARY_COMPONENT)
}
}
/** {@inheritDoc} */
- @Presubmit
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ @Presubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Presubmit
@@ -124,14 +119,12 @@ class OpenActivityEmbeddingPlaceholderSplit(
/** {@inheritDoc} */
@Presubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Presubmit
@Test
- override fun statusBarWindowIsAlwaysVisible() =
- super.statusBarWindowIsAlwaysVisible()
+ override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Presubmit
@@ -149,20 +142,21 @@ class OpenActivityEmbeddingPlaceholderSplit(
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
- )
+ .getConfigNonRotationTests(
+ supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90),
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
+ )
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt
index 2b6e3938ada9..afdb99b035b1 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppBackButtonTest.kt
@@ -1,4 +1,3 @@
-
/*
* Copyright (C) 2020 The Android Open Source Project
*
@@ -36,28 +35,34 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:CloseAppBackButtonTest`
*
* Actions:
+ * ```
* Make sure no apps are running on the device
* Launch an app [testApp] and wait animation to complete
* Press back button
- *
+ * ```
* To run only the presubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit`
- *
+ * ```
* To run only the postsubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit`
- *
+ * ```
* To run only the flaky assertions add: `--
+ * ```
* --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest`
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [CloseAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@FlickerServiceCompatible
@@ -71,9 +76,7 @@ class CloseAppBackButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio
super.transition(this)
transitions {
tapl.pressBack()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
}
}
@@ -86,14 +89,13 @@ class CloseAppBackButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt
index 765be20ea1bd..78d0860f2636 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppHomeButtonTest.kt
@@ -35,28 +35,34 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:CloseAppHomeButtonTest`
*
* Actions:
+ * ```
* Make sure no apps are running on the device
* Launch an app [testApp] and wait animation to complete
* Press home button
- *
+ * ```
* To run only the presubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit`
- *
+ * ```
* To run only the postsubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit`
- *
+ * ```
* To run only the flaky assertions add: `--
+ * ```
* --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest`
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [CloseAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@FlickerServiceCompatible
@@ -68,18 +74,14 @@ class CloseAppHomeButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
- setup {
- tapl.setExpectedRotationCheckEnabled(false)
- }
+ setup { tapl.setExpectedRotationCheckEnabled(false) }
transitions {
// Can't use TAPL at the moment because of rotation test issues
// When pressing home, TAPL expects the orientation to remain constant
// However, when closing a landscape app back to a portrait-only launcher
// this causes an error in verifyActiveContainer();
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
}
}
@@ -92,14 +94,13 @@ class CloseAppHomeButtonTest(testSpec: FlickerTestParameter) : CloseAppTransitio
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt
index f296d9746aef..5bb227f36333 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/close/CloseAppTransition.kt
@@ -27,9 +27,7 @@ import com.android.server.wm.flicker.replacesLayer
import com.android.server.wm.traces.common.ComponentNameMatcher.Companion.LAUNCHER
import org.junit.Test
-/**
- * Base test class for transitions that close an app back to the launcher screen
- */
+/** Base test class for transitions that close an app back to the launcher screen */
abstract class CloseAppTransition(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
protected open val testApp: StandardAppHelper = SimpleAppHelper(instrumentation)
@@ -40,42 +38,30 @@ abstract class CloseAppTransition(testSpec: FlickerTestParameter) : BaseTest(tes
testApp.launchViaIntent(wmHelper)
this.setRotation(testSpec.startRotation)
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
}
/**
- * Checks that [testApp] is the top visible app window at the start of the transition and
- * that it is replaced by [LAUNCHER] during the transition
+ * Checks that [testApp] is the top visible app window at the start of the transition and that
+ * it is replaced by [LAUNCHER] during the transition
*/
@Presubmit
@Test
open fun launcherReplacesAppWindowAsTopWindow() {
- testSpec.assertWm {
- this.isAppWindowOnTop(testApp)
- .then()
- .isAppWindowOnTop(LAUNCHER)
- }
+ testSpec.assertWm { this.isAppWindowOnTop(testApp).then().isAppWindowOnTop(LAUNCHER) }
}
/**
- * Checks that [LAUNCHER] is invisible at the start of the transition and that
- * it becomes visible during the transition
+ * Checks that [LAUNCHER] is invisible at the start of the transition and that it becomes
+ * visible during the transition
*/
@Presubmit
@Test
open fun launcherWindowBecomesVisible() {
- testSpec.assertWm {
- this.isAppWindowNotOnTop(LAUNCHER)
- .then()
- .isAppWindowOnTop(LAUNCHER)
- }
+ testSpec.assertWm { this.isAppWindowNotOnTop(LAUNCHER).then().isAppWindowOnTop(LAUNCHER) }
}
- /**
- * Checks that [LAUNCHER] layer becomes visible when [testApp] becomes invisible
- */
+ /** Checks that [LAUNCHER] layer becomes visible when [testApp] becomes invisible */
@Presubmit
@Test
open fun launcherLayerReplacesApp() {
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt
index ef5cec29f898..48e1e64a05eb 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ActivityEmbeddingAppHelper.kt
@@ -32,13 +32,14 @@ import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
import org.junit.Assume.assumeNotNull
-class ActivityEmbeddingAppHelper @JvmOverloads constructor(
+class ActivityEmbeddingAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.ActivityEmbedding.MainActivity.LABEL,
component: ComponentNameMatcher = MAIN_ACTIVITY_COMPONENT,
- launcherStrategy: ILauncherStrategy = LauncherStrategyFactory
- .getInstance(instr)
- .launcherStrategy
+ launcherStrategy: ILauncherStrategy =
+ LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy) {
/**
@@ -46,14 +47,15 @@ class ActivityEmbeddingAppHelper @JvmOverloads constructor(
* placeholder secondary activity based on the placeholder rule.
*/
fun launchPlaceholderSplit(wmHelper: WindowManagerStateHelper) {
- val launchButton = uiDevice.wait(
- Until.findObject(By.res(getPackage(), "launch_placeholder_split_button")),
- FIND_TIMEOUT)
- require(launchButton != null) {
- "Can't find launch placeholder split button on screen."
- }
+ val launchButton =
+ uiDevice.wait(
+ Until.findObject(By.res(getPackage(), "launch_placeholder_split_button")),
+ FIND_TIMEOUT
+ )
+ require(launchButton != null) { "Can't find launch placeholder split button on screen." }
launchButton.click()
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withActivityState(PLACEHOLDER_PRIMARY_COMPONENT, STATE_RESUMED)
.withActivityState(PLACEHOLDER_SECONDARY_COMPONENT, STATE_RESUMED)
.waitForAndVerify()
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/CameraAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/CameraAppHelper.kt
index 34f9ce43b4bc..a2d4d3a01a4a 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/CameraAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/CameraAppHelper.kt
@@ -23,12 +23,18 @@ import android.content.pm.ResolveInfo
import android.provider.MediaStore
import com.android.server.wm.traces.common.ComponentNameMatcher
-class CameraAppHelper @JvmOverloads constructor(
+class CameraAppHelper
+@JvmOverloads
+constructor(
instrumentation: Instrumentation,
pkgManager: PackageManager = instrumentation.context.packageManager
-) : StandardAppHelper(instrumentation, getCameraLauncherName(pkgManager),
- getCameraComponent(pkgManager)){
- companion object{
+) :
+ StandardAppHelper(
+ instrumentation,
+ getCameraLauncherName(pkgManager),
+ getCameraComponent(pkgManager)
+ ) {
+ companion object {
private fun getCameraIntent(): Intent {
return Intent(MediaStore.ACTION_IMAGE_CAPTURE)
}
@@ -36,13 +42,15 @@ class CameraAppHelper @JvmOverloads constructor(
private fun getResolveInfo(pkgManager: PackageManager): ResolveInfo {
val intent = getCameraIntent()
return pkgManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)
- ?: error("unable to resolve camera activity")
+ ?: error("unable to resolve camera activity")
}
private fun getCameraComponent(pkgManager: PackageManager): ComponentNameMatcher {
val resolveInfo = getResolveInfo(pkgManager)
- return ComponentNameMatcher(resolveInfo.activityInfo.packageName,
- className = resolveInfo.activityInfo.name)
+ return ComponentNameMatcher(
+ resolveInfo.activityInfo.packageName,
+ className = resolveInfo.activityInfo.name
+ )
}
private fun getCameraLauncherName(pkgManager: PackageManager): String {
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt
index 132e7b6fef6d..4340bd788046 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FixedOrientationAppHelper.kt
@@ -23,12 +23,13 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class FixedOrientationAppHelper @JvmOverloads constructor(
+class FixedOrientationAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.PortraitOnlyActivity.LABEL,
component: ComponentNameMatcher =
ActivityOptions.PortraitOnlyActivity.COMPONENT.toFlickerComponent(),
- launcherStrategy: ILauncherStrategy = LauncherStrategyFactory
- .getInstance(instr)
- .launcherStrategy
+ launcherStrategy: ILauncherStrategy =
+ LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy)
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt
index d08cb5525d5e..73cb8627a068 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/FlickerExtensions.kt
@@ -15,6 +15,7 @@
*/
@file:JvmName("FlickerExtensions")
+
package com.android.server.wm.flicker.helpers
import com.android.server.wm.flicker.Flicker
@@ -31,4 +32,4 @@ fun Flicker.setRotation(rotation: Int) =
instrumentation,
clearCacheAfterParsing = false,
wmHelper = wmHelper
-)
+ )
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt
index 2d81e0d9e165..1806d1ef6cad 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/GameAppHelper.kt
@@ -27,7 +27,9 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-class GameAppHelper @JvmOverloads constructor(
+class GameAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.Game.LABEL,
component: ComponentNameMatcher = ActivityOptions.Game.COMPONENT.toFlickerComponent(),
@@ -41,13 +43,18 @@ class GameAppHelper @JvmOverloads constructor(
* @return true if the swipe operation is successful.
*/
fun swipeDown(): Boolean {
- val gameView = uiDevice.wait(
- Until.findObject(By.res(getPackage(), GAME_APP_VIEW_RES)), WAIT_TIME_MS)
+ val gameView =
+ uiDevice.wait(Until.findObject(By.res(getPackage(), GAME_APP_VIEW_RES)), WAIT_TIME_MS)
require(gameView != null) { "Mock game app view not found." }
val bound = gameView.getVisibleBounds()
return uiDevice.swipe(
- bound.centerX(), bound.top, bound.centerX(), bound.centerY(), SWIPE_STEPS)
+ bound.centerX(),
+ bound.top,
+ bound.centerX(),
+ bound.centerY(),
+ SWIPE_STEPS
+ )
}
/**
@@ -69,15 +76,21 @@ class GameAppHelper @JvmOverloads constructor(
val bound = fullView.bounds
val targetYPos = bound.bottom * ratioForScreenBottom
- val endX = when (direction) {
- Direction.LEFT -> bound.left
- Direction.RIGHT -> bound.right
- else -> {
- throw IllegalStateException("Only left or right direction is allowed.")
+ val endX =
+ when (direction) {
+ Direction.LEFT -> bound.left
+ Direction.RIGHT -> bound.right
+ else -> {
+ throw IllegalStateException("Only left or right direction is allowed.")
+ }
}
- }
return uiDevice.swipe(
- bound.centerX(), targetYPos.toInt(), endX, targetYPos.toInt(), SWIPE_STEPS)
+ bound.centerX(),
+ targetYPos.toInt(),
+ endX,
+ targetYPos.toInt(),
+ SWIPE_STEPS
+ )
}
/**
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppAutoFocusHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppAutoFocusHelper.kt
index b5b0da934ad9..16753e63eb01 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppAutoFocusHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppAutoFocusHelper.kt
@@ -28,7 +28,9 @@ import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
import java.util.regex.Pattern
-class ImeAppAutoFocusHelper @JvmOverloads constructor(
+class ImeAppAutoFocusHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
private val rotation: Int,
private val imePackageName: String = IME_PACKAGE,
@@ -52,59 +54,61 @@ class ImeAppAutoFocusHelper @JvmOverloads constructor(
}
override fun open() {
- val expectedPackage = if (rotation.isRotated()) {
- imePackageName
- } else {
- getPackage()
- }
+ val expectedPackage =
+ if (rotation.isRotated()) {
+ imePackageName
+ } else {
+ getPackage()
+ }
launcherStrategy.launch(appName, expectedPackage)
}
fun startDialogThemedActivity(wmHelper: WindowManagerStateHelper) {
- val button = uiDevice.wait(Until.findObject(By.res(getPackage(),
- "start_dialog_themed_activity_btn")), FIND_TIMEOUT)
+ val button =
+ uiDevice.wait(
+ Until.findObject(By.res(getPackage(), "start_dialog_themed_activity_btn")),
+ FIND_TIMEOUT
+ )
requireNotNull(button) {
"Button not found, this usually happens when the device " +
"was left in an unknown state (e.g. Screen turned off)"
}
button.click()
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(
- ActivityOptions.DialogThemedActivity.COMPONENT.toFlickerComponent())
+ wmHelper
+ .StateSyncBuilder()
+ .withFullScreenApp(ActivityOptions.DialogThemedActivity.COMPONENT.toFlickerComponent())
.waitForAndVerify()
}
fun dismissDialog(wmHelper: WindowManagerStateHelper) {
- val dialog = uiDevice.wait(
- Until.findObject(By.text("Dialog for test")), FIND_TIMEOUT)
+ val dialog = uiDevice.wait(Until.findObject(By.text("Dialog for test")), FIND_TIMEOUT)
// Pressing back key to dismiss the dialog
if (dialog != null) {
uiDevice.pressBack()
- wmHelper.StateSyncBuilder()
- .withAppTransitionIdle()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
}
}
fun getInsetsVisibleFromDialog(type: Int): Boolean {
- val insetsVisibilityTextView = uiDevice.wait(
- Until.findObject(By.res("android:id/text1")), FIND_TIMEOUT)
+ val insetsVisibilityTextView =
+ uiDevice.wait(Until.findObject(By.res("android:id/text1")), FIND_TIMEOUT)
if (insetsVisibilityTextView != null) {
val visibility = insetsVisibilityTextView.text.toString()
- val matcher = when (type) {
- ime() -> {
- Pattern.compile("IME\\: (VISIBLE|INVISIBLE)").matcher(visibility)
- }
- statusBars() -> {
- Pattern.compile("StatusBar\\: (VISIBLE|INVISIBLE)").matcher(visibility)
+ val matcher =
+ when (type) {
+ ime() -> {
+ Pattern.compile("IME\\: (VISIBLE|INVISIBLE)").matcher(visibility)
+ }
+ statusBars() -> {
+ Pattern.compile("StatusBar\\: (VISIBLE|INVISIBLE)").matcher(visibility)
+ }
+ navigationBars() -> {
+ Pattern.compile("NavBar\\: (VISIBLE|INVISIBLE)").matcher(visibility)
+ }
+ else -> null
}
- navigationBars() -> {
- Pattern.compile("NavBar\\: (VISIBLE|INVISIBLE)").matcher(visibility)
- }
- else -> null
- }
if (matcher != null && matcher.find()) {
return matcher.group(1).equals("VISIBLE")
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt
index 56b6b92dd6ef..cefbf18d33c9 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeAppHelper.kt
@@ -26,11 +26,12 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-open class ImeAppHelper @JvmOverloads constructor(
+open class ImeAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.Ime.Default.LABEL,
- component: ComponentNameMatcher =
- ActivityOptions.Ime.Default.COMPONENT.toFlickerComponent(),
+ component: ComponentNameMatcher = ActivityOptions.Ime.Default.COMPONENT.toFlickerComponent(),
launcherStrategy: ILauncherStrategy =
LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy) {
@@ -40,9 +41,8 @@ open class ImeAppHelper @JvmOverloads constructor(
* @param wmHelper Helper used to wait for WindowManager states
*/
open fun openIME(wmHelper: WindowManagerStateHelper) {
- val editText = uiDevice.wait(
- Until.findObject(By.res(getPackage(), "plain_text_input")),
- FIND_TIMEOUT)
+ val editText =
+ uiDevice.wait(Until.findObject(By.res(getPackage(), "plain_text_input")), FIND_TIMEOUT)
requireNotNull(editText) {
"Text field not found, this usually happens when the device " +
@@ -53,9 +53,7 @@ open class ImeAppHelper @JvmOverloads constructor(
}
protected fun waitIMEShown(wmHelper: WindowManagerStateHelper) {
- wmHelper.StateSyncBuilder()
- .withImeShown()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withImeShown().waitForAndVerify()
}
/**
@@ -65,21 +63,19 @@ open class ImeAppHelper @JvmOverloads constructor(
*/
open fun closeIME(wmHelper: WindowManagerStateHelper) {
uiDevice.pressBack()
- wmHelper.StateSyncBuilder()
- .withImeGone()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withImeGone().waitForAndVerify()
}
open fun finishActivity(wmHelper: WindowManagerStateHelper) {
- val finishButton = uiDevice.wait(
- Until.findObject(By.res(getPackage(), "finish_activity_btn")),
- FIND_TIMEOUT)
+ val finishButton =
+ uiDevice.wait(
+ Until.findObject(By.res(getPackage(), "finish_activity_btn")),
+ FIND_TIMEOUT
+ )
requireNotNull(finishButton) {
"Finish activity button not found, probably IME activity is not on the screen?"
}
finishButton.click()
- wmHelper.StateSyncBuilder()
- .withActivityRemoved(this)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withActivityRemoved(this).waitForAndVerify()
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt
index bfb68da20836..871b66ecbf0e 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeEditorPopupDialogAppHelper.kt
@@ -24,7 +24,9 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-class ImeEditorPopupDialogAppHelper @JvmOverloads constructor(
+class ImeEditorPopupDialogAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.Ime.EditorPopupDialogActivity.LABEL,
component: ComponentNameMatcher =
@@ -42,15 +44,12 @@ class ImeEditorPopupDialogAppHelper @JvmOverloads constructor(
}
fun dismissDialog(wmHelper: WindowManagerStateHelper) {
- val dismissButton = uiDevice.wait(
- Until.findObject(By.text("Dismiss")), FIND_TIMEOUT)
+ val dismissButton = uiDevice.wait(Until.findObject(By.text("Dismiss")), FIND_TIMEOUT)
// Pressing back key to dismiss the dialog
if (dismissButton != null) {
dismissButton.click()
- wmHelper.StateSyncBuilder()
- .withAppTransitionIdle()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt
index 3b8d3c3440a8..1502ad5cde58 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ImeStateInitializeHelper.kt
@@ -23,7 +23,9 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class ImeStateInitializeHelper @JvmOverloads constructor(
+class ImeStateInitializeHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.Ime.StateInitializeActivity.LABEL,
component: ComponentNameMatcher =
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt
index cb54b5732c8d..ba8dabd4dfec 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/LaunchBubbleHelper.kt
@@ -20,8 +20,9 @@ import android.app.Instrumentation
import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.parser.toFlickerComponent
-class LaunchBubbleHelper(instrumentation: Instrumentation) : StandardAppHelper(
- instrumentation,
- ActivityOptions.Bubbles.LaunchBubble.LABEL,
- ActivityOptions.Bubbles.LaunchBubble.COMPONENT.toFlickerComponent()
-)
+class LaunchBubbleHelper(instrumentation: Instrumentation) :
+ StandardAppHelper(
+ instrumentation,
+ ActivityOptions.Bubbles.LaunchBubble.LABEL,
+ ActivityOptions.Bubbles.LaunchBubble.COMPONENT.toFlickerComponent()
+ )
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt
index dde0b3e6873d..f00904bd7570 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MailAppHelper.kt
@@ -27,19 +27,19 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class MailAppHelper @JvmOverloads constructor(
+class MailAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.Mail.LABEL,
- component: ComponentNameMatcher =
- ActivityOptions.Mail.COMPONENT.toFlickerComponent(),
- launcherStrategy: ILauncherStrategy = LauncherStrategyFactory
- .getInstance(instr)
- .launcherStrategy
+ component: ComponentNameMatcher = ActivityOptions.Mail.COMPONENT.toFlickerComponent(),
+ launcherStrategy: ILauncherStrategy =
+ LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy) {
fun openMail(rowIdx: Int) {
- val rowSel = By.res(getPackage(), "mail_row_item_text")
- .textEndsWith(String.format("%04d", rowIdx))
+ val rowSel =
+ By.res(getPackage(), "mail_row_item_text").textEndsWith(String.format("%04d", rowIdx))
var row: UiObject2? = null
for (i in 1..1000) {
row = uiDevice.wait(Until.findObject(rowSel), SHORT_WAIT_TIME_MS)
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt
index 9bdfadb35ff3..e0f6fb0a5bbc 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/MultiWindowUtils.kt
@@ -40,23 +40,29 @@ class MultiWindowUtils(
}
fun getDevEnableNonResizableMultiWindow(context: Context): Int =
- Settings.Global.getInt(context.contentResolver,
- Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW)
+ Settings.Global.getInt(
+ context.contentResolver,
+ Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW
+ )
fun setDevEnableNonResizableMultiWindow(context: Context, configValue: Int) =
- Settings.Global.putInt(context.contentResolver,
- Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, configValue)
+ Settings.Global.putInt(
+ context.contentResolver,
+ Settings.Global.DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW,
+ configValue
+ )
fun setSupportsNonResizableMultiWindow(instrumentation: Instrumentation, configValue: Int) =
executeShellCommand(
- instrumentation,
- createConfigSupportsNonResizableMultiWindowCommand(configValue))
+ instrumentation,
+ createConfigSupportsNonResizableMultiWindowCommand(configValue)
+ )
fun resetMultiWindowConfig(instrumentation: Instrumentation) =
executeShellCommand(instrumentation, resetMultiWindowConfigCommand)
private fun createConfigSupportsNonResizableMultiWindowCommand(configValue: Int): String =
- "wm set-multi-window-config --supportsNonResizable $configValue"
+ "wm set-multi-window-config --supportsNonResizable $configValue"
private const val resetMultiWindowConfigCommand: String = "wm reset-multi-window-config"
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt
index f3386afa610c..34294a6b7304 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NewTasksAppHelper.kt
@@ -27,27 +27,24 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-class NewTasksAppHelper @JvmOverloads constructor(
+class NewTasksAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.LaunchNewTask.LABEL,
- component: ComponentNameMatcher =
- ActivityOptions.LaunchNewTask.COMPONENT.toFlickerComponent(),
- launcherStrategy: ILauncherStrategy = LauncherStrategyFactory
- .getInstance(instr)
- .launcherStrategy
+ component: ComponentNameMatcher = ActivityOptions.LaunchNewTask.COMPONENT.toFlickerComponent(),
+ launcherStrategy: ILauncherStrategy =
+ LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy) {
fun openNewTask(device: UiDevice, wmHelper: WindowManagerStateHelper) {
- val button = device.wait(
- Until.findObject(By.res(getPackage(), "launch_new_task")),
- FIND_TIMEOUT)
+ val button =
+ device.wait(Until.findObject(By.res(getPackage(), "launch_new_task")), FIND_TIMEOUT)
requireNotNull(button) {
"Button not found, this usually happens when the device " +
"was left in an unknown state (e.g. in split screen)"
}
button.click()
- wmHelper.StateSyncBuilder()
- .withAppTransitionIdle()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt
index 19ce3ba21812..bbb782d7ae50 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NonResizeableAppHelper.kt
@@ -23,7 +23,9 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class NonResizeableAppHelper @JvmOverloads constructor(
+class NonResizeableAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.NonResizeableActivity.LABEL,
component: ComponentNameMatcher =
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt
index 97642f1617af..a3e32e501ce2 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/NotificationAppHelper.kt
@@ -26,19 +26,18 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-class NotificationAppHelper @JvmOverloads constructor(
+class NotificationAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.Notification.LABEL,
- component: ComponentNameMatcher =
- ActivityOptions.Notification.COMPONENT.toFlickerComponent(),
- launcherStrategy: ILauncherStrategy = LauncherStrategyFactory
- .getInstance(instr)
- .launcherStrategy
+ component: ComponentNameMatcher = ActivityOptions.Notification.COMPONENT.toFlickerComponent(),
+ launcherStrategy: ILauncherStrategy =
+ LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy) {
fun postNotification(wmHelper: WindowManagerStateHelper) {
- val button = uiDevice.wait(
- Until.findObject(By.res(getPackage(), "post_notification")),
- FIND_TIMEOUT)
+ val button =
+ uiDevice.wait(Until.findObject(By.res(getPackage(), "post_notification")), FIND_TIMEOUT)
requireNotNull(button) {
"Post notification button not found, this usually happens when the device " +
@@ -48,8 +47,6 @@ class NotificationAppHelper @JvmOverloads constructor(
uiDevice.wait(Until.findObject(By.text("Flicker Test Notification")), FIND_TIMEOUT)
?: error("Flicker Notification not found")
- wmHelper.StateSyncBuilder()
- .withAppTransitionIdle()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt
index dc49fc8021d9..e730f315392b 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/PipAppHelper.kt
@@ -29,19 +29,20 @@ import com.android.server.wm.traces.common.region.Region
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
- instrumentation,
- ActivityOptions.Pip.LABEL,
- ActivityOptions.Pip.COMPONENT.toFlickerComponent()
-) {
+open class PipAppHelper(instrumentation: Instrumentation) :
+ StandardAppHelper(
+ instrumentation,
+ ActivityOptions.Pip.LABEL,
+ ActivityOptions.Pip.COMPONENT.toFlickerComponent()
+ ) {
private val mediaSessionManager: MediaSessionManager
- get() = context.getSystemService(MediaSessionManager::class.java)
- ?: error("Could not get MediaSessionManager")
+ get() =
+ context.getSystemService(MediaSessionManager::class.java)
+ ?: error("Could not get MediaSessionManager")
private val mediaController: MediaController?
- get() = mediaSessionManager.getActiveSessions(null).firstOrNull {
- it.packageName == `package`
- }
+ get() =
+ mediaSessionManager.getActiveSessions(null).firstOrNull { it.packageName == `package` }
open fun clickObject(resId: String) {
val selector = By.res(`package`, resId)
@@ -51,8 +52,8 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
}
/**
- * Launches the app through an intent instead of interacting with the launcher and waits
- * until the app window is in PIP mode
+ * Launches the app through an intent instead of interacting with the launcher and waits until
+ * the app window is in PIP mode
*/
@JvmOverloads
fun launchViaIntentAndWaitForPip(
@@ -62,18 +63,17 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
stringExtras: Map<String, String>
) {
launchViaIntentAndWaitShown(
- wmHelper, expectedWindowName, action, stringExtras,
+ wmHelper,
+ expectedWindowName,
+ action,
+ stringExtras,
waitConditions = arrayOf(WindowManagerConditionsFactory.hasPipWindow())
)
- wmHelper.StateSyncBuilder()
- .withPipShown()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withPipShown().waitForAndVerify()
}
- /**
- * Expand the PIP window back to full screen via intent and wait until the app is visible
- */
+ /** Expand the PIP window back to full screen via intent and wait until the app is visible */
fun exitPipToFullScreenViaIntent(wmHelper: WindowManagerStateHelper) =
launchViaIntentAndWaitShown(wmHelper)
@@ -81,9 +81,7 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
clickObject(ENTER_PIP_BUTTON_ID)
// Wait on WMHelper or simply wait for 3 seconds
- wmHelper.StateSyncBuilder()
- .withPipShown()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withPipShown().waitForAndVerify()
// when entering pip, the dismiss button is visible at the start. to ensure the pip
// animation is complete, wait until the pip dismiss button is no longer visible.
// b/176822698: dismiss-only state will be removed in the future
@@ -102,17 +100,18 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
clickObject(MEDIA_SESSION_START_RADIO_BUTTON_ID)
}
- fun checkWithCustomActionsCheckbox() = uiDevice
- .findObject(By.res(`package`, WITH_CUSTOM_ACTIONS_BUTTON_ID))
- ?.takeIf { it.isCheckable }
- ?.apply { if (!isChecked) clickObject(WITH_CUSTOM_ACTIONS_BUTTON_ID) }
- ?: error("'With custom actions' checkbox not found")
+ fun checkWithCustomActionsCheckbox() =
+ uiDevice
+ .findObject(By.res(`package`, WITH_CUSTOM_ACTIONS_BUTTON_ID))
+ ?.takeIf { it.isCheckable }
+ ?.apply { if (!isChecked) clickObject(WITH_CUSTOM_ACTIONS_BUTTON_ID) }
+ ?: error("'With custom actions' checkbox not found")
- fun pauseMedia() = mediaController?.transportControls?.pause()
- ?: error("No active media session found")
+ fun pauseMedia() =
+ mediaController?.transportControls?.pause() ?: error("No active media session found")
- fun stopMedia() = mediaController?.transportControls?.stop()
- ?: error("No active media session found")
+ fun stopMedia() =
+ mediaController?.transportControls?.stop() ?: error("No active media session found")
@Deprecated(
"Use PipAppHelper.closePipWindow(wmHelper) instead",
@@ -124,55 +123,41 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
private fun getWindowRect(wmHelper: WindowManagerStateHelper): Rect {
val windowRegion = wmHelper.getWindowRegion(this)
- require(!windowRegion.isEmpty) {
- "Unable to find a PIP window in the current state"
- }
+ require(!windowRegion.isEmpty) { "Unable to find a PIP window in the current state" }
return windowRegion.bounds
}
- /**
- * Taps the pip window and dismisses it by clicking on the X button.
- */
+ /** Taps the pip window and dismisses it by clicking on the X button. */
open fun closePipWindow(wmHelper: WindowManagerStateHelper) {
val windowRect = getWindowRect(wmHelper)
uiDevice.click(windowRect.centerX(), windowRect.centerY())
// search and interact with the dismiss button
val dismissSelector = By.res(SYSTEMUI_PACKAGE, "dismiss")
uiDevice.wait(Until.hasObject(dismissSelector), FIND_TIMEOUT)
- val dismissPipObject = uiDevice.findObject(dismissSelector)
- ?: error("PIP window dismiss button not found")
+ val dismissPipObject =
+ uiDevice.findObject(dismissSelector) ?: error("PIP window dismiss button not found")
val dismissButtonBounds = dismissPipObject.visibleBounds
uiDevice.click(dismissButtonBounds.centerX(), dismissButtonBounds.centerY())
// Wait for animation to complete.
- wmHelper.StateSyncBuilder()
- .withPipGone()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withPipGone().withHomeActivityVisible().waitForAndVerify()
}
- /**
- * Close the pip window by pressing the expand button
- */
+ /** Close the pip window by pressing the expand button */
fun expandPipWindowToApp(wmHelper: WindowManagerStateHelper) {
val windowRect = getWindowRect(wmHelper)
uiDevice.click(windowRect.centerX(), windowRect.centerY())
// search and interact with the expand button
val expandSelector = By.res(SYSTEMUI_PACKAGE, "expand_button")
uiDevice.wait(Until.hasObject(expandSelector), FIND_TIMEOUT)
- val expandPipObject = uiDevice.findObject(expandSelector)
- ?: error("PIP window expand button not found")
+ val expandPipObject =
+ uiDevice.findObject(expandSelector) ?: error("PIP window expand button not found")
val expandButtonBounds = expandPipObject.visibleBounds
uiDevice.click(expandButtonBounds.centerX(), expandButtonBounds.centerY())
- wmHelper.StateSyncBuilder()
- .withPipGone()
- .withFullScreenApp(this)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withPipGone().withFullScreenApp(this).waitForAndVerify()
}
- /**
- * Double click on the PIP window to expand it
- */
+ /** Double click on the PIP window to expand it */
fun doubleClickPipWindow(wmHelper: WindowManagerStateHelper) {
val windowRect = getWindowRect(wmHelper)
Log.d(TAG, "First click")
@@ -180,9 +165,7 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
Log.d(TAG, "Second click")
uiDevice.click(windowRect.centerX(), windowRect.centerY())
Log.d(TAG, "Wait for app transition to end")
- wmHelper.StateSyncBuilder()
- .withAppTransitionIdle()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
waitForPipWindowToExpandFrom(wmHelper, Region.from(windowRect))
}
@@ -190,13 +173,18 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
wmHelper: WindowManagerStateHelper,
windowRect: Region
) {
- wmHelper.StateSyncBuilder().add("pipWindowExpanded") {
- val pipAppWindow = it.wmState.visibleWindows.firstOrNull { window ->
- this.windowMatchesAnyOf(window)
- } ?: return@add false
- val pipRegion = pipAppWindow.frameRegion
- return@add pipRegion.coversMoreThan(windowRect)
- }.waitForAndVerify()
+ wmHelper
+ .StateSyncBuilder()
+ .add("pipWindowExpanded") {
+ val pipAppWindow =
+ it.wmState.visibleWindows.firstOrNull { window ->
+ this.windowMatchesAnyOf(window)
+ }
+ ?: return@add false
+ val pipRegion = pipAppWindow.frameRegion
+ return@add pipRegion.coversMoreThan(windowRect)
+ }
+ .waitForAndVerify()
}
companion object {
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt
index fc1ff7c84675..c90435223469 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SeamlessRotationAppHelper.kt
@@ -23,7 +23,9 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class SeamlessRotationAppHelper @JvmOverloads constructor(
+class SeamlessRotationAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.SeamlessRotation.LABEL,
component: ComponentNameMatcher =
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt
index 0e1df411d394..de152cb5bbc9 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/ShowWhenLockedAppHelper.kt
@@ -23,7 +23,9 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class ShowWhenLockedAppHelper @JvmOverloads constructor(
+class ShowWhenLockedAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.ShowWhenLockedActivity.LABEL,
component: ComponentNameMatcher =
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt
index e3461a74b4ce..e41599002a01 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/SimpleAppHelper.kt
@@ -23,11 +23,12 @@ import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
-class SimpleAppHelper @JvmOverloads constructor(
+class SimpleAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.SimpleActivity.LABEL,
- component: ComponentNameMatcher =
- ActivityOptions.SimpleActivity.COMPONENT.toFlickerComponent(),
+ component: ComponentNameMatcher = ActivityOptions.SimpleActivity.COMPONENT.toFlickerComponent(),
launcherStrategy: ILauncherStrategy =
LauncherStrategyFactory.getInstance(instr).launcherStrategy
) : StandardAppHelper(instr, launcherName, component, launcherStrategy)
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt
index f4ea37f2127a..13301906187d 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/helpers/TwoActivitiesAppHelper.kt
@@ -27,7 +27,9 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
-class TwoActivitiesAppHelper @JvmOverloads constructor(
+class TwoActivitiesAppHelper
+@JvmOverloads
+constructor(
instr: Instrumentation,
launcherName: String = ActivityOptions.LaunchNewActivity.LABEL,
component: ComponentNameMatcher =
@@ -50,9 +52,7 @@ class TwoActivitiesAppHelper @JvmOverloads constructor(
button.click()
device.wait(Until.gone(launchActivityButton), FIND_TIMEOUT)
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(secondActivityComponent)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(secondActivityComponent).waitForAndVerify()
}
companion object {
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt
index 9b8d791e0892..1a495957bb7f 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToAppTest.kt
@@ -37,10 +37,10 @@ import org.junit.runners.Parameterized
* Test IME window closing back to app window transitions.
*
* This test doesn't work on 90 degrees. According to the InputMethodService documentation:
- *
+ * ```
* Don't show if this is not explicitly requested by the user and the input method
* is fullscreen. That would be too disruptive.
- *
+ * ```
* More details on b/190352379
*
* To run this test: `atest FlickerTests:CloseImeAutoOpenWindowToAppTest`
@@ -54,51 +54,35 @@ class CloseImeAutoOpenWindowToAppTest(testSpec: FlickerTestParameter) : BaseTest
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
- setup {
- testApp.launchViaIntent(wmHelper)
- }
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.closeIME(wmHelper)
- }
+ setup { testApp.launchViaIntent(wmHelper) }
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.closeIME(wmHelper) }
}
@Presubmit
@Test
fun imeAppWindowIsAlwaysVisible() {
- testSpec.assertWm {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWm { this.isAppWindowOnTop(testApp) }
}
@Presubmit
@Test
fun imeLayerVisibleStart() {
- testSpec.assertLayersStart {
- this.isVisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersStart { this.isVisible(ComponentNameMatcher.IME) }
}
@Presubmit
@Test
fun imeLayerInvisibleEnd() {
- testSpec.assertLayersEnd {
- this.isInvisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersEnd { this.isInvisible(ComponentNameMatcher.IME) }
}
- @Presubmit
- @Test
- fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
+ @Presubmit @Test fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
@Presubmit
@Test
fun imeAppLayerIsAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
companion object {
@@ -107,12 +91,13 @@ class CloseImeAutoOpenWindowToAppTest(testSpec: FlickerTestParameter) : BaseTest
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- // b/190352379 (IME doesn't show on app launch in 90 degrees)
+ // b/190352379 (IME doesn't show on app launch in 90 degrees)
supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt
index e2d3eb8860fc..463efe89b5e9 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeAutoOpenWindowToHomeTest.kt
@@ -37,10 +37,10 @@ import org.junit.runners.Parameterized
* Test IME window closing back to app window transitions.
*
* This test doesn't work on 90 degrees. According to the InputMethodService documentation:
- *
+ * ```
* Don't show if this is not explicitly requested by the user and the input method
* is fullscreen. That would be too disruptive.
- *
+ * ```
* More details on b/190352379
*
* To run this test: `atest FlickerTests:CloseImeAutoOpenWindowToHomeTest`
@@ -58,56 +58,37 @@ class CloseImeAutoOpenWindowToHomeTest(testSpec: FlickerTestParameter) : BaseTes
tapl.setExpectedRotationCheckEnabled(false)
testApp.launchViaIntent(wmHelper)
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
transitions {
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .withImeGone()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().withImeGone().waitForAndVerify()
}
}
@Presubmit
@Test
fun imeAppWindowBecomesInvisible() {
- testSpec.assertWm {
- this.isAppWindowOnTop(testApp)
- .then()
- .isAppWindowNotOnTop(testApp)
- }
+ testSpec.assertWm { this.isAppWindowOnTop(testApp).then().isAppWindowNotOnTop(testApp) }
}
@Presubmit
@Test
fun imeLayerVisibleStart() {
- testSpec.assertLayersStart {
- this.isVisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersStart { this.isVisible(ComponentNameMatcher.IME) }
}
@Presubmit
@Test
fun imeLayerInvisibleEnd() {
- testSpec.assertLayersEnd {
- this.isInvisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersEnd { this.isInvisible(ComponentNameMatcher.IME) }
}
- @Presubmit
- @Test
- fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
+ @Presubmit @Test fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
@Presubmit
@Test
fun imeAppLayerBecomesInvisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- .then()
- .isInvisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp).then().isInvisible(testApp) }
}
companion object {
@@ -118,9 +99,11 @@ class CloseImeAutoOpenWindowToHomeTest(testSpec: FlickerTestParameter) : BaseTes
.getConfigNonRotationTests(
// b/190352379 (IME doesn't show on app launch in 90 degrees)
supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt
index 923ed5e1bc34..df1c43e56a58 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt
@@ -50,15 +50,11 @@ class CloseImeEditorPopupDialogTest(testSpec: FlickerTestParameter) : BaseTest(t
}
transitions {
imeTestApp.dismissDialog(wmHelper)
- wmHelper.StateSyncBuilder()
- .withImeGone()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withImeGone().waitForAndVerify()
}
teardown {
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
imeTestApp.exit(wmHelper)
}
}
@@ -71,8 +67,7 @@ class CloseImeEditorPopupDialogTest(testSpec: FlickerTestParameter) : BaseTest(t
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -86,9 +81,7 @@ class CloseImeEditorPopupDialogTest(testSpec: FlickerTestParameter) : BaseTest(t
override fun visibleWindowsShownMoreThanOneConsecutiveEntry() =
super.visibleWindowsShownMoreThanOneConsecutiveEntry()
- @Postsubmit
- @Test
- fun imeWindowBecameInvisible() = testSpec.imeWindowBecomesInvisible()
+ @Postsubmit @Test fun imeWindowBecameInvisible() = testSpec.imeWindowBecomesInvisible()
@Postsubmit
@Test
@@ -108,15 +101,18 @@ class CloseImeEditorPopupDialogTest(testSpec: FlickerTestParameter) : BaseTest(t
fun imeSnapshotAssociatedOnAppVisibleRegion() {
testSpec.assertLayers {
this.invoke("imeSnapshotAssociatedOnAppVisibleRegion") {
- val imeSnapshotLayers = it.subjects.filter { subject ->
- subject.name.contains(
- ComponentNameMatcher.IME_SNAPSHOT.toLayerName()
- ) && subject.isVisible
- }
+ val imeSnapshotLayers =
+ it.subjects.filter { subject ->
+ subject.name.contains(ComponentNameMatcher.IME_SNAPSHOT.toLayerName()) &&
+ subject.isVisible
+ }
if (imeSnapshotLayers.isNotEmpty()) {
- val visibleAreas = imeSnapshotLayers.mapNotNull { imeSnapshotLayer ->
- imeSnapshotLayer.layer?.visibleRegion
- }.toTypedArray()
+ val visibleAreas =
+ imeSnapshotLayers
+ .mapNotNull { imeSnapshotLayer ->
+ imeSnapshotLayer.layer?.visibleRegion
+ }
+ .toTypedArray()
val imeVisibleRegion = RegionSubject.assertThat(visibleAreas, this, timestamp)
val appVisibleRegion = it.visibleRegion(imeTestApp)
if (imeVisibleRegion.region.isNotEmpty) {
@@ -133,10 +129,11 @@ class CloseImeEditorPopupDialogTest(testSpec: FlickerTestParameter) : BaseTest(t
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- ),
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ ),
supportedRotations = listOf(Surface.ROTATION_0)
)
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt
index 32efbb0ea1cb..b9c875ab5938 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToAppTest.kt
@@ -35,8 +35,8 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test IME window closing back to app window transitions.
- * To run this test: `atest FlickerTests:CloseImeWindowToAppTest`
+ * Test IME window closing back to app window transitions. To run this test: `atest
+ * FlickerTests:CloseImeWindowToAppTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -51,12 +51,8 @@ class CloseImeWindowToAppTest(testSpec: FlickerTestParameter) : BaseTest(testSpe
testApp.launchViaIntent(wmHelper)
testApp.openIME(wmHelper)
}
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.closeIME(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.closeIME(wmHelper) }
}
/** {@inheritDoc} */
@@ -64,10 +60,13 @@ class CloseImeWindowToAppTest(testSpec: FlickerTestParameter) : BaseTest(testSpe
@Test
override fun visibleWindowsShownMoreThanOneConsecutiveEntry() {
testSpec.assertWm {
- this.visibleWindowsShownMoreThanOneConsecutiveEntry(listOf(
- ComponentNameMatcher.IME,
- ComponentNameMatcher.SPLASH_SCREEN,
- ComponentNameMatcher.SNAPSHOT))
+ this.visibleWindowsShownMoreThanOneConsecutiveEntry(
+ listOf(
+ ComponentNameMatcher.IME,
+ ComponentNameMatcher.SPLASH_SCREEN,
+ ComponentNameMatcher.SNAPSHOT
+ )
+ )
}
}
@@ -88,32 +87,25 @@ class CloseImeWindowToAppTest(testSpec: FlickerTestParameter) : BaseTest(testSpe
testSpec.navBarLayerPositionAtStartAndEnd()
}
- @Presubmit
- @Test
- fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
+ @Presubmit @Test fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
@Presubmit
@Test
fun imeAppLayerIsAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
@Presubmit
@Test
fun imeAppWindowIsAlwaysVisible() {
- testSpec.assertWm {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWm { this.isAppWindowOnTop(testApp) }
}
companion object {
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt
index 177e76104b3d..1dc3ca55caba 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeWindowToHomeTest.kt
@@ -34,8 +34,8 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test IME window closing to home transitions.
- * To run this test: `atest FlickerTests:CloseImeWindowToHomeTest`
+ * Test IME window closing to home transitions. To run this test: `atest
+ * FlickerTests:CloseImeWindowToHomeTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -53,14 +53,9 @@ class CloseImeWindowToHomeTest(testSpec: FlickerTestParameter) : BaseTest(testSp
}
transitions {
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .withImeGone()
- .waitForAndVerify()
- }
- teardown {
- testApp.exit(wmHelper)
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().withImeGone().waitForAndVerify()
}
+ teardown { testApp.exit(wmHelper) }
}
/** {@inheritDoc} */
@@ -84,40 +79,25 @@ class CloseImeWindowToHomeTest(testSpec: FlickerTestParameter) : BaseTest(testSp
override fun visibleLayersShownMoreThanOneConsecutiveEntry() {
testSpec.assertLayers {
this.visibleLayersShownMoreThanOneConsecutiveEntry(
- listOf(
- ComponentNameMatcher.IME,
- ComponentNameMatcher.SPLASH_SCREEN
- )
+ listOf(ComponentNameMatcher.IME, ComponentNameMatcher.SPLASH_SCREEN)
)
}
}
- @Presubmit
- @Test
- fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
+ @Presubmit @Test fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
- @Presubmit
- @Test
- fun imeWindowBecomesInvisible() = testSpec.imeWindowBecomesInvisible()
+ @Presubmit @Test fun imeWindowBecomesInvisible() = testSpec.imeWindowBecomesInvisible()
@Presubmit
@Test
fun imeAppWindowBecomesInvisible() {
- testSpec.assertWm {
- this.isAppWindowVisible(testApp)
- .then()
- .isAppWindowInvisible(testApp)
- }
+ testSpec.assertWm { this.isAppWindowVisible(testApp).then().isAppWindowInvisible(testApp) }
}
@Presubmit
@Test
fun imeAppLayerBecomesInvisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- .then()
- .isInvisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp).then().isInvisible(testApp) }
}
companion object {
@@ -126,11 +106,12 @@ class CloseImeWindowToHomeTest(testSpec: FlickerTestParameter) : BaseTest(testSp
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedRotations = listOf(Surface.ROTATION_0),
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt
index 9c99d966e345..e0c5edcec762 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/CommonAssertions.kt
@@ -15,6 +15,7 @@
*/
@file:JvmName("CommonAssertions")
+
package com.android.server.wm.flicker.ime
import com.android.server.wm.flicker.FlickerTestParameter
@@ -22,17 +23,13 @@ import com.android.server.wm.traces.common.ComponentNameMatcher
fun FlickerTestParameter.imeLayerBecomesVisible() {
assertLayers {
- this.isInvisible(ComponentNameMatcher.IME)
- .then()
- .isVisible(ComponentNameMatcher.IME)
+ this.isInvisible(ComponentNameMatcher.IME).then().isVisible(ComponentNameMatcher.IME)
}
}
fun FlickerTestParameter.imeLayerBecomesInvisible() {
assertLayers {
- this.isVisible(ComponentNameMatcher.IME)
- .then()
- .isInvisible(ComponentNameMatcher.IME)
+ this.isVisible(ComponentNameMatcher.IME).then().isInvisible(ComponentNameMatcher.IME)
}
}
@@ -46,9 +43,7 @@ fun FlickerTestParameter.imeWindowIsAlwaysVisible(rotatesScreen: Boolean = false
.isNonAppWindowVisible(ComponentNameMatcher.IME)
}
} else {
- assertWm {
- this.isNonAppWindowVisible(ComponentNameMatcher.IME)
- }
+ assertWm { this.isNonAppWindowVisible(ComponentNameMatcher.IME) }
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeAndDialogThemeAppTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeAndDialogThemeAppTest.kt
index f0776c10bd69..073da4f092dc 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeAndDialogThemeAppTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeAndDialogThemeAppTest.kt
@@ -47,30 +47,22 @@ import org.junit.runners.Parameterized
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class LaunchAppShowImeAndDialogThemeAppTest(
- testSpec: FlickerTestParameter
-) : BaseTest(testSpec) {
+class LaunchAppShowImeAndDialogThemeAppTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
private val testApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
setup {
testApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withImeShown()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withImeShown().waitForAndVerify()
testApp.startDialogThemedActivity(wmHelper)
// Verify IME insets isn't visible on dialog since it's non-IME focusable window
assertFalse(testApp.getInsetsVisibleFromDialog(ime()))
assertTrue(testApp.getInsetsVisibleFromDialog(statusBars()))
assertTrue(testApp.getInsetsVisibleFromDialog(navigationBars()))
}
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.dismissDialog(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.dismissDialog(wmHelper) }
}
/** {@inheritDoc} */
@@ -83,41 +75,29 @@ class LaunchAppShowImeAndDialogThemeAppTest(
@Test
override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
- /**
- * Checks that [ComponentMatcher.IME] layer becomes visible during the transition
- */
- @Presubmit
- @Test
- fun imeWindowIsAlwaysVisible() = testSpec.imeWindowIsAlwaysVisible()
+ /** Checks that [ComponentMatcher.IME] layer becomes visible during the transition */
+ @Presubmit @Test fun imeWindowIsAlwaysVisible() = testSpec.imeWindowIsAlwaysVisible()
- /**
- * Checks that [ComponentMatcher.IME] layer is visible at the end of the transition
- */
+ /** Checks that [ComponentMatcher.IME] layer is visible at the end of the transition */
@Presubmit
@Test
fun imeLayerExistsEnd() {
- testSpec.assertLayersEnd {
- this.isVisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersEnd { this.isVisible(ComponentNameMatcher.IME) }
}
- /**
- * Checks that [ComponentMatcher.IME_SNAPSHOT] layer is invisible always.
- */
+ /** Checks that [ComponentMatcher.IME_SNAPSHOT] layer is invisible always. */
@Presubmit
@Test
fun imeSnapshotNotVisible() {
- testSpec.assertLayers {
- this.isInvisible(ComponentNameMatcher.IME_SNAPSHOT)
- }
+ testSpec.assertLayers { this.isInvisible(ComponentNameMatcher.IME_SNAPSHOT) }
}
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
@@ -125,10 +105,11 @@ class LaunchAppShowImeAndDialogThemeAppTest(
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeOnStartTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeOnStartTest.kt
index 85e9e75776fb..a93f1766b05f 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeOnStartTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/LaunchAppShowImeOnStartTest.kt
@@ -41,27 +41,33 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:LaunchAppShowImeOnStartTest`
*
* Actions:
+ * ```
* Make sure no apps are running on the device
* Launch an app [testApp] that automatically displays IME and wait animation to complete
- *
+ * ```
* To run only the presubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit`
- *
+ * ```
* To run only the postsubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit`
- *
+ * ```
* To run only the flaky assertions add: `--
+ * ```
* --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest`
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [CloseAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -83,65 +89,48 @@ class LaunchAppShowImeOnStartTest(testSpec: FlickerTestParameter) : BaseTest(tes
}
transitions {
testApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withImeShown()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withImeShown().waitForAndVerify()
}
}
- /**
- * Checks that [ComponentMatcher.IME] window becomes visible during the transition
- */
- @Presubmit
- @Test
- fun imeWindowBecomesVisible() = testSpec.imeWindowBecomesVisible()
+ /** Checks that [ComponentMatcher.IME] window becomes visible during the transition */
+ @Presubmit @Test fun imeWindowBecomesVisible() = testSpec.imeWindowBecomesVisible()
- /**
- * Checks that [ComponentMatcher.IME] layer becomes visible during the transition
- */
- @Presubmit
- @Test
- fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()
+ /** Checks that [ComponentMatcher.IME] layer becomes visible during the transition */
+ @Presubmit @Test fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()
- /**
- * Checks that [ComponentMatcher.IME] layer is invisible at the start of the transition
- */
+ /** Checks that [ComponentMatcher.IME] layer is invisible at the start of the transition */
@Presubmit
@Test
fun imeLayerNotExistsStart() {
- testSpec.assertLayersStart {
- this.isInvisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersStart { this.isInvisible(ComponentNameMatcher.IME) }
}
- /**
- * Checks that [ComponentMatcher.IME] layer is visible at the end of the transition
- */
+ /** Checks that [ComponentMatcher.IME] layer is visible at the end of the transition */
@Presubmit
@Test
fun imeLayerExistsEnd() {
- testSpec.assertLayersEnd {
- this.isVisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersEnd { this.isVisible(ComponentNameMatcher.IME) }
}
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedRotations = listOf(Surface.ROTATION_0),
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowAndCloseTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowAndCloseTest.kt
index 36bc6a3e8ed2..a6bd791282b8 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowAndCloseTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowAndCloseTest.kt
@@ -57,21 +57,13 @@ class OpenImeWindowAndCloseTest(testSpec: FlickerTestParameter) : BaseTest(testS
testApp.launchViaIntent(wmHelper)
testApp.openIME(wmHelper)
}
- transitions {
- testApp.finishActivity(wmHelper)
- }
- teardown {
- simpleApp.exit(wmHelper)
- }
+ transitions { testApp.finishActivity(wmHelper) }
+ teardown { simpleApp.exit(wmHelper) }
}
- @Presubmit
- @Test
- fun imeWindowBecomesInvisible() = testSpec.imeWindowBecomesInvisible()
+ @Presubmit @Test fun imeWindowBecomesInvisible() = testSpec.imeWindowBecomesInvisible()
- @Presubmit
- @Test
- fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
+ @Presubmit @Test fun imeLayerBecomesInvisible() = testSpec.imeLayerBecomesInvisible()
@Presubmit
@Test
@@ -93,11 +85,12 @@ class OpenImeWindowAndCloseTest(testSpec: FlickerTestParameter) : BaseTest(testS
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedRotations = listOf(Surface.ROTATION_0),
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowFromFixedOrientationAppTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowFromFixedOrientationAppTest.kt
index 7d98d06fcbd4..ce63d8a96ffe 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowFromFixedOrientationAppTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowFromFixedOrientationAppTest.kt
@@ -37,16 +37,15 @@ import org.junit.runners.Parameterized
/**
* Test IME window layer will become visible when switching from the fixed orientation activity
- * (e.g. Launcher activity).
- * To run this test: `atest FlickerTests:OpenImeWindowFromFixedOrientationAppTest`
+ * (e.g. Launcher activity). To run this test: `atest
+ * FlickerTests:OpenImeWindowFromFixedOrientationAppTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class OpenImeWindowFromFixedOrientationAppTest(
- testSpec: FlickerTestParameter
-) : BaseTest(testSpec) {
+class OpenImeWindowFromFixedOrientationAppTest(testSpec: FlickerTestParameter) :
+ BaseTest(testSpec) {
private val imeTestApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
/** {@inheritDoc} */
@@ -59,18 +58,14 @@ class OpenImeWindowFromFixedOrientationAppTest(
// Swiping out the IME activity to home.
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
}
transitions {
// Bring the exist IME activity to the front in landscape mode device rotation.
setRotation(Surface.ROTATION_90)
imeTestApp.launchViaIntent(wmHelper)
}
- teardown {
- imeTestApp.exit(wmHelper)
- }
+ teardown { imeTestApp.exit(wmHelper) }
}
/** {@inheritDoc} */
@@ -83,13 +78,9 @@ class OpenImeWindowFromFixedOrientationAppTest(
@Test
override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
- @Presubmit
- @Test
- fun imeWindowBecomesVisible() = testSpec.imeWindowBecomesVisible()
+ @Presubmit @Test fun imeWindowBecomesVisible() = testSpec.imeWindowBecomesVisible()
- @Presubmit
- @Test
- fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()
+ @Presubmit @Test fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()
@Postsubmit
@Test
@@ -101,18 +92,17 @@ class OpenImeWindowFromFixedOrientationAppTest(
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_90),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedRotations = listOf(Surface.ROTATION_90),
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY)
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowTest.kt
index f84bb4faef97..b43efea4c647 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowTest.kt
@@ -32,10 +32,7 @@ import org.junit.runner.RunWith
import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
-/**
- * Test IME window opening transitions.
- * To run this test: `atest FlickerTests:OpenImeWindowTest`
- */
+/** Test IME window opening transitions. To run this test: `atest FlickerTests:OpenImeWindowTest` */
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@@ -45,40 +42,28 @@ class OpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
- setup {
- testApp.launchViaIntent(wmHelper)
- }
- transitions {
- testApp.openIME(wmHelper)
- }
+ setup { testApp.launchViaIntent(wmHelper) }
+ transitions { testApp.openIME(wmHelper) }
teardown {
testApp.closeIME(wmHelper)
testApp.exit(wmHelper)
}
}
- @Presubmit
- @Test
- fun imeWindowBecomesVisible() = testSpec.imeWindowBecomesVisible()
+ @Presubmit @Test fun imeWindowBecomesVisible() = testSpec.imeWindowBecomesVisible()
@Presubmit
@Test
fun appWindowAlwaysVisibleOnTop() {
- testSpec.assertWm {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWm { this.isAppWindowOnTop(testApp) }
}
- @Presubmit
- @Test
- fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()
+ @Presubmit @Test fun imeLayerBecomesVisible() = testSpec.imeLayerBecomesVisible()
@Presubmit
@Test
fun layerAlwaysVisible() {
- testSpec.assertLayers {
- this.isVisible(testApp)
- }
+ testSpec.assertLayers { this.isVisible(testApp) }
}
companion object {
@@ -87,11 +72,12 @@ class OpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedRotations = listOf(Surface.ROTATION_0),
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToOverViewTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToOverViewTest.kt
index 184a92a32036..6c6f59ec382f 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToOverViewTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/OpenImeWindowToOverViewTest.kt
@@ -42,8 +42,8 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test IME window layer will be associated with the app task when going to the overview screen.
- * To run this test: `atest FlickerTests:OpenImeWindowToOverViewTest`
+ * Test IME window layer will be associated with the app task when going to the overview screen. To
+ * run this test: `atest FlickerTests:OpenImeWindowToOverViewTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -54,21 +54,16 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
- setup {
- imeTestApp.launchViaIntent(wmHelper)
- }
+ setup { imeTestApp.launchViaIntent(wmHelper) }
transitions {
device.pressRecentApps()
- val builder = wmHelper.StateSyncBuilder()
- .withRecentsActivityVisible()
+ val builder = wmHelper.StateSyncBuilder().withRecentsActivityVisible()
waitNavStatusBarVisibility(builder)
builder.waitForAndVerify()
}
teardown {
device.pressHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
imeTestApp.exit(wmHelper)
}
}
@@ -80,9 +75,9 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
* state depending on the touch-up to decide the intention of gesture, the display may keep in
* landscape if return to app, or change to portrait if the gesture is to swipe-to-home.
*
- * So instead of showing landscape bars with portrait launcher at the same time
- * (especially return-to-home that launcher workspace becomes visible), hide the bars until
- * leave overview to have cleaner appearance.
+ * So instead of showing landscape bars with portrait launcher at the same time (especially
+ * return-to-home that launcher workspace becomes visible), hide the bars until leave overview
+ * to have cleaner appearance.
*
* b/227189877
*/
@@ -90,8 +85,7 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
when {
testSpec.isLandscapeOrSeascapeAtStart && !testSpec.isTablet ->
stateSync.add(WindowManagerConditionsFactory.isStatusBarVisible().negate())
- else ->
- stateSync.withNavOrTaskBarVisible().withStatusBarVisible()
+ else -> stateSync.withNavOrTaskBarVisible().withStatusBarVisible()
}
}
@@ -109,9 +103,7 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
testSpec.navBarLayerIsVisibleAtStartAndEnd()
}
- /**
- * Bars are expected to be hidden while entering overview in landscape (b/227189877)
- */
+ /** Bars are expected to be hidden while entering overview in landscape (b/227189877) */
@Presubmit
@Test
fun navBarLayerIsVisibleAtStartAndEndGestural() {
@@ -122,8 +114,8 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
}
/**
- * In the legacy transitions, the nav bar is not marked as invisible.
- * In the new transitions this is fixed and the nav bar shows as invisible
+ * In the legacy transitions, the nav bar is not marked as invisible. In the new transitions
+ * this is fixed and the nav bar shows as invisible
*/
@Presubmit
@Test
@@ -132,17 +124,13 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
Assume.assumeTrue(testSpec.isLandscapeOrSeascapeAtStart)
Assume.assumeTrue(testSpec.isGesturalNavigation)
Assume.assumeTrue(isShellTransitionsEnabled)
- testSpec.assertLayersStart {
- this.isVisible(ComponentNameMatcher.NAV_BAR)
- }
- testSpec.assertLayersEnd {
- this.isInvisible(ComponentNameMatcher.NAV_BAR)
- }
+ testSpec.assertLayersStart { this.isVisible(ComponentNameMatcher.NAV_BAR) }
+ testSpec.assertLayersEnd { this.isInvisible(ComponentNameMatcher.NAV_BAR) }
}
/**
- * In the legacy transitions, the nav bar is not marked as invisible.
- * In the new transitions this is fixed and the nav bar shows as invisible
+ * In the legacy transitions, the nav bar is not marked as invisible. In the new transitions
+ * this is fixed and the nav bar shows as invisible
*/
@Presubmit
@Test
@@ -150,17 +138,13 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
Assume.assumeTrue(testSpec.isLandscapeOrSeascapeAtStart)
Assume.assumeTrue(testSpec.isGesturalNavigation)
Assume.assumeFalse(testSpec.isTablet)
- testSpec.assertLayersStart {
- this.isVisible(ComponentNameMatcher.STATUS_BAR)
- }
- testSpec.assertLayersEnd {
- this.isInvisible(ComponentNameMatcher.STATUS_BAR)
- }
+ testSpec.assertLayersStart { this.isVisible(ComponentNameMatcher.STATUS_BAR) }
+ testSpec.assertLayersEnd { this.isInvisible(ComponentNameMatcher.STATUS_BAR) }
}
/**
- * In the legacy transitions, the nav bar is not marked as invisible.
- * In the new transitions this is fixed and the nav bar shows as invisible
+ * In the legacy transitions, the nav bar is not marked as invisible. In the new transitions
+ * this is fixed and the nav bar shows as invisible
*/
@Presubmit
@Test
@@ -174,27 +158,26 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
/** {@inheritDoc} */
@Test
@Ignore("Visibility changes depending on orientation and navigation mode")
- override fun navBarLayerIsVisibleAtStartAndEnd() { }
+ override fun navBarLayerIsVisibleAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Visibility changes depending on orientation and navigation mode")
- override fun navBarLayerPositionAtStartAndEnd() { }
+ override fun navBarLayerPositionAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Visibility changes depending on orientation and navigation mode")
- override fun statusBarLayerPositionAtStartAndEnd() { }
+ override fun statusBarLayerPositionAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Visibility changes depending on orientation and navigation mode")
- override fun statusBarLayerIsVisibleAtStartAndEnd() { }
+ override fun statusBarLayerIsVisibleAtStartAndEnd() {}
@Postsubmit
@Test
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
@Presubmit
@Test
@@ -209,12 +192,8 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
Assume.assumeTrue(testSpec.isLandscapeOrSeascapeAtStart)
Assume.assumeFalse(testSpec.isTablet)
Assume.assumeTrue(isShellTransitionsEnabled)
- testSpec.assertLayersStart {
- this.isVisible(ComponentNameMatcher.STATUS_BAR)
- }
- testSpec.assertLayersEnd {
- this.isInvisible(ComponentNameMatcher.STATUS_BAR)
- }
+ testSpec.assertLayersStart { this.isVisible(ComponentNameMatcher.STATUS_BAR) }
+ testSpec.assertLayersEnd { this.isInvisible(ComponentNameMatcher.STATUS_BAR) }
}
@Presubmit
@@ -230,11 +209,9 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Test
fun imeLayerIsVisibleAndAssociatedWithAppWidow() {
testSpec.assertLayersStart {
- isVisible(ComponentNameMatcher.IME).visibleRegion(ComponentNameMatcher.IME)
- .coversAtMost(
- isVisible(imeTestApp)
- .visibleRegion(imeTestApp).region
- )
+ isVisible(ComponentNameMatcher.IME)
+ .visibleRegion(ComponentNameMatcher.IME)
+ .coversAtMost(isVisible(imeTestApp).visibleRegion(imeTestApp).region)
}
testSpec.assertLayers {
this.invoke("imeLayerIsVisibleAndAlignAppWidow") {
@@ -252,8 +229,8 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
@@ -261,10 +238,11 @@ class OpenImeWindowToOverViewTest(testSpec: FlickerTestParameter) : BaseTest(tes
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90),
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- )
+ supportedNavigationModes =
+ listOf(
+ WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY,
+ WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
+ )
)
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt
index ddf61bfd34a1..4c476848ecd1 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/ReOpenImeWindowTest.kt
@@ -35,8 +35,7 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test IME window opening transitions.
- * To run this test: `atest FlickerTests:ReOpenImeWindowTest`
+ * Test IME window opening transitions. To run this test: `atest FlickerTests:ReOpenImeWindowTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -48,24 +47,17 @@ open class ReOpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSp
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
setup {
- testApp.launchViaIntent(wmHelper)
- testApp.openIME(wmHelper)
- this.setRotation(testSpec.startRotation)
- device.pressRecentApps()
- wmHelper.StateSyncBuilder()
- .withRecentsActivityVisible()
- .waitForAndVerify()
+ testApp.launchViaIntent(wmHelper)
+ testApp.openIME(wmHelper)
+ this.setRotation(testSpec.startRotation)
+ device.pressRecentApps()
+ wmHelper.StateSyncBuilder().withRecentsActivityVisible().waitForAndVerify()
}
transitions {
device.reopenAppFromOverview(wmHelper)
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .withImeShown()
- .waitForAndVerify()
- }
- teardown {
- testApp.exit(wmHelper)
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).withImeShown().waitForAndVerify()
}
+ teardown { testApp.exit(wmHelper) }
}
/** {@inheritDoc} */
@@ -77,8 +69,11 @@ open class ReOpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSp
val recentTaskComponent = ComponentNameMatcher("", "RecentTaskScreenshotSurface")
testSpec.assertLayers {
this.visibleLayersShownMoreThanOneConsecutiveEntry(
- listOf(ComponentNameMatcher.SPLASH_SCREEN,
- ComponentNameMatcher.SNAPSHOT, recentTaskComponent)
+ listOf(
+ ComponentNameMatcher.SPLASH_SCREEN,
+ ComponentNameMatcher.SNAPSHOT,
+ recentTaskComponent
+ )
)
}
}
@@ -90,9 +85,12 @@ open class ReOpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSp
val component = ComponentNameMatcher("", "RecentTaskScreenshotSurface")
testSpec.assertWm {
this.visibleWindowsShownMoreThanOneConsecutiveEntry(
- ignoreWindows = listOf(ComponentNameMatcher.SPLASH_SCREEN,
+ ignoreWindows =
+ listOf(
+ ComponentNameMatcher.SPLASH_SCREEN,
ComponentNameMatcher.SNAPSHOT,
- component)
+ component
+ )
)
}
}
@@ -102,14 +100,12 @@ open class ReOpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSp
fun launcherWindowBecomesInvisible() {
testSpec.assertWm {
this.isAppWindowVisible(ComponentNameMatcher.LAUNCHER)
- .then()
- .isAppWindowInvisible(ComponentNameMatcher.LAUNCHER)
+ .then()
+ .isAppWindowInvisible(ComponentNameMatcher.LAUNCHER)
}
}
- @Presubmit
- @Test
- fun imeWindowIsAlwaysVisible() = testSpec.imeWindowIsAlwaysVisible()
+ @Presubmit @Test fun imeWindowIsAlwaysVisible() = testSpec.imeWindowIsAlwaysVisible()
@Presubmit
@Test
@@ -118,17 +114,13 @@ open class ReOpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSp
// and exiting overview. Since we log 1x per frame, sometimes the activity visibility
// and the app visibility are updated together, sometimes not, thus ignore activity
// check at the start
- testSpec.assertWm {
- this.isAppWindowVisible(testApp)
- }
+ testSpec.assertWm { this.isAppWindowVisible(testApp) }
}
@Presubmit
@Test
fun imeLayerBecomesVisible() {
- testSpec.assertLayers {
- this.isVisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayers { this.isVisible(ComponentNameMatcher.IME) }
}
@Presubmit
@@ -148,9 +140,7 @@ open class ReOpenImeWindowTest(testSpec: FlickerTestParameter) : BaseTest(testSp
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(
- supportedRotations = listOf(Surface.ROTATION_0)
- )
+ .getConfigNonRotationTests(supportedRotations = listOf(Surface.ROTATION_0))
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest.kt
index 65f51e0dc834..02b3b1398e50 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest.kt
@@ -41,17 +41,15 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test IME windows switching with 2-Buttons or gestural navigation.
- * To run this test: `atest FlickerTests:SwitchImeWindowsFromGestureNavTest`
+ * Test IME windows switching with 2-Buttons or gestural navigation. To run this test: `atest
+ * FlickerTests:SwitchImeWindowsFromGestureNavTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Presubmit
-open class SwitchImeWindowsFromGestureNavTest(
- testSpec: FlickerTestParameter
-) : BaseTest(testSpec) {
+open class SwitchImeWindowsFromGestureNavTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
private val testApp = SimpleAppHelper(instrumentation)
private val imeTestApp = ImeAppAutoFocusHelper(instrumentation, testSpec.startRotation)
@@ -66,22 +64,16 @@ open class SwitchImeWindowsFromGestureNavTest(
tapl.setExpectedRotationCheckEnabled(false)
this.setRotation(testSpec.startRotation)
testApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
imeTestApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(imeTestApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(imeTestApp).waitForAndVerify()
imeTestApp.openIME(wmHelper)
}
teardown {
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
testApp.exit(wmHelper)
imeTestApp.exit(wmHelper)
}
@@ -89,17 +81,13 @@ open class SwitchImeWindowsFromGestureNavTest(
// [Step1]: Swipe right from imeTestApp to testApp task
createTag(TAG_IME_VISIBLE)
tapl.launchedAppState.quickSwitchToPreviousApp()
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
createTag(TAG_IME_INVISIBLE)
}
transitions {
// [Step2]: Swipe left to back to imeTestApp task
tapl.launchedAppState.quickSwitchToPreviousAppSwipeLeft()
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(imeTestApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(imeTestApp).waitForAndVerify()
}
}
@@ -109,9 +97,7 @@ open class SwitchImeWindowsFromGestureNavTest(
override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@@ -137,8 +123,7 @@ open class SwitchImeWindowsFromGestureNavTest(
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -171,23 +156,15 @@ open class SwitchImeWindowsFromGestureNavTest(
@FlakyTest(bugId = 244414110)
@Test
open fun imeLayerIsVisibleWhenSwitchingToImeApp() {
- testSpec.assertLayersStart {
- isVisible(ComponentNameMatcher.IME)
- }
- testSpec.assertLayersTag(TAG_IME_VISIBLE) {
- isVisible(ComponentNameMatcher.IME)
- }
- testSpec.assertLayersEnd {
- isVisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersStart { isVisible(ComponentNameMatcher.IME) }
+ testSpec.assertLayersTag(TAG_IME_VISIBLE) { isVisible(ComponentNameMatcher.IME) }
+ testSpec.assertLayersEnd { isVisible(ComponentNameMatcher.IME) }
}
@Presubmit
@Test
fun imeLayerIsInvisibleWhenSwitchingToTestApp() {
- testSpec.assertLayersTag(TAG_IME_INVISIBLE) {
- isInvisible(ComponentNameMatcher.IME)
- }
+ testSpec.assertLayersTag(TAG_IME_INVISIBLE) { isInvisible(ComponentNameMatcher.IME) }
}
companion object {
@@ -196,9 +173,8 @@ open class SwitchImeWindowsFromGestureNavTest(
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- ),
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY),
supportedRotations = listOf(Surface.ROTATION_0)
)
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt
index bd06279d53cd..d80cf4ee619c 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ime/SwitchImeWindowsFromGestureNavTest_ShellTransit.kt
@@ -33,16 +33,15 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test IME windows switching with 2-Buttons or gestural navigation.
- * To run this test: `atest FlickerTests:SwitchImeWindowsFromGestureNavTest`
+ * Test IME windows switching with 2-Buttons or gestural navigation. To run this test: `atest
+ * FlickerTests:SwitchImeWindowsFromGestureNavTest`
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class SwitchImeWindowsFromGestureNavTest_ShellTransit(
- testSpec: FlickerTestParameter
-) : SwitchImeWindowsFromGestureNavTest(testSpec) {
+class SwitchImeWindowsFromGestureNavTest_ShellTransit(testSpec: FlickerTestParameter) :
+ SwitchImeWindowsFromGestureNavTest(testSpec) {
@Before
override fun before() {
Assume.assumeTrue(isShellTransitionsEnabled)
@@ -73,8 +72,8 @@ class SwitchImeWindowsFromGestureNavTest_ShellTransit(
override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/**
- * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the start
- * and end of the WM trace
+ * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the
+ * start and end of the WM trace
*/
@Presubmit
@Test
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivitiesTransitionTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivitiesTransitionTest.kt
index 1e575e614e36..49bf86d0c266 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivitiesTransitionTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/ActivitiesTransitionTest.kt
@@ -40,15 +40,18 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:ActivitiesTransitionTest`
*
* Actions:
+ * ```
* Launch an app
* Launch a secondary activity within the app
* Close the secondary activity back to the initial one
- *
+ * ```
* Notes:
+ * ```
* 1. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -63,15 +66,11 @@ class ActivitiesTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSp
tapl.setExpectedRotation(testSpec.startRotation)
testApp.launchViaIntent(wmHelper)
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
transitions {
testApp.openSecondActivity(device, wmHelper)
tapl.pressBack()
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
}
}
@@ -81,9 +80,9 @@ class ActivitiesTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSp
override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/**
- * Checks that the [ActivityOptions.LaunchNewActivity] activity is visible at
- * the start of the transition, that [ActivityOptions.SimpleActivity] becomes visible during
- * the transition, and that [ActivityOptions.LaunchNewActivity] is again visible at the end
+ * Checks that the [ActivityOptions.LaunchNewActivity] activity is visible at the start of the
+ * transition, that [ActivityOptions.SimpleActivity] becomes visible during the transition, and
+ * that [ActivityOptions.LaunchNewActivity] is again visible at the end
*/
@Presubmit
@Test
@@ -109,9 +108,7 @@ class ActivitiesTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSp
@Presubmit
@Test
fun launcherWindowNotOnTop() {
- testSpec.assertWm {
- this.isAppWindowNotOnTop(ComponentNameMatcher.LAUNCHER)
- }
+ testSpec.assertWm { this.isAppWindowNotOnTop(ComponentNameMatcher.LAUNCHER) }
}
/**
@@ -127,14 +124,13 @@ class ActivitiesTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSp
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest.kt
index 480226fd86da..d0d7bbb42330 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest.kt
@@ -35,22 +35,21 @@ import org.junit.runners.Parameterized
*
* To run this test: `atest FlickerTests:OpenAppAfterCameraTest`
*
- * Notes:
- * Some default assertions are inherited [OpenAppTransition]
+ * Notes: Some default assertions are inherited [OpenAppTransition]
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class OpenAppAfterCameraTest(
- testSpec: FlickerTestParameter
-) : OpenAppFromLauncherTransition(testSpec) {
+open class OpenAppAfterCameraTest(testSpec: FlickerTestParameter) :
+ OpenAppFromLauncherTransition(testSpec) {
@Before
open fun before() {
Assume.assumeFalse(isShellTransitionsEnabled)
}
- private val cameraApp = CameraAppHelper(instrumentation) /** {@inheritDoc} */
+ private val cameraApp = CameraAppHelper(instrumentation)
+ /** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
@@ -62,26 +61,21 @@ open class OpenAppAfterCameraTest(
// 2. Press home button (button nav mode) / swipe up to home (gesture nav mode)
tapl.goHome()
}
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.launchViaIntent(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.launchViaIntent(wmHelper) }
}
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest_ShellTransit.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest_ShellTransit.kt
index 9e271061cc19..cb61e35eaedc 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest_ShellTransit.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppAfterCameraTest_ShellTransit.kt
@@ -33,16 +33,14 @@ import org.junit.runners.Parameterized
*
* To run this test: `atest FlickerTests:OpenAppAfterCameraTest_ShellTransit`
*
- * Notes:
- * Some default assertions are inherited [OpenAppTransition]
+ * Notes: Some default assertions are inherited [OpenAppTransition]
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class OpenAppAfterCameraTest_ShellTransit(
- testSpec: FlickerTestParameter
-) : OpenAppAfterCameraTest(testSpec) {
+class OpenAppAfterCameraTest_ShellTransit(testSpec: FlickerTestParameter) :
+ OpenAppAfterCameraTest(testSpec) {
@Before
override fun before() {
Assume.assumeFalse(isShellTransitionsEnabled)
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdFromIcon.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdFromIcon.kt
index 8bc1b61f2fbd..7ccfeb7f6edd 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdFromIcon.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppColdFromIcon.kt
@@ -37,24 +37,26 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:OpenAppColdFromIcon`
*
* Actions:
+ * ```
* Make sure no apps are running on the device
* Launch an app [testApp] by clicking it's icon on all apps and wait animation to complete
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [OpenAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class OpenAppColdFromIcon(
- testSpec: FlickerTestParameter
-) : OpenAppFromLauncherTransition(testSpec) {
+class OpenAppColdFromIcon(testSpec: FlickerTestParameter) :
+ OpenAppFromLauncherTransition(testSpec) {
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit
get() = {
@@ -69,21 +71,17 @@ class OpenAppColdFromIcon(
this.setRotation(testSpec.startRotation)
}
transitions {
- tapl.goHome()
+ tapl
+ .goHome()
.switchToAllApps()
.getAppIcon(testApp.launcherName)
.launch(testApp.`package`)
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
}
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowAsTopWindowAtEnd() =
- super.appWindowAsTopWindowAtEnd()
+ @Postsubmit @Test override fun appWindowAsTopWindowAtEnd() = super.appWindowAsTopWindowAtEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -92,35 +90,22 @@ class OpenAppColdFromIcon(
super.appWindowReplacesLauncherAsTopWindow()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appLayerBecomesVisible() =
- super.appLayerBecomesVisible()
+ @Postsubmit @Test override fun appLayerBecomesVisible() = super.appLayerBecomesVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
+ @Postsubmit @Test override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
+ @Postsubmit @Test override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesVisible() = super.appWindowBecomesVisible()
+ @Postsubmit @Test override fun appWindowBecomesVisible() = super.appWindowBecomesVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun focusChanges() = super.focusChanges()
+ @Postsubmit @Test override fun focusChanges() = super.focusChanges()
/** {@inheritDoc} */
@Postsubmit
@@ -150,8 +135,7 @@ class OpenAppColdFromIcon(
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -177,22 +161,19 @@ class OpenAppColdFromIcon(
super.visibleWindowsShownMoreThanOneConsecutiveEntry()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowIsTopWindowAtEnd() = super.appWindowIsTopWindowAtEnd()
+ @Postsubmit @Test override fun appWindowIsTopWindowAtEnd() = super.appWindowIsTopWindowAtEnd()
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
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 0c169809b63f..7cd8526dc0f7 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
@@ -38,25 +38,27 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:OpenAppColdTest`
*
* Actions:
+ * ```
* Make sure no apps are running on the device
* Launch an app [testApp] and wait animation to complete
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [OpenAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@FlickerServiceCompatible
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class OpenAppColdTest(
- testSpec: FlickerTestParameter
-) : OpenAppFromLauncherTransition(testSpec) {
+open class OpenAppColdTest(testSpec: FlickerTestParameter) :
+ OpenAppFromLauncherTransition(testSpec) {
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit
get() = {
@@ -65,24 +67,17 @@ open class OpenAppColdTest(
removeAllTasksButHome()
this.setRotation(testSpec.startRotation)
}
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.launchViaIntent(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.launchViaIntent(wmHelper) }
}
/** {@inheritDoc} */
@FlakyTest(bugId = 206753786)
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
- @Presubmit
- @Test
- override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
+ @Presubmit @Test override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
/** {@inheritDoc} */
@FlakyTest(bugId = 240238245)
@@ -94,14 +89,13 @@ open class OpenAppColdTest(
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLauncherTransition.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLauncherTransition.kt
index bece406d5a96..23748bef96fd 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLauncherTransition.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLauncherTransition.kt
@@ -22,32 +22,27 @@ import com.android.server.wm.flicker.replacesLayer
import com.android.server.wm.traces.common.ComponentNameMatcher
import org.junit.Test
-/**
- * Base class for app launch tests
- */
-abstract class OpenAppFromLauncherTransition(
- testSpec: FlickerTestParameter
-) : OpenAppTransition(testSpec) {
+/** Base class for app launch tests */
+abstract class OpenAppFromLauncherTransition(testSpec: FlickerTestParameter) :
+ OpenAppTransition(testSpec) {
- /**
- * Checks that the focus changes from the [ComponentMatcher.LAUNCHER] to [testApp]
- */
+ /** Checks that the focus changes from the [ComponentMatcher.LAUNCHER] to [testApp] */
@Presubmit
@Test
open fun focusChanges() {
- testSpec.assertEventLog {
- this.focusChanges("NexusLauncherActivity", testApp.`package`)
- }
+ testSpec.assertEventLog { this.focusChanges("NexusLauncherActivity", testApp.`package`) }
}
/**
- * Checks that [ComponentMatcher.LAUNCHER] layer is visible at the start of the transition,
- * and is replaced by [testApp], which remains visible until the end
+ * Checks that [ComponentMatcher.LAUNCHER] layer is visible at the start of the transition, and
+ * is replaced by [testApp], which remains visible until the end
*/
open fun appLayerReplacesLauncher() {
testSpec.replacesLayer(
- ComponentNameMatcher.LAUNCHER, testApp,
- ignoreEntriesWithRotationLayer = true, ignoreSnapshot = true,
+ ComponentNameMatcher.LAUNCHER,
+ testApp,
+ ignoreEntriesWithRotationLayer = true,
+ ignoreSnapshot = true,
ignoreSplashscreen = true
)
}
@@ -64,21 +59,15 @@ abstract class OpenAppFromLauncherTransition(
this.isAppWindowOnTop(ComponentNameMatcher.LAUNCHER)
.then()
.isAppWindowOnTop(
- testApp
- .or(ComponentNameMatcher.SNAPSHOT)
- .or(ComponentNameMatcher.SPLASH_SCREEN)
+ testApp.or(ComponentNameMatcher.SNAPSHOT).or(ComponentNameMatcher.SPLASH_SCREEN)
)
}
}
- /**
- * Checks that [testApp] window is the top window at the en dof the trace
- */
+ /** Checks that [testApp] window is the top window at the en dof the trace */
@Presubmit
@Test
open fun appWindowAsTopWindowAtEnd() {
- testSpec.assertWmEnd {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWmEnd { this.isAppWindowOnTop(testApp) }
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt
index a9972ce4610d..2469faeaaa66 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationCold.kt
@@ -54,18 +54,14 @@ open class OpenAppFromLockNotificationCold(testSpec: FlickerTestParameter) :
get() = {
// Needs to run at start of transition,
// so before the transition defined in super.transition
- transitions {
- device.wakeUp()
- }
+ transitions { device.wakeUp() }
super.transition(this)
// Needs to run at the end of the setup, so after the setup defined in super.transition
setup {
device.sleep()
- wmHelper.StateSyncBuilder()
- .withoutTopVisibleAppWindows()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify()
}
}
@@ -86,13 +82,9 @@ open class OpenAppFromLockNotificationCold(testSpec: FlickerTestParameter) :
override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
/** {@inheritDoc} */
- @Test
- @Ignore("Display is off at the start")
- override fun navBarLayerPositionAtStartAndEnd() { }
+ @Test @Ignore("Display is off at the start") override fun navBarLayerPositionAtStartAndEnd() {}
- /**
- * Checks the position of the [ComponentMatcher.NAV_BAR] at the end of the transition
- */
+ /** Checks the position of the [ComponentMatcher.NAV_BAR] at the end of the transition */
@Postsubmit
@Test
fun navBarLayerPositionAtEnd() {
@@ -103,15 +95,13 @@ open class OpenAppFromLockNotificationCold(testSpec: FlickerTestParameter) :
/** {@inheritDoc} */
@Test
@Ignore("Display is off at the start")
- override fun statusBarLayerPositionAtStartAndEnd() { }
+ override fun statusBarLayerPositionAtStartAndEnd() {}
/**
* Checks the position of the [ComponentMatcher.STATUS_BAR] at the start and end of the
* transition
*/
- @Postsubmit
- @Test
- fun statusBarLayerPositionEnd() = testSpec.statusBarLayerPositionAtEnd()
+ @Postsubmit @Test fun statusBarLayerPositionEnd() = testSpec.statusBarLayerPositionAtEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -124,9 +114,7 @@ open class OpenAppFromLockNotificationCold(testSpec: FlickerTestParameter) :
override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appLayerBecomesVisible() = super.appLayerBecomesVisible()
+ @Postsubmit @Test override fun appLayerBecomesVisible() = super.appLayerBecomesVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -134,9 +122,7 @@ open class OpenAppFromLockNotificationCold(testSpec: FlickerTestParameter) :
override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesVisible() = super.appWindowBecomesVisible()
+ @Postsubmit @Test override fun appWindowBecomesVisible() = super.appWindowBecomesVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -151,23 +137,19 @@ open class OpenAppFromLockNotificationCold(testSpec: FlickerTestParameter) :
super.visibleLayersShownMoreThanOneConsecutiveEntry()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowIsTopWindowAtEnd() =
- super.appWindowIsTopWindowAtEnd()
+ @Postsubmit @Test override fun appWindowIsTopWindowAtEnd() = super.appWindowIsTopWindowAtEnd()
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWarm.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWarm.kt
index 950c54c84a1c..c26b665953da 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWarm.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWarm.kt
@@ -58,49 +58,40 @@ open class OpenAppFromLockNotificationWarm(testSpec: FlickerTestParameter) :
get() = {
// Needs to run at start of transition,
// so before the transition defined in super.transition
- transitions {
- device.wakeUp()
- }
+ transitions { device.wakeUp() }
super.transition(this)
// Needs to run at the end of the setup, so after the setup defined in super.transition
setup {
device.sleep()
- wmHelper.StateSyncBuilder()
- .withoutTopVisibleAppWindows()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify()
}
}
/**
- * Checks that we start of with no top windows and then [testApp] becomes the first and
- * only top window of the transition, with snapshot or splash screen windows optionally showing
- * first.
+ * Checks that we start of with no top windows and then [testApp] becomes the first and only top
+ * window of the transition, with snapshot or splash screen windows optionally showing first.
*/
@Test
@Postsubmit
open fun appWindowBecomesFirstAndOnlyTopWindow() {
testSpec.assertWm {
this.hasNoVisibleAppWindow()
- .then()
- .isAppWindowOnTop(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isAppWindowOnTop(ComponentNameMatcher.SPLASH_SCREEN, isOptional = true)
- .then()
- .isAppWindowOnTop(testApp)
+ .then()
+ .isAppWindowOnTop(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isAppWindowOnTop(ComponentNameMatcher.SPLASH_SCREEN, isOptional = true)
+ .then()
+ .isAppWindowOnTop(testApp)
}
}
- /**
- * Checks that the screen is locked at the start of the transition
- */
+ /** Checks that the screen is locked at the start of the transition */
@Test
@Postsubmit
fun screenLockedStart() {
- testSpec.assertWmStart {
- isKeyguardShowing()
- }
+ testSpec.assertWmStart { isKeyguardShowing() }
}
/** {@inheritDoc} */
@@ -117,11 +108,9 @@ open class OpenAppFromLockNotificationWarm(testSpec: FlickerTestParameter) :
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts locked and app is full screen at the end")
- override fun navBarLayerPositionAtStartAndEnd() { }
+ override fun navBarLayerPositionAtStartAndEnd() {}
- /**
- * Checks the position of the [ComponentNameMatcher.NAV_BAR] at the end of the transition
- */
+ /** Checks the position of the [ComponentNameMatcher.NAV_BAR] at the end of the transition */
@Postsubmit
@Test
fun navBarLayerPositionAtEnd() {
@@ -132,40 +121,31 @@ open class OpenAppFromLockNotificationWarm(testSpec: FlickerTestParameter) :
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun statusBarLayerPositionAtStartAndEnd() { }
+ override fun statusBarLayerPositionAtStartAndEnd() {}
/**
* Checks the position of the [ComponentNameMatcher.STATUS_BAR] at the start and end of the
* transition
*/
- @Postsubmit
- @Test
- fun statusBarLayerPositionEnd() = testSpec.statusBarLayerPositionAtEnd()
+ @Postsubmit @Test fun statusBarLayerPositionEnd() = testSpec.statusBarLayerPositionAtEnd()
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts locked and app is full screen at the end")
- override fun navBarLayerIsVisibleAtStartAndEnd() =
- super.navBarLayerIsVisibleAtStartAndEnd()
+ override fun navBarLayerIsVisibleAtStartAndEnd() = super.navBarLayerIsVisibleAtStartAndEnd()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- fun navBarLayerIsVisibleAtEnd() = testSpec.navBarLayerIsVisibleAtEnd()
+ @Postsubmit @Test fun navBarLayerIsVisibleAtEnd() = testSpec.navBarLayerIsVisibleAtEnd()
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts locked and app is full screen at the end")
override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
- @Postsubmit
- @Test
- fun navBarWindowIsVisibleAtEnd() = testSpec.navBarWindowIsVisibleAtEnd()
+ @Postsubmit @Test fun navBarWindowIsVisibleAtEnd() = testSpec.navBarWindowIsVisibleAtEnd()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appLayerBecomesVisible() = super.appLayerBecomesVisible()
+ @Postsubmit @Test override fun appLayerBecomesVisible() = super.appLayerBecomesVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -173,14 +153,10 @@ open class OpenAppFromLockNotificationWarm(testSpec: FlickerTestParameter) :
override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
+ @Postsubmit @Test override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesVisible() = super.appWindowBecomesVisible()
+ @Postsubmit @Test override fun appWindowBecomesVisible() = super.appWindowBecomesVisible()
/** {@inheritDoc} */
@Postsubmit
@@ -195,10 +171,7 @@ open class OpenAppFromLockNotificationWarm(testSpec: FlickerTestParameter) :
super.visibleLayersShownMoreThanOneConsecutiveEntry()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowIsTopWindowAtEnd() =
- super.appWindowIsTopWindowAtEnd()
+ @Postsubmit @Test override fun appWindowIsTopWindowAtEnd() = super.appWindowIsTopWindowAtEnd()
/** {@inheritDoc} */
@Presubmit
@@ -210,14 +183,13 @@ open class OpenAppFromLockNotificationWarm(testSpec: FlickerTestParameter) :
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWithLockOverlayApp.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWithLockOverlayApp.kt
index c07989425074..0b4361ce8f2e 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWithLockOverlayApp.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockNotificationWithLockOverlayApp.kt
@@ -33,8 +33,8 @@ import org.junit.runners.MethodSorters
import org.junit.runners.Parameterized
/**
- * Test cold launching an app from a notification from the lock screen when there is an app
- * overlaid on the lock screen.
+ * Test cold launching an app from a notification from the lock screen when there is an app overlaid
+ * on the lock screen.
*
* To run this test: `atest FlickerTests:OpenAppFromLockNotificationWithLockOverlayApp`
*/
@@ -46,7 +46,7 @@ import org.junit.runners.Parameterized
class OpenAppFromLockNotificationWithLockOverlayApp(testSpec: FlickerTestParameter) :
OpenAppFromLockNotificationCold(testSpec) {
private val showWhenLockedApp: ShowWhenLockedAppHelper =
- ShowWhenLockedAppHelper(instrumentation)
+ ShowWhenLockedAppHelper(instrumentation)
// Although we are technically still locked here, the overlay app means we should open the
// notification shade as if we were unlocked.
@@ -61,19 +61,13 @@ class OpenAppFromLockNotificationWithLockOverlayApp(testSpec: FlickerTestParamet
// Launch an activity that is shown when the device is locked
showWhenLockedApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(showWhenLockedApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(showWhenLockedApp).waitForAndVerify()
device.sleep()
- wmHelper.StateSyncBuilder()
- .withoutTopVisibleAppWindows()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify()
}
- teardown {
- showWhenLockedApp.exit(wmHelper)
- }
+ teardown { showWhenLockedApp.exit(wmHelper) }
}
@Test
@@ -81,10 +75,10 @@ class OpenAppFromLockNotificationWithLockOverlayApp(testSpec: FlickerTestParamet
fun showWhenLockedAppWindowBecomesVisible() {
testSpec.assertWm {
this.hasNoVisibleAppWindow()
- .then()
- .isAppWindowOnTop(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isAppWindowOnTop(showWhenLockedApp)
+ .then()
+ .isAppWindowOnTop(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isAppWindowOnTop(showWhenLockedApp)
}
}
@@ -93,10 +87,10 @@ class OpenAppFromLockNotificationWithLockOverlayApp(testSpec: FlickerTestParamet
fun showWhenLockedAppLayerBecomesVisible() {
testSpec.assertLayers {
this.isInvisible(showWhenLockedApp)
- .then()
- .isVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isVisible(showWhenLockedApp)
+ .then()
+ .isVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isVisible(showWhenLockedApp)
}
}
@@ -106,22 +100,19 @@ class OpenAppFromLockNotificationWithLockOverlayApp(testSpec: FlickerTestParamet
override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
+ @Postsubmit @Test override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockTransition.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockTransition.kt
index f574c9e12c96..3cc23909b603 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockTransition.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromLockTransition.kt
@@ -27,40 +27,26 @@ import org.junit.Assume
import org.junit.Ignore
import org.junit.Test
-/**
- * Base class for app launch tests from lock screen
- */
+/** Base class for app launch tests from lock screen */
abstract class OpenAppFromLockTransition(testSpec: FlickerTestParameter) :
OpenAppTransition(testSpec) {
- /**
- * Defines the transition used to run the test
- */
+ /** Defines the transition used to run the test */
override val transition: FlickerBuilder.() -> Unit = {
super.transition(this)
setup {
device.sleep()
- wmHelper.StateSyncBuilder()
- .withoutTopVisibleAppWindows()
- .waitForAndVerify()
- }
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.launchViaIntent(wmHelper)
+ wmHelper.StateSyncBuilder().withoutTopVisibleAppWindows().waitForAndVerify()
}
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.launchViaIntent(wmHelper) }
}
- /**
- * Check that we go from no focus to focus on the [testApp]
- */
+ /** Check that we go from no focus to focus on the [testApp] */
@Presubmit
@Test
open fun focusChanges() {
- testSpec.assertEventLog {
- this.focusChanges("", testApp.`package`)
- }
+ testSpec.assertEventLog { this.focusChanges("", testApp.`package`) }
}
/**
@@ -72,24 +58,20 @@ abstract class OpenAppFromLockTransition(testSpec: FlickerTestParameter) :
open fun appWindowBecomesFirstAndOnlyTopWindow() {
testSpec.assertWm {
this.hasNoVisibleAppWindow()
- .then()
- .isAppWindowOnTop(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isAppWindowOnTop(ComponentNameMatcher.SPLASH_SCREEN, isOptional = true)
- .then()
- .isAppWindowOnTop(testApp)
+ .then()
+ .isAppWindowOnTop(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isAppWindowOnTop(ComponentNameMatcher.SPLASH_SCREEN, isOptional = true)
+ .then()
+ .isAppWindowOnTop(testApp)
}
}
- /**
- * Checks that the screen is locked at the start of the transition
- */
+ /** Checks that the screen is locked at the start of the transition */
@Presubmit
@Test
fun screenLockedStart() {
- testSpec.assertLayersStart {
- isEmpty()
- }
+ testSpec.assertLayersStart { isEmpty() }
}
/** {@inheritDoc} */
@@ -100,26 +82,24 @@ abstract class OpenAppFromLockTransition(testSpec: FlickerTestParameter) :
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun navBarLayerPositionAtStartAndEnd() { }
+ override fun navBarLayerPositionAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun statusBarLayerPositionAtStartAndEnd() { }
+ override fun statusBarLayerPositionAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun taskBarLayerIsVisibleAtStartAndEnd() { }
+ override fun taskBarLayerIsVisibleAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun taskBarWindowIsAlwaysVisible() { }
+ override fun taskBarWindowIsAlwaysVisible() {}
- /**
- * Checks the position of the [ComponentMatcher.NAV_BAR] at the end of the transition
- */
+ /** Checks the position of the [ComponentMatcher.NAV_BAR] at the end of the transition */
@Presubmit
@Test
open fun navBarLayerPositionAtEnd() {
@@ -127,17 +107,13 @@ abstract class OpenAppFromLockTransition(testSpec: FlickerTestParameter) :
testSpec.navBarLayerPositionAtEnd()
}
- /**
- * Checks the position of the [ComponentMatcher.STATUS_BAR] at the end of the transition
- */
- @Presubmit
- @Test
- fun statusBarLayerPositionAtEnd() = testSpec.statusBarLayerPositionAtEnd()
+ /** Checks the position of the [ComponentMatcher.STATUS_BAR] at the end of the transition */
+ @Presubmit @Test fun statusBarLayerPositionAtEnd() = testSpec.statusBarLayerPositionAtEnd()
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun statusBarLayerIsVisibleAtStartAndEnd() { }
+ override fun statusBarLayerIsVisibleAtStartAndEnd() {}
/**
* Checks that the [ComponentMatcher.STATUS_BAR] layer is visible at the end of the trace
@@ -147,8 +123,6 @@ abstract class OpenAppFromLockTransition(testSpec: FlickerTestParameter) :
@Presubmit
@Test
fun statusBarLayerIsVisibleAtEnd() {
- testSpec.assertLayersEnd {
- this.isVisible(ComponentNameMatcher.STATUS_BAR)
- }
+ testSpec.assertLayersEnd { this.isVisible(ComponentNameMatcher.STATUS_BAR) }
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationCold.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationCold.kt
index dca3affc8f25..6802d7a5a372 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationCold.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationCold.kt
@@ -39,9 +39,8 @@ import org.junit.runners.Parameterized
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Postsubmit
-open class OpenAppFromNotificationCold(
- testSpec: FlickerTestParameter
-) : OpenAppFromNotificationWarm(testSpec) {
+open class OpenAppFromNotificationCold(testSpec: FlickerTestParameter) :
+ OpenAppFromNotificationWarm(testSpec) {
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit
get() = {
@@ -60,14 +59,13 @@ open class OpenAppFromNotificationCold(
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationWarm.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationWarm.kt
index e8a6a69cc50b..1ae0d5374c59 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationWarm.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppFromNotificationWarm.kt
@@ -54,9 +54,8 @@ import org.junit.runners.Parameterized
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@Postsubmit
-open class OpenAppFromNotificationWarm(
- testSpec: FlickerTestParameter
-) : OpenAppTransition(testSpec) {
+open class OpenAppFromNotificationWarm(testSpec: FlickerTestParameter) :
+ OpenAppTransition(testSpec) {
override val testApp: NotificationAppHelper = NotificationAppHelper(instrumentation)
open val openingNotificationsFromLockScreen = false
@@ -68,14 +67,10 @@ open class OpenAppFromNotificationWarm(
device.wakeUpAndGoToHomeScreen()
this.setRotation(testSpec.startRotation)
testApp.launchViaIntent(wmHelper)
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
testApp.postNotification(wmHelper)
device.pressHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
}
transitions {
@@ -87,10 +82,10 @@ open class OpenAppFromNotificationWarm(
instrumentation.context.getSystemService(WindowManager::class.java)
?: error("Unable to connect to WindowManager service")
val metricInsets = wm.currentWindowMetrics.windowInsets
- val insets = metricInsets.getInsetsIgnoringVisibility(
- WindowInsets.Type.statusBars()
- or WindowInsets.Type.displayCutout()
- )
+ val insets =
+ metricInsets.getInsetsIgnoringVisibility(
+ WindowInsets.Type.statusBars() or WindowInsets.Type.displayCutout()
+ )
startY = insets.top + 100
endY = device.displayHeight / 2
@@ -104,23 +99,16 @@ open class OpenAppFromNotificationWarm(
instrumentation.uiAutomation.syncInputTransactions()
// Launch the activity by clicking the notification
- val notification = device.wait(
- Until.findObject(
- By.text("Flicker Test Notification")
- ), 2000L
- )
+ val notification =
+ device.wait(Until.findObject(By.text("Flicker Test Notification")), 2000L)
notification?.click() ?: error("Notification not found")
instrumentation.uiAutomation.syncInputTransactions()
// Wait for the app to launch
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
}
/** {@inheritDoc} */
@@ -137,8 +125,7 @@ open class OpenAppFromNotificationWarm(
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -147,14 +134,10 @@ open class OpenAppFromNotificationWarm(
super.visibleLayersShownMoreThanOneConsecutiveEntry()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowBecomesVisible() = appWindowBecomesVisible_warmStart()
+ @Postsubmit @Test override fun appWindowBecomesVisible() = appWindowBecomesVisible_warmStart()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appLayerBecomesVisible() = appLayerBecomesVisible_warmStart()
+ @Postsubmit @Test override fun appLayerBecomesVisible() = appLayerBecomesVisible_warmStart()
/** {@inheritDoc} */
@Postsubmit
@@ -162,9 +145,7 @@ open class OpenAppFromNotificationWarm(
override fun statusBarWindowIsAlwaysVisible() = super.statusBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@@ -183,33 +164,24 @@ open class OpenAppFromNotificationWarm(
super.visibleWindowsShownMoreThanOneConsecutiveEntry()
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun appWindowIsTopWindowAtEnd() =
- super.appWindowIsTopWindowAtEnd()
+ @Postsubmit @Test override fun appWindowIsTopWindowAtEnd() = super.appWindowIsTopWindowAtEnd()
@Postsubmit
@Test
open fun notificationAppWindowVisibleAtEnd() {
- testSpec.assertWmEnd {
- this.isAppWindowVisible(testApp)
- }
+ testSpec.assertWmEnd { this.isAppWindowVisible(testApp) }
}
@Postsubmit
@Test
open fun notificationAppWindowOnTopAtEnd() {
- testSpec.assertWmEnd {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWmEnd { this.isAppWindowOnTop(testApp) }
}
@Postsubmit
@Test
open fun notificationAppLayerVisibleAtEnd() {
- testSpec.assertLayersEnd {
- this.isVisible(testApp)
- }
+ testSpec.assertLayersEnd { this.isVisible(testApp) }
}
/** {@inheritDoc} */
@@ -241,8 +213,7 @@ open class OpenAppFromNotificationWarm(
}
/**
- * Checks that the [ComponentNameMatcher.TASK_BAR] layer is visible at the end of the
- * transition
+ * Checks that the [ComponentNameMatcher.TASK_BAR] layer is visible at the end of the transition
*
* Note: Large screen only
*/
@@ -256,27 +227,24 @@ open class OpenAppFromNotificationWarm(
/** {@inheritDoc} */
@Test
@Ignore("Display is locked at the start")
- override fun taskBarWindowIsAlwaysVisible() =
- super.taskBarWindowIsAlwaysVisible()
+ override fun taskBarWindowIsAlwaysVisible() = super.taskBarWindowIsAlwaysVisible()
/** {@inheritDoc} */
@Test
@Ignore("Display is locked at the start")
- override fun taskBarLayerIsVisibleAtStartAndEnd() =
- super.taskBarLayerIsVisibleAtStartAndEnd()
+ override fun taskBarLayerIsVisibleAtStartAndEnd() = super.taskBarLayerIsVisibleAtStartAndEnd()
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
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 0bf57caefcda..fd8a38c3f6b7 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
@@ -38,31 +38,31 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:OpenAppFromOverviewTest`
*
* Actions:
+ * ```
* Launch [testApp]
* Press recents
* Relaunch an app [testApp] by selecting it in the overview screen, and wait animation to
* complete (only this action is traced)
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [OpenAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@FlickerServiceCompatible
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class OpenAppFromOverviewTest(
- testSpec: FlickerTestParameter
-) : OpenAppFromLauncherTransition(testSpec) {
+open class OpenAppFromOverviewTest(testSpec: FlickerTestParameter) :
+ OpenAppFromLauncherTransition(testSpec) {
- /**
- * Defines the transition used to run the test
- */
+ /** Defines the transition used to run the test */
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
@@ -70,9 +70,7 @@ open class OpenAppFromOverviewTest(
tapl.setExpectedRotationCheckEnabled(false)
testApp.launchViaIntent(wmHelper)
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
// By default, launcher doesn't rotate on phones, but rotates on tablets
if (testSpec.isTablet) {
tapl.setExpectedRotation(testSpec.startRotation)
@@ -80,23 +78,17 @@ open class OpenAppFromOverviewTest(
tapl.setExpectedRotation(Surface.ROTATION_0)
}
tapl.workspace.switchToOverview()
- wmHelper.StateSyncBuilder()
- .withRecentsActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withRecentsActivityVisible().waitForAndVerify()
this.setRotation(testSpec.startRotation)
}
transitions {
tapl.overview.currentTask.open()
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp)
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
}
}
/** {@inheritDoc} */
- @Presubmit
- @Test
- override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
+ @Presubmit @Test override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
/** {@inheritDoc} */
@FlakyTest
@@ -117,14 +109,13 @@ open class OpenAppFromOverviewTest(
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppNonResizeableTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppNonResizeableTest.kt
index 11f3cced5b4d..559728739111 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppNonResizeableTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppNonResizeableTest.kt
@@ -45,16 +45,19 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:OpenAppNonResizeableTest`
*
* Actions:
+ * ```
* Lock the device.
* Launch an app on top of the lock screen [testApp] and wait animation to complete
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [OpenAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@FlickerServiceCompatible
@@ -80,15 +83,11 @@ open class OpenAppNonResizeableTest(testSpec: FlickerTestParameter) :
}
}
- /**
- * Checks if [testApp] is visible at the end of the transition
- */
+ /** Checks if [testApp] is visible at the end of the transition */
@Presubmit
@Test
fun appWindowBecomesVisibleAtEnd() {
- testSpec.assertWmEnd {
- this.isAppWindowVisible(testApp)
- }
+ testSpec.assertWmEnd { this.isAppWindowVisible(testApp) }
}
/**
@@ -114,9 +113,7 @@ open class OpenAppNonResizeableTest(testSpec: FlickerTestParameter) :
@Test
fun taskBarLayerIsVisibleAtEnd() {
Assume.assumeTrue(testSpec.isTablet)
- testSpec.assertLayersEnd {
- this.isVisible(ComponentNameMatcher.TASK_BAR)
- }
+ testSpec.assertLayersEnd { this.isVisible(ComponentNameMatcher.TASK_BAR) }
}
/**
@@ -127,59 +124,43 @@ open class OpenAppNonResizeableTest(testSpec: FlickerTestParameter) :
@Presubmit
@Test
override fun statusBarLayerIsVisibleAtStartAndEnd() {
- testSpec.assertLayersEnd {
- this.isVisible(ComponentNameMatcher.STATUS_BAR)
- }
+ testSpec.assertLayersEnd { this.isVisible(ComponentNameMatcher.STATUS_BAR) }
}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun taskBarLayerIsVisibleAtStartAndEnd() {
- }
+ override fun taskBarLayerIsVisibleAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun navBarLayerIsVisibleAtStartAndEnd() {
- }
+ override fun navBarLayerIsVisibleAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun taskBarWindowIsAlwaysVisible() {
- }
+ override fun taskBarWindowIsAlwaysVisible() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun navBarWindowIsAlwaysVisible() {
- }
+ override fun navBarWindowIsAlwaysVisible() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. Display starts off and app is full screen at the end")
- override fun statusBarWindowIsAlwaysVisible() {
- }
+ override fun statusBarWindowIsAlwaysVisible() {}
- /**
- * Checks the position of the [ComponentMatcher.STATUS_BAR] at the end of the
- * transition
- */
- @Presubmit
- @Test
- fun statusBarLayerPositionEnd() = testSpec.statusBarLayerPositionAtEnd()
+ /** Checks the position of the [ComponentMatcher.STATUS_BAR] at the end of the transition */
+ @Presubmit @Test fun statusBarLayerPositionEnd() = testSpec.statusBarLayerPositionAtEnd()
- /**
- * Checks the [ComponentMatcher.NAV_BAR] is visible at the end of the transition
- */
+ /** Checks the [ComponentMatcher.NAV_BAR] is visible at the end of the transition */
@Postsubmit
@Test
fun navBarLayerIsVisibleAtEnd() {
Assume.assumeFalse(testSpec.isTablet)
- testSpec.assertLayersEnd {
- this.isVisible(ComponentNameMatcher.NAV_BAR)
- }
+ testSpec.assertLayersEnd { this.isVisible(ComponentNameMatcher.NAV_BAR) }
}
/** {@inheritDoc} */
@@ -205,9 +186,7 @@ open class OpenAppNonResizeableTest(testSpec: FlickerTestParameter) :
}
/** {@inheritDoc} */
- @FlakyTest
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ @FlakyTest @Test override fun entireScreenCovered() = super.entireScreenCovered()
@FlakyTest(bugId = 218470989)
@Test
@@ -216,23 +195,22 @@ open class OpenAppNonResizeableTest(testSpec: FlickerTestParameter) :
@FlakyTest(bugId = 227143265)
@Test
- override fun appWindowBecomesTopWindow() =
- super.appWindowBecomesTopWindow()
+ override fun appWindowBecomesTopWindow() = super.appWindowBecomesTopWindow()
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedNavigationModes =
- listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY),
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY),
supportedRotations = listOf(Surface.ROTATION_0)
)
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppTransition.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppTransition.kt
index face7da6f623..4fd251aefffc 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppTransition.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OpenAppTransition.kt
@@ -27,9 +27,7 @@ import com.android.server.wm.flicker.helpers.wakeUpAndGoToHomeScreen
import com.android.server.wm.traces.common.ComponentNameMatcher
import org.junit.Test
-/**
- * Base class for app launch tests
- */
+/** Base class for app launch tests */
abstract class OpenAppTransition(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
protected open val testApp: StandardAppHelper = SimpleAppHelper(instrumentation)
@@ -40,14 +38,12 @@ abstract class OpenAppTransition(testSpec: FlickerTestParameter) : BaseTest(test
device.wakeUpAndGoToHomeScreen()
this.setRotation(testSpec.startRotation)
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
}
/**
- * Checks that the [testApp] layer doesn't exist or is invisible at the start of the
- * transition, but is created and/or becomes visible during the transition.
+ * Checks that the [testApp] layer doesn't exist or is invisible at the start of the transition,
+ * but is created and/or becomes visible during the transition.
*/
@Presubmit
@Test
@@ -85,12 +81,10 @@ abstract class OpenAppTransition(testSpec: FlickerTestParameter) : BaseTest(test
* Checks that the [testApp] window doesn't exist at the start of the transition, that it is
* created (invisible - optional) and becomes visible during the transition
*
- * The `isAppWindowInvisible` step is optional because we log once per frame, upon logging,
- * the window may be visible or not depending on what was processed until that moment.
+ * The `isAppWindowInvisible` step is optional because we log once per frame, upon logging, the
+ * window may be visible or not depending on what was processed until that moment.
*/
- @Presubmit
- @Test
- open fun appWindowBecomesVisible() = appWindowBecomesVisible_coldStart()
+ @Presubmit @Test open fun appWindowBecomesVisible() = appWindowBecomesVisible_coldStart()
protected fun appWindowBecomesVisible_coldStart() {
testSpec.assertWm {
@@ -125,9 +119,7 @@ abstract class OpenAppTransition(testSpec: FlickerTestParameter) : BaseTest(test
this.isAppWindowNotOnTop(testApp)
.then()
.isAppWindowOnTop(
- testApp
- .or(ComponentNameMatcher.SNAPSHOT)
- .or(ComponentNameMatcher.SPLASH_SCREEN)
+ testApp.or(ComponentNameMatcher.SNAPSHOT).or(ComponentNameMatcher.SPLASH_SCREEN)
)
}
}
@@ -139,8 +131,6 @@ abstract class OpenAppTransition(testSpec: FlickerTestParameter) : BaseTest(test
@Presubmit
@Test
open fun appWindowIsTopWindowAtEnd() {
- testSpec.assertWmEnd {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWmEnd { this.isAppWindowOnTop(testApp) }
}
}
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 f7fb9e339e59..03741c8f968c 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
@@ -37,17 +37,20 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:OpenAppWarmTest`
*
* Actions:
+ * ```
* Launch [testApp]
* Press home
* Relaunch an app [testApp] and wait animation to complete (only this action is traced)
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [OpenAppTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@FlickerServiceCompatible
@@ -56,9 +59,7 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
open class OpenAppWarmTest(testSpec: FlickerTestParameter) :
OpenAppFromLauncherTransition(testSpec) {
- /**
- * Defines the transition used to run the test
- */
+ /** Defines the transition used to run the test */
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
@@ -66,17 +67,11 @@ open class OpenAppWarmTest(testSpec: FlickerTestParameter) :
tapl.setExpectedRotationCheckEnabled(false)
testApp.launchViaIntent(wmHelper)
tapl.goHome()
- wmHelper.StateSyncBuilder()
- .withHomeActivityVisible()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withHomeActivityVisible().waitForAndVerify()
this.setRotation(testSpec.startRotation)
}
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- testApp.launchViaIntent(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
+ transitions { testApp.launchViaIntent(wmHelper) }
}
/** {@inheritDoc} */
@@ -85,9 +80,7 @@ open class OpenAppWarmTest(testSpec: FlickerTestParameter) :
override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
- @Presubmit
- @Test
- override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
+ @Presubmit @Test override fun appLayerReplacesLauncher() = super.appLayerReplacesLauncher()
/** {@inheritDoc} */
@Presubmit
@@ -103,14 +96,13 @@ open class OpenAppWarmTest(testSpec: FlickerTestParameter) :
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigNonRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt
index 18cc55b80198..bc2fe469a010 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/OverrideTaskTransitionTest.kt
@@ -49,7 +49,9 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:OverrideTaskTransitionTest`
*
* Actions:
+ * ```
* Launches SimpleActivity with alpha_2000ms animation
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -70,16 +72,17 @@ class OverrideTaskTransitionTest(val testSpec: FlickerTestParameter) {
}
transitions {
instrumentation.context.startActivity(
- testApp.openAppIntent, createCustomTaskAnimation())
- wmHelper.StateSyncBuilder()
- .add(WindowManagerConditionsFactory.isWMStateComplete())
- .withAppTransitionIdle()
- .withWindowSurfaceAppeared(testApp)
- .waitForAndVerify()
- }
- teardown {
- testApp.exit()
+ testApp.openAppIntent,
+ createCustomTaskAnimation()
+ )
+ wmHelper
+ .StateSyncBuilder()
+ .add(WindowManagerConditionsFactory.isWMStateComplete())
+ .withAppTransitionIdle()
+ .withWindowSurfaceAppeared(testApp)
+ .waitForAndVerify()
}
+ teardown { testApp.exit() }
}
}
@@ -98,16 +101,22 @@ class OverrideTaskTransitionTest(val testSpec: FlickerTestParameter) {
}
private fun createCustomTaskAnimation(): Bundle {
- return android.app.ActivityOptions.makeCustomTaskAnimation(instrumentation.context,
- R.anim.show_2000ms, 0, Handler.getMain(), null, null).toBundle()
+ return android.app.ActivityOptions.makeCustomTaskAnimation(
+ instrumentation.context,
+ R.anim.show_2000ms,
+ 0,
+ Handler.getMain(),
+ null,
+ null
+ )
+ .toBundle()
}
companion object {
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt
index a43833014308..06486ca85292 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/launch/TaskTransitionTest.kt
@@ -45,9 +45,11 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:ActivitiesTransitionTest`
*
* Actions:
+ * ```
* Launch the NewTaskLauncherApp [mTestApp]
* Open a new task (SimpleActivity) from the NewTaskLauncherApp [mTestApp]
* Go back to the NewTaskLauncherApp [mTestApp]
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -61,36 +63,28 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
- setup {
- testApp.launchViaIntent(wmHelper)
- }
- teardown {
- testApp.exit(wmHelper)
- }
+ setup { testApp.launchViaIntent(wmHelper) }
+ teardown { testApp.exit(wmHelper) }
transitions {
testApp.openNewTask(device, wmHelper)
tapl.pressBack()
- wmHelper.StateSyncBuilder()
- .withAppTransitionIdle()
- .waitForAndVerify()
+ wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify()
}
}
/**
- * Checks that the [wallpaper] window is never visible when performing task transitions.
- * A solid color background should be shown instead.
+ * Checks that the [wallpaper] window is never visible when performing task transitions. A solid
+ * color background should be shown instead.
*/
@Postsubmit
@Test
fun wallpaperWindowIsNeverVisible() {
- testSpec.assertWm {
- this.isNonAppWindowInvisible(wallpaper)
- }
+ testSpec.assertWm { this.isNonAppWindowInvisible(wallpaper) }
}
/**
- * Checks that the [wallpaper] layer is never visible when performing task transitions.
- * A solid color background should be shown instead.
+ * Checks that the [wallpaper] layer is never visible when performing task transitions. A solid
+ * color background should be shown instead.
*/
@Postsubmit
@Test
@@ -103,33 +97,25 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
/**
* Check that the [ComponentNameMatcher.LAUNCHER] window is never visible when performing task
- * transitions.
- * A solid color background should be shown above it.
+ * transitions. A solid color background should be shown above it.
*/
@Postsubmit
@Test
fun launcherWindowIsNeverVisible() {
- testSpec.assertWm {
- this.isAppWindowInvisible(ComponentNameMatcher.LAUNCHER)
- }
+ testSpec.assertWm { this.isAppWindowInvisible(ComponentNameMatcher.LAUNCHER) }
}
/**
* Checks that the [ComponentNameMatcher.LAUNCHER] layer is never visible when performing task
- * transitions.
- * A solid color background should be shown above it.
+ * transitions. A solid color background should be shown above it.
*/
@Postsubmit
@Test
fun launcherLayerIsNeverVisible() {
- testSpec.assertLayers {
- this.isInvisible(ComponentNameMatcher.LAUNCHER)
- }
+ testSpec.assertLayers { this.isInvisible(ComponentNameMatcher.LAUNCHER) }
}
- /**
- * Checks that a color background is visible while the task transition is occurring.
- */
+ /** Checks that a color background is visible while the task transition is occurring. */
@Postsubmit
@Test
fun colorLayerIsVisibleDuringTransition() {
@@ -138,8 +124,8 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
testSpec.assertLayers {
this.invoke("LAUNCH_NEW_TASK_ACTIVITY coversExactly displayBounds") {
- it.visibleRegion(LAUNCH_NEW_TASK_ACTIVITY).coversExactly(displayBounds)
- }
+ it.visibleRegion(LAUNCH_NEW_TASK_ACTIVITY).coversExactly(displayBounds)
+ }
.isInvisible(bgColorLayer)
.then()
// Transitioning
@@ -163,8 +149,8 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
}
/**
- * Checks that we start with the LaunchNewTask activity on top and then open up
- * the SimpleActivity and then go back to the LaunchNewTask activity.
+ * Checks that we start with the LaunchNewTask activity on top and then open up the
+ * SimpleActivity and then go back to the LaunchNewTask activity.
*/
@Postsubmit
@Test
@@ -183,9 +169,7 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
}
/** {@inheritDoc} */
- @Postsubmit
- @Test
- override fun entireScreenCovered() = super.entireScreenCovered()
+ @Postsubmit @Test override fun entireScreenCovered() = super.entireScreenCovered()
/** {@inheritDoc} */
@Postsubmit
@@ -206,8 +190,7 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
/** {@inheritDoc} */
@Postsubmit
@Test
- override fun statusBarLayerPositionAtStartAndEnd() =
- super.statusBarLayerPositionAtStartAndEnd()
+ override fun statusBarLayerPositionAtStartAndEnd() = super.statusBarLayerPositionAtStartAndEnd()
/** {@inheritDoc} */
@Postsubmit
@@ -255,8 +238,7 @@ class TaskTransitionTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigNonRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt
index 87ae8435deab..3f1a4180409f 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest.kt
@@ -45,18 +45,17 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:QuickSwitchBetweenTwoAppsBackTest`
*
* Actions:
+ * ```
* Launch an app [testApp1]
* Launch another app [testApp2]
* Swipe right from the bottom of the screen to quick switch back to the first app [testApp1]
- *
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class QuickSwitchBetweenTwoAppsBackTest(
- testSpec: FlickerTestParameter
-) : BaseTest(testSpec) {
+open class QuickSwitchBetweenTwoAppsBackTest(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
private val testApp1 = SimpleAppHelper(instrumentation)
private val testApp2 = NonResizeableAppHelper(instrumentation)
@@ -71,12 +70,13 @@ open class QuickSwitchBetweenTwoAppsBackTest(
tapl.setExpectedRotation(testSpec.startRotation)
testApp1.launchViaIntent(wmHelper)
testApp2.launchViaIntent(wmHelper)
- startDisplayBounds = wmHelper.currentState.layerState
- .physicalDisplayBounds ?: error("Display not found")
+ startDisplayBounds =
+ wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found")
}
transitions {
tapl.launchedAppState.quickSwitchToPreviousApp()
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withFullScreenApp(testApp1)
.withNavOrTaskBarVisible()
.withStatusBarVisible()
@@ -96,9 +96,7 @@ open class QuickSwitchBetweenTwoAppsBackTest(
@Presubmit
@Test
open fun startsWithApp2WindowsCoverFullScreen() {
- testSpec.assertWmStart {
- this.visibleRegion(testApp2).coversExactly(startDisplayBounds)
- }
+ testSpec.assertWmStart { this.visibleRegion(testApp2).coversExactly(startDisplayBounds) }
}
/**
@@ -113,15 +111,11 @@ open class QuickSwitchBetweenTwoAppsBackTest(
}
}
- /**
- * Checks that the transition starts with [testApp2] being the top window.
- */
+ /** Checks that the transition starts with [testApp2] being the top window. */
@Presubmit
@Test
open fun startsWithApp2WindowBeingOnTop() {
- testSpec.assertWmStart {
- this.isAppWindowOnTop(testApp2)
- }
+ testSpec.assertWmStart { this.isAppWindowOnTop(testApp2) }
}
/**
@@ -131,21 +125,17 @@ open class QuickSwitchBetweenTwoAppsBackTest(
@Presubmit
@Test
open fun endsWithApp1WindowsCoveringFullScreen() {
- testSpec.assertWmEnd {
- this.visibleRegion(testApp1).coversExactly(startDisplayBounds)
- }
+ testSpec.assertWmEnd { this.visibleRegion(testApp1).coversExactly(startDisplayBounds) }
}
/**
- * Checks that [testApp1] layers fill the entire screen (i.e. is "fullscreen") at the end of
- * the transition once we have fully quick switched from [testApp2] back to the [testApp1].
+ * Checks that [testApp1] layers fill the entire screen (i.e. is "fullscreen") at the end of the
+ * transition once we have fully quick switched from [testApp2] back to the [testApp1].
*/
@Presubmit
@Test
fun endsWithApp1LayersCoveringFullScreen() {
- testSpec.assertLayersEnd {
- this.visibleRegion(testApp1).coversExactly(startDisplayBounds)
- }
+ testSpec.assertLayersEnd { this.visibleRegion(testApp1).coversExactly(startDisplayBounds) }
}
/**
@@ -155,14 +145,12 @@ open class QuickSwitchBetweenTwoAppsBackTest(
@Presubmit
@Test
open fun endsWithApp1BeingOnTop() {
- testSpec.assertWmEnd {
- this.isAppWindowOnTop(testApp1)
- }
+ testSpec.assertWmEnd { this.isAppWindowOnTop(testApp1) }
}
/**
- * Checks that [testApp1]'s window starts off invisible and becomes visible at some point
- * before the end of the transition and then stays visible until the end of the transition.
+ * Checks that [testApp1]'s window starts off invisible and becomes visible at some point before
+ * the end of the transition and then stays visible until the end of the transition.
*/
@Presubmit
@Test
@@ -177,45 +165,35 @@ open class QuickSwitchBetweenTwoAppsBackTest(
}
/**
- * Checks that [testApp1]'s layer starts off invisible and becomes visible at some point
- * before the end of the transition and then stays visible until the end of the transition.
+ * Checks that [testApp1]'s layer starts off invisible and becomes visible at some point before
+ * the end of the transition and then stays visible until the end of the transition.
*/
@Presubmit
@Test
open fun app1LayerBecomesAndStaysVisible() {
- testSpec.assertLayers {
- this.isInvisible(testApp1)
- .then()
- .isVisible(testApp1)
- }
+ testSpec.assertLayers { this.isInvisible(testApp1).then().isVisible(testApp1) }
}
/**
- * Checks that [testApp2]'s window starts off visible and becomes invisible at some point
- * before the end of the transition and then stays invisible until the end of the transition.
+ * Checks that [testApp2]'s window starts off visible and becomes invisible at some point before
+ * the end of the transition and then stays invisible until the end of the transition.
*/
@Presubmit
@Test
open fun app2WindowBecomesAndStaysInvisible() {
testSpec.assertWm {
- this.isAppWindowVisible(testApp2)
- .then()
- .isAppWindowInvisible(testApp2)
+ this.isAppWindowVisible(testApp2).then().isAppWindowInvisible(testApp2)
}
}
/**
- * Checks that [testApp2]'s layer starts off visible and becomes invisible at some point
- * before the end of the transition and then stays invisible until the end of the transition.
+ * Checks that [testApp2]'s layer starts off visible and becomes invisible at some point before
+ * the end of the transition and then stays invisible until the end of the transition.
*/
@Presubmit
@Test
open fun app2LayerBecomesAndStaysInvisible() {
- testSpec.assertLayers {
- this.isVisible(testApp2)
- .then()
- .isInvisible(testApp2)
- }
+ testSpec.assertLayers { this.isVisible(testApp2).then().isInvisible(testApp2) }
}
/**
@@ -274,9 +252,8 @@ open class QuickSwitchBetweenTwoAppsBackTest(
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
.getConfigNonRotationTests(
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- ),
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY),
supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90)
)
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest_ShellTransit.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest_ShellTransit.kt
index 21652d922feb..7a1350e5bbfa 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest_ShellTransit.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsBackTest_ShellTransit.kt
@@ -38,18 +38,18 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:QuickSwitchBetweenTwoAppsBackTest`
*
* Actions:
+ * ```
* Launch an app [testApp1]
* Launch another app [testApp2]
* Swipe right from the bottom of the screen to quick switch back to the first app [testApp1]
- *
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class QuickSwitchBetweenTwoAppsBackTest_ShellTransit(
- testSpec: FlickerTestParameter
-) : QuickSwitchBetweenTwoAppsBackTest(testSpec) {
+open class QuickSwitchBetweenTwoAppsBackTest_ShellTransit(testSpec: FlickerTestParameter) :
+ QuickSwitchBetweenTwoAppsBackTest(testSpec) {
@Before
override fun before() {
Assume.assumeTrue(isShellTransitionsEnabled)
@@ -61,8 +61,8 @@ open class QuickSwitchBetweenTwoAppsBackTest_ShellTransit(
override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/**
- * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the start
- * and end of the WM trace
+ * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the
+ * start and end of the WM trace
*/
@Presubmit
@Test
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt
index 64259105411a..0a21044f6dda 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest.kt
@@ -45,18 +45,19 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:QuickSwitchBetweenTwoAppsForwardTest`
*
* Actions:
+ * ```
* Launch an app [testApp1]
* Launch another app [testApp2]
* Swipe right from the bottom of the screen to quick switch back to the first app [testApp1]
* Swipe left from the bottom of the screen to quick switch forward to the second app [testApp2]
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class QuickSwitchBetweenTwoAppsForwardTest(
- testSpec: FlickerTestParameter
-) : BaseTest(testSpec) {
+open class QuickSwitchBetweenTwoAppsForwardTest(testSpec: FlickerTestParameter) :
+ BaseTest(testSpec) {
private val testApp1 = SimpleAppHelper(instrumentation)
private val testApp2 = NonResizeableAppHelper(instrumentation)
@@ -68,22 +69,24 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
setup {
- tapl.setExpectedRotation(testSpec.startRotation)
+ tapl.setExpectedRotation(testSpec.startRotation)
- testApp1.launchViaIntent(wmHelper)
- testApp2.launchViaIntent(wmHelper)
- tapl.launchedAppState.quickSwitchToPreviousApp()
- wmHelper.StateSyncBuilder()
- .withFullScreenApp(testApp1)
- .withNavOrTaskBarVisible()
- .withStatusBarVisible()
- .waitForAndVerify()
- startDisplayBounds = wmHelper.currentState.layerState
- .physicalDisplayBounds ?: error("Display not found")
+ testApp1.launchViaIntent(wmHelper)
+ testApp2.launchViaIntent(wmHelper)
+ tapl.launchedAppState.quickSwitchToPreviousApp()
+ wmHelper
+ .StateSyncBuilder()
+ .withFullScreenApp(testApp1)
+ .withNavOrTaskBarVisible()
+ .withStatusBarVisible()
+ .waitForAndVerify()
+ startDisplayBounds =
+ wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found")
}
transitions {
tapl.launchedAppState.quickSwitchToPreviousAppSwipeLeft()
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withFullScreenApp(testApp2)
.withNavOrTaskBarVisible()
.withStatusBarVisible()
@@ -121,15 +124,11 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
}
}
- /**
- * Checks that the transition starts with [testApp1] being the top window.
- */
+ /** Checks that the transition starts with [testApp1] being the top window. */
@Presubmit
@Test
open fun startsWithApp1WindowBeingOnTop() {
- testSpec.assertWmStart {
- this.isAppWindowOnTop(testApp1)
- }
+ testSpec.assertWmStart { this.isAppWindowOnTop(testApp1) }
}
/**
@@ -139,9 +138,7 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
@Presubmit
@Test
open fun endsWithApp2WindowsCoveringFullScreen() {
- testSpec.assertWmEnd {
- this.visibleRegion(testApp2).coversExactly(startDisplayBounds)
- }
+ testSpec.assertWmEnd { this.visibleRegion(testApp2).coversExactly(startDisplayBounds) }
}
/**
@@ -164,9 +161,7 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
@Presubmit
@Test
open fun endsWithApp2BeingOnTop() {
- testSpec.assertWmEnd {
- this.isAppWindowOnTop(testApp2)
- }
+ testSpec.assertWmEnd { this.isAppWindowOnTop(testApp2) }
}
/**
@@ -178,10 +173,10 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
open fun app2WindowBecomesAndStaysVisible() {
testSpec.assertWm {
this.isAppWindowInvisible(testApp2)
- .then()
- .isAppWindowVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isAppWindowVisible(testApp2)
+ .then()
+ .isAppWindowVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isAppWindowVisible(testApp2)
}
}
@@ -192,11 +187,7 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
@Presubmit
@Test
open fun app2LayerBecomesAndStaysVisible() {
- testSpec.assertLayers {
- this.isInvisible(testApp2)
- .then()
- .isVisible(testApp2)
- }
+ testSpec.assertLayers { this.isInvisible(testApp2).then().isVisible(testApp2) }
}
/**
@@ -207,9 +198,7 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
@Test
open fun app1WindowBecomesAndStaysInvisible() {
testSpec.assertWm {
- this.isAppWindowVisible(testApp1)
- .then()
- .isAppWindowInvisible(testApp1)
+ this.isAppWindowVisible(testApp1).then().isAppWindowInvisible(testApp1)
}
}
@@ -220,11 +209,7 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
@Presubmit
@Test
open fun app1LayerBecomesAndStaysInvisible() {
- testSpec.assertLayers {
- this.isVisible(testApp1)
- .then()
- .isInvisible(testApp1)
- }
+ testSpec.assertLayers { this.isVisible(testApp1).then().isInvisible(testApp1) }
}
/**
@@ -237,12 +222,12 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
open fun app2WindowIsVisibleOnceApp1WindowIsInvisible() {
testSpec.assertWm {
this.isAppWindowVisible(testApp1)
- .then()
- .isAppWindowVisible(ComponentNameMatcher.LAUNCHER, isOptional = true)
- .then()
- .isAppWindowVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isAppWindowVisible(testApp2)
+ .then()
+ .isAppWindowVisible(ComponentNameMatcher.LAUNCHER, isOptional = true)
+ .then()
+ .isAppWindowVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isAppWindowVisible(testApp2)
}
}
@@ -256,12 +241,12 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
open fun app2LayerIsVisibleOnceApp1LayerIsInvisible() {
testSpec.assertLayers {
this.isVisible(testApp1)
- .then()
- .isVisible(ComponentNameMatcher.LAUNCHER, isOptional = true)
- .then()
- .isVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isVisible(testApp2)
+ .then()
+ .isVisible(ComponentNameMatcher.LAUNCHER, isOptional = true)
+ .then()
+ .isVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isVisible(testApp2)
}
}
@@ -281,12 +266,11 @@ open class QuickSwitchBetweenTwoAppsForwardTest(
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- ),
- supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90)
- )
+ .getConfigNonRotationTests(
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY),
+ supportedRotations = listOf(Surface.ROTATION_0, Surface.ROTATION_90)
+ )
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest_ShellTransit.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest_ShellTransit.kt
index 2f72fad23942..03647c9801c7 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest_ShellTransit.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchBetweenTwoAppsForwardTest_ShellTransit.kt
@@ -38,18 +38,19 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:QuickSwitchBetweenTwoAppsForwardTest`
*
* Actions:
+ * ```
* Launch an app [testApp1]
* Launch another app [testApp2]
* Swipe right from the bottom of the screen to quick switch back to the first app [testApp1]
* Swipe left from the bottom of the screen to quick switch forward to the second app [testApp2]
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class QuickSwitchBetweenTwoAppsForwardTest_ShellTransit(
- testSpec: FlickerTestParameter
-) : QuickSwitchBetweenTwoAppsForwardTest(testSpec) {
+open class QuickSwitchBetweenTwoAppsForwardTest_ShellTransit(testSpec: FlickerTestParameter) :
+ QuickSwitchBetweenTwoAppsForwardTest(testSpec) {
@Before
override fun before() {
Assume.assumeTrue(isShellTransitionsEnabled)
@@ -61,8 +62,8 @@ open class QuickSwitchBetweenTwoAppsForwardTest_ShellTransit(
override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/**
- * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the start
- * and end of the WM trace
+ * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the
+ * start and end of the WM trace
*/
@Presubmit
@Test
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt
index 702c2cf0ace6..3cb985a925b1 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/quickswitch/QuickSwitchFromLauncherTest.kt
@@ -45,10 +45,11 @@ import org.junit.runners.Parameterized
* To run this test: `atest FlickerTests:QuickSwitchFromLauncherTest`
*
* Actions:
+ * ```
* Launch an app
* Navigate home to show launcher
* Swipe right from the bottom of the screen to quick switch back to the app
- *
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@@ -66,25 +67,25 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
testApp.launchViaIntent(wmHelper)
tapl.goHome()
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withHomeActivityVisible()
.withWindowSurfaceDisappeared(testApp)
.waitForAndVerify()
- startDisplayBounds = wmHelper.currentState.layerState
- .physicalDisplayBounds ?: error("Display not found")
+ startDisplayBounds =
+ wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found")
}
transitions {
tapl.workspace.quickSwitchToPreviousApp()
- wmHelper.StateSyncBuilder()
+ wmHelper
+ .StateSyncBuilder()
.withFullScreenApp(testApp)
.withNavOrTaskBarVisible()
.withStatusBarVisible()
.waitForAndVerify()
}
- teardown {
- testApp.exit(wmHelper)
- }
+ teardown { testApp.exit(wmHelper) }
}
/**
@@ -94,9 +95,7 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun endsWithAppWindowsCoveringFullScreen() {
- testSpec.assertWmEnd {
- this.visibleRegion(testApp).coversExactly(startDisplayBounds)
- }
+ testSpec.assertWmEnd { this.visibleRegion(testApp).coversExactly(startDisplayBounds) }
}
/**
@@ -106,9 +105,7 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun endsWithAppLayersCoveringFullScreen() {
- testSpec.assertLayersEnd {
- this.visibleRegion(testApp).coversExactly(startDisplayBounds)
- }
+ testSpec.assertLayersEnd { this.visibleRegion(testApp).coversExactly(startDisplayBounds) }
}
/**
@@ -118,20 +115,14 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun endsWithAppBeingOnTop() {
- testSpec.assertWmEnd {
- this.isAppWindowOnTop(testApp)
- }
+ testSpec.assertWmEnd { this.isAppWindowOnTop(testApp) }
}
- /**
- * Checks that the transition starts with the home activity being tagged as visible.
- */
+ /** Checks that the transition starts with the home activity being tagged as visible. */
@Presubmit
@Test
fun startsWithHomeActivityFlaggedVisible() {
- testSpec.assertWmStart {
- this.isHomeActivityVisible()
- }
+ testSpec.assertWmStart { this.isHomeActivityVisible() }
}
/**
@@ -164,9 +155,7 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun startsWithLauncherBeingOnTop() {
- testSpec.assertWmStart {
- this.isAppWindowOnTop(ComponentNameMatcher.LAUNCHER)
- }
+ testSpec.assertWmStart { this.isAppWindowOnTop(ComponentNameMatcher.LAUNCHER) }
}
/**
@@ -176,9 +165,7 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun endsWithHomeActivityFlaggedInvisible() {
- testSpec.assertWmEnd {
- this.isHomeActivityInvisible()
- }
+ testSpec.assertWmEnd { this.isHomeActivityInvisible() }
}
/**
@@ -188,11 +175,7 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun appWindowBecomesAndStaysVisible() {
- testSpec.assertWm {
- this.isAppWindowInvisible(testApp)
- .then()
- .isAppWindowVisible(testApp)
- }
+ testSpec.assertWm { this.isAppWindowInvisible(testApp).then().isAppWindowVisible(testApp) }
}
/**
@@ -202,63 +185,59 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@Presubmit
@Test
fun appLayerBecomesAndStaysVisible() {
- testSpec.assertLayers {
- this.isInvisible(testApp)
- .then()
- .isVisible(testApp)
- }
+ testSpec.assertLayers { this.isInvisible(testApp).then().isVisible(testApp) }
}
/**
* Checks that the [ComponentMatcher.LAUNCHER] window starts off visible and becomes invisible
- * at some point before
- * the end of the transition and then stays invisible until the end of the transition.
+ * at some point before the end of the transition and then stays invisible until the end of the
+ * transition.
*/
@Presubmit
@Test
fun launcherWindowBecomesAndStaysInvisible() {
testSpec.assertWm {
this.isAppWindowOnTop(ComponentNameMatcher.LAUNCHER)
- .then()
- .isAppWindowNotOnTop(ComponentNameMatcher.LAUNCHER)
+ .then()
+ .isAppWindowNotOnTop(ComponentNameMatcher.LAUNCHER)
}
}
/**
- * Checks that the [ComponentMatcher.LAUNCHER] layer starts off visible and becomes invisible
- * at some point before
- * the end of the transition and then stays invisible until the end of the transition.
+ * Checks that the [ComponentMatcher.LAUNCHER] layer starts off visible and becomes invisible at
+ * some point before the end of the transition and then stays invisible until the end of the
+ * transition.
*/
@Presubmit
@Test
fun launcherLayerBecomesAndStaysInvisible() {
testSpec.assertLayers {
this.isVisible(ComponentNameMatcher.LAUNCHER)
- .then()
- .isInvisible(ComponentNameMatcher.LAUNCHER)
+ .then()
+ .isInvisible(ComponentNameMatcher.LAUNCHER)
}
}
/**
* Checks that the [ComponentMatcher.LAUNCHER] window is visible at least until the app window
- * is visible. Ensures
- * that at any point, either the launcher or [testApp] windows are at least partially visible.
+ * is visible. Ensures that at any point, either the launcher or [testApp] windows are at least
+ * partially visible.
*/
@Presubmit
@Test
fun appWindowIsVisibleOnceLauncherWindowIsInvisible() {
testSpec.assertWm {
this.isAppWindowOnTop(ComponentNameMatcher.LAUNCHER)
- .then()
- .isAppWindowVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isAppWindowVisible(testApp)
+ .then()
+ .isAppWindowVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isAppWindowVisible(testApp)
}
}
/**
- * Checks that the [ComponentMatcher.LAUNCHER] layer is visible at least until the app layer
- * is visible. Ensures that at any point, either the launcher or [testApp] layers are at least
+ * Checks that the [ComponentMatcher.LAUNCHER] layer is visible at least until the app layer is
+ * visible. Ensures that at any point, either the launcher or [testApp] layers are at least
* partially visible.
*/
@Presubmit
@@ -266,10 +245,10 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
fun appLayerIsVisibleOnceLauncherLayerIsInvisible() {
testSpec.assertLayers {
this.isVisible(ComponentNameMatcher.LAUNCHER)
- .then()
- .isVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
- .then()
- .isVisible(testApp)
+ .then()
+ .isVisible(ComponentNameMatcher.SNAPSHOT, isOptional = true)
+ .then()
+ .isVisible(testApp)
}
}
@@ -284,8 +263,8 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
override fun navBarWindowIsAlwaysVisible() = super.navBarWindowIsAlwaysVisible()
/**
- * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the start
- * and end of the WM trace
+ * Checks that [ComponentMatcher.NAV_BAR] window is visible and above the app windows at the
+ * start and end of the WM trace
*/
@Presubmit
@Test
@@ -316,13 +295,12 @@ class QuickSwitchFromLauncherTest(testSpec: FlickerTestParameter) : BaseTest(tes
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
return FlickerTestParameterFactory.getInstance()
- .getConfigNonRotationTests(
- supportedNavigationModes = listOf(
- WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY
- ),
- // TODO: Test with 90 rotation
- supportedRotations = listOf(Surface.ROTATION_0)
- )
+ .getConfigNonRotationTests(
+ supportedNavigationModes =
+ listOf(WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY),
+ // TODO: Test with 90 rotation
+ supportedRotations = listOf(Surface.ROTATION_0)
+ )
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt
index 3ca58f2b70c0..1973ec0a98a8 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/ChangeAppRotationTest.kt
@@ -35,51 +35,54 @@ import org.junit.runners.Parameterized
* Test opening an app and cycling through app rotations
*
* Currently runs:
+ * ```
* 0 -> 90 degrees
* 90 -> 0 degrees
- *
+ * ```
* Actions:
+ * ```
* Launch an app (via intent)
* Set initial device orientation
* Start tracing
* Change device orientation
* Stop tracing
- *
+ * ```
* To run this test: `atest FlickerTests:ChangeAppRotationTest`
*
* To run only the presubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit`
- *
+ * ```
* To run only the postsubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit`
- *
+ * ```
* To run only the flaky assertions add: `--
+ * ```
* --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest`
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [RotationTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-class ChangeAppRotationTest(
- testSpec: FlickerTestParameter
-) : RotationTransition(testSpec) {
+class ChangeAppRotationTest(testSpec: FlickerTestParameter) : RotationTransition(testSpec) {
override val testApp = SimpleAppHelper(instrumentation)
override val transition: FlickerBuilder.() -> Unit
get() = {
super.transition(this)
- setup {
- testApp.launchViaIntent(wmHelper)
- }
+ setup { testApp.launchViaIntent(wmHelper) }
}
/**
@@ -89,14 +92,12 @@ class ChangeAppRotationTest(
@Presubmit
@Test
fun focusChanges() {
- testSpec.assertEventLog {
- this.focusChanges(testApp.`package`)
- }
+ testSpec.assertEventLog { this.focusChanges(testApp.`package`) }
}
/**
- * Checks that the [ComponentMatcher.ROTATION] layer appears during the transition,
- * doesn't flicker, and disappears before the transition is complete
+ * Checks that the [ComponentMatcher.ROTATION] layer appears during the transition, doesn't
+ * flicker, and disappears before the transition is complete
*/
fun rotationLayerAppearsAndVanishesAssertion() {
testSpec.assertLayers {
@@ -110,8 +111,8 @@ class ChangeAppRotationTest(
}
/**
- * Checks that the [ComponentMatcher.ROTATION] layer appears during the transition,
- * doesn't flicker, and disappears before the transition is complete
+ * Checks that the [ComponentMatcher.ROTATION] layer appears during the transition, doesn't
+ * flicker, and disappears before the transition is complete
*/
@Presubmit
@Test
@@ -122,21 +123,19 @@ class ChangeAppRotationTest(
/** {@inheritDoc} */
@FlakyTest(bugId = 206753786)
@Test
- override fun navBarLayerPositionAtStartAndEnd() =
- super.navBarLayerPositionAtStartAndEnd()
+ override fun navBarLayerPositionAtStartAndEnd() = super.navBarLayerPositionAtStartAndEnd()
companion object {
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic
fun getParams(): Collection<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigRotationTests()
+ return FlickerTestParameterFactory.getInstance().getConfigRotationTests()
}
}
}
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt
index afe2ea678e39..4faeb246037e 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/RotationTransition.kt
@@ -25,23 +25,15 @@ import com.android.server.wm.flicker.helpers.setRotation
import com.android.server.wm.traces.common.ComponentNameMatcher
import org.junit.Test
-/**
- * Base class for app rotation tests
- */
+/** Base class for app rotation tests */
abstract class RotationTransition(testSpec: FlickerTestParameter) : BaseTest(testSpec) {
protected abstract val testApp: StandardAppHelper
/** {@inheritDoc} */
override val transition: FlickerBuilder.() -> Unit = {
- setup {
- this.setRotation(testSpec.startRotation)
- }
- teardown {
- testApp.exit(wmHelper)
- }
- transitions {
- this.setRotation(testSpec.endRotation)
- }
+ setup { this.setRotation(testSpec.startRotation) }
+ teardown { testApp.exit(wmHelper) }
+ transitions { this.setRotation(testSpec.endRotation) }
}
/** {@inheritDoc} */
@@ -50,18 +42,17 @@ abstract class RotationTransition(testSpec: FlickerTestParameter) : BaseTest(tes
override fun visibleLayersShownMoreThanOneConsecutiveEntry() {
testSpec.assertLayers {
this.visibleLayersShownMoreThanOneConsecutiveEntry(
- ignoreLayers = listOf(
- ComponentNameMatcher.SPLASH_SCREEN,
- ComponentNameMatcher.SNAPSHOT,
- ComponentNameMatcher("", "SecondaryHomeHandle")
- )
+ ignoreLayers =
+ listOf(
+ ComponentNameMatcher.SPLASH_SCREEN,
+ ComponentNameMatcher.SNAPSHOT,
+ ComponentNameMatcher("", "SecondaryHomeHandle")
+ )
)
}
}
- /**
- * Checks that [testApp] layer covers the entire screen at the start of the transition
- */
+ /** Checks that [testApp] layer covers the entire screen at the start of the transition */
@Presubmit
@Test
open fun appLayerRotates_StartingPos() {
@@ -72,9 +63,7 @@ abstract class RotationTransition(testSpec: FlickerTestParameter) : BaseTest(tes
}
}
- /**
- * Checks that [testApp] layer covers the entire screen at the end of the transition
- */
+ /** Checks that [testApp] layer covers the entire screen at the end of the transition */
@Presubmit
@Test
open fun appLayerRotates_EndingPos() {
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt b/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt
index 11e07ebff19e..a08db29fe7a4 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/rotation/SeamlessAppRotationTest.kt
@@ -38,46 +38,51 @@ import org.junit.runners.Parameterized
* Test opening an app and cycling through app rotations using seamless rotations
*
* Currently runs:
+ * ```
* 0 -> 90 degrees
* 0 -> 90 degrees (with starved UI thread)
* 90 -> 0 degrees
* 90 -> 0 degrees (with starved UI thread)
- *
+ * ```
* Actions:
+ * ```
* Launch an app in fullscreen and supporting seamless rotation (via intent)
* Set initial device orientation
* Start tracing
* Change device orientation
* Stop tracing
- *
+ * ```
* To run this test: `atest FlickerTests:SeamlessAppRotationTest`
*
* To run only the presubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Presubmit`
- *
+ * ```
* To run only the postsubmit assertions add: `--
+ * ```
* --module-arg FlickerTests:exclude-annotation:androidx.test.filters.FlakyTest
* --module-arg FlickerTests:include-annotation:android.platform.test.annotations.Postsubmit`
- *
+ * ```
* To run only the flaky assertions add: `--
+ * ```
* --module-arg FlickerTests:include-annotation:androidx.test.filters.FlakyTest`
- *
+ * ```
* Notes:
+ * ```
* 1. Some default assertions (e.g., nav bar, status bar and screen covered)
* are inherited [RotationTransition]
* 2. Part of the test setup occurs automatically via
* [com.android.server.wm.flicker.TransitionRunnerWithRules],
* including configuring navigation mode, initial orientation and ensuring no
* apps are running before setup
+ * ```
*/
@RequiresDevice
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-open class SeamlessAppRotationTest(
- testSpec: FlickerTestParameter
-) : RotationTransition(testSpec) {
+open class SeamlessAppRotationTest(testSpec: FlickerTestParameter) : RotationTransition(testSpec) {
override val testApp = SeamlessRotationAppHelper(instrumentation)
/** {@inheritDoc} */
@@ -87,17 +92,16 @@ open class SeamlessAppRotationTest(
setup {
testApp.launchViaIntent(
wmHelper,
- stringExtras = mapOf(
- ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD
- to testSpec.starveUiThread.toString()
- )
+ stringExtras =
+ mapOf(
+ ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD to
+ testSpec.starveUiThread.toString()
+ )
)
}
}
- /**
- * Checks that [testApp] window is always in full screen
- */
+ /** Checks that [testApp] window is always in full screen */
@Presubmit
@Test
fun appWindowFullScreen() {
@@ -105,16 +109,15 @@ open class SeamlessAppRotationTest(
this.invoke("isFullScreen") {
val appWindow = it.windowState(testApp.`package`)
val flags = appWindow.windowState?.attributes?.flags ?: 0
- appWindow.verify("isFullScreen")
+ appWindow
+ .verify("isFullScreen")
.that(flags.and(WindowManager.LayoutParams.FLAG_FULLSCREEN))
.isGreaterThan(0)
}
}
}
- /**
- * Checks that [testApp] window is always with seamless rotation
- */
+ /** Checks that [testApp] window is always with seamless rotation */
@Presubmit
@Test
fun appWindowSeamlessRotation() {
@@ -122,38 +125,33 @@ open class SeamlessAppRotationTest(
this.invoke("isRotationSeamless") {
val appWindow = it.windowState(testApp.`package`)
val rotationAnimation = appWindow.windowState?.attributes?.rotationAnimation ?: 0
- appWindow.verify("isRotationSeamless")
+ appWindow
+ .verify("isRotationSeamless")
.that(
- rotationAnimation
- .and(WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS)
+ rotationAnimation.and(
+ WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS
+ )
)
.isGreaterThan(0)
}
}
}
- /**
- * Checks that [testApp] window is always visible
- */
+ /** Checks that [testApp] window is always visible */
@Presubmit
@Test
fun appLayerAlwaysVisible() {
- testSpec.assertLayers {
- isVisible(testApp)
- }
+ testSpec.assertLayers { isVisible(testApp) }
}
- /**
- * Checks that [testApp] layer covers the entire screen during the whole transition
- */
+ /** Checks that [testApp] layer covers the entire screen during the whole transition */
@Presubmit
@Test
fun appLayerRotates() {
testSpec.assertLayers {
this.invoke("entireScreenCovered") { entry ->
entry.entry.displays.map { display ->
- entry.visibleRegion(testApp)
- .coversExactly(display.layerStackSpace)
+ entry.visibleRegion(testApp).coversExactly(display.layerStackSpace)
}
}
}
@@ -162,20 +160,17 @@ open class SeamlessAppRotationTest(
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. App is full screen")
- override fun statusBarLayerPositionAtStartAndEnd() {
- }
+ override fun statusBarLayerPositionAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. App is full screen")
- override fun statusBarLayerIsVisibleAtStartAndEnd() {
- }
+ override fun statusBarLayerIsVisibleAtStartAndEnd() {}
/** {@inheritDoc} */
@Test
@Ignore("Not applicable to this CUJ. App is full screen")
- override fun statusBarWindowIsAlwaysVisible() {
- }
+ override fun statusBarWindowIsAlwaysVisible() {}
/**
* Checks that the [ComponentNameMatcher.STATUS_BAR] window is invisible during the whole
@@ -184,9 +179,7 @@ open class SeamlessAppRotationTest(
@Presubmit
@Test
fun statusBarWindowIsAlwaysInvisible() {
- testSpec.assertWm {
- this.isAboveAppWindowInvisible(ComponentNameMatcher.STATUS_BAR)
- }
+ testSpec.assertWm { this.isAboveAppWindowInvisible(ComponentNameMatcher.STATUS_BAR) }
}
/**
@@ -196,20 +189,14 @@ open class SeamlessAppRotationTest(
@Presubmit
@Test
fun statusBarLayerIsAlwaysInvisible() {
- testSpec.assertLayers {
- this.isInvisible(ComponentNameMatcher.STATUS_BAR)
- }
+ testSpec.assertLayers { this.isInvisible(ComponentNameMatcher.STATUS_BAR) }
}
- /**
- * Checks that the focus doesn't change during animation
- */
+ /** Checks that the focus doesn't change during animation */
@Presubmit
@Test
fun focusDoesNotChange() {
- testSpec.assertEventLog {
- this.focusDoesNotChange()
- }
+ testSpec.assertEventLog { this.focusDoesNotChange() }
}
/** {@inheritDoc} */
@@ -219,15 +206,16 @@ open class SeamlessAppRotationTest(
companion object {
private val FlickerTestParameter.starveUiThread
- get() = config.getOrDefault(
- ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD, false) as Boolean
+ get() =
+ config.getOrDefault(ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD, false)
+ as Boolean
private fun createConfig(
sourceConfig: FlickerTestParameter,
starveUiThread: Boolean
): FlickerTestParameter {
- val newConfig = sourceConfig.config.toMutableMap()
- .also {
+ val newConfig =
+ sourceConfig.config.toMutableMap().also {
it[ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD] = starveUiThread
}
val nameExt = if (starveUiThread) "_BUSY_UI_THREAD" else ""
@@ -235,27 +223,26 @@ open class SeamlessAppRotationTest(
}
/**
- * Creates the test configurations for seamless rotation based on the default rotation
- * tests from [FlickerTestParameterFactory.getConfigRotationTests], but adding an
- * additional flag ([ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD]) to indicate
- * if the app should starve the UI thread of not
+ * Creates the test configurations for seamless rotation based on the default rotation tests
+ * from [FlickerTestParameterFactory.getConfigRotationTests], but adding an additional flag
+ * ([ActivityOptions.SeamlessRotation.EXTRA_STARVE_UI_THREAD]) to indicate if the app should
+ * starve the UI thread of not
*/
@JvmStatic
private fun getConfigurations(): List<FlickerTestParameter> {
- return FlickerTestParameterFactory.getInstance()
- .getConfigRotationTests()
- .flatMap { sourceConfig ->
- val defaultRun = createConfig(sourceConfig, starveUiThread = false)
- val busyUiRun = createConfig(sourceConfig, starveUiThread = true)
- listOf(defaultRun, busyUiRun)
- }
+ return FlickerTestParameterFactory.getInstance().getConfigRotationTests().flatMap {
+ sourceConfig ->
+ val defaultRun = createConfig(sourceConfig, starveUiThread = false)
+ val busyUiRun = createConfig(sourceConfig, starveUiThread = true)
+ listOf(defaultRun, busyUiRun)
+ }
}
/**
* Creates the test configurations.
*
- * See [FlickerTestParameterFactory.getConfigRotationTests] for configuring
- * repetitions, screen orientation and navigation modes.
+ * See [FlickerTestParameterFactory.getConfigRotationTests] for configuring repetitions,
+ * screen orientation and navigation modes.
*/
@Parameterized.Parameters(name = "{0}")
@JvmStatic