diff options
author | 2025-02-27 17:09:14 +0000 | |
---|---|---|
committer | 2025-03-03 08:23:33 -0800 | |
commit | 177ea8c143889bd59068af0ab7dc51fae1ad8a64 (patch) | |
tree | 25c0efad43a1bc4196f506f3096bd097df7c51e1 /tests | |
parent | 16e7d30039f11e32b4812259ee21d0aa122a13d8 (diff) |
Add 2 more CUJs for maximizing app via double tap and menu button.
Test: atest MaximizeAppViaHeaderMenuLandscape, etc.
Fixes: 399638902
Flag: EXEMPT adding flicker tests
Change-Id: I3abb7404be31bb605739360f51b639b1c71bd80e
Diffstat (limited to 'tests')
-rw-r--r-- | tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt | 49 |
1 files changed, 40 insertions, 9 deletions
diff --git a/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt index 55d6fd9b4a73..41e55a96a5df 100644 --- a/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt +++ b/tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt @@ -151,19 +151,42 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) : ?: error("Unable to find resource $MAXIMIZE_BUTTON_VIEW\n") } - /** Click maximise button on the app header for the given app. */ + /** Maximize a given app to fill the stable bounds. */ fun maximiseDesktopApp( wmHelper: WindowManagerStateHelper, device: UiDevice, - usingKeyboard: Boolean = false + trigger: MaximizeDesktopAppTrigger = MaximizeDesktopAppTrigger.MAXIMIZE_MENU, ) { - if (usingKeyboard) { - val keyEventHelper = KeyEventHelper(getInstrumentation()) - keyEventHelper.press(KEYCODE_EQUALS, META_META_ON) - } else { - val caption = getCaptionForTheApp(wmHelper, device) - val maximizeButton = getMaximizeButtonForTheApp(caption) - maximizeButton.click() + val caption = getCaptionForTheApp(wmHelper, device)!! + val maximizeButton = getMaximizeButtonForTheApp(caption) + + when (trigger) { + MaximizeDesktopAppTrigger.MAXIMIZE_MENU -> maximizeButton.click() + MaximizeDesktopAppTrigger.DOUBLE_TAP_APP_HEADER -> { + caption.click() + Thread.sleep(50) + caption.click() + } + + MaximizeDesktopAppTrigger.KEYBOARD_SHORTCUT -> { + val keyEventHelper = KeyEventHelper(getInstrumentation()) + keyEventHelper.press(KEYCODE_EQUALS, META_META_ON) + } + + MaximizeDesktopAppTrigger.MAXIMIZE_BUTTON_IN_MENU -> { + maximizeButton.longClick() + wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify() + val buttonResId = MAXIMIZE_BUTTON_IN_MENU + val maximizeMenu = getDesktopAppViewByRes(MAXIMIZE_MENU) + val maximizeButtonInMenu = + maximizeMenu + ?.wait( + Until.findObject(By.res(SYSTEMUI_PACKAGE, buttonResId)), + TIMEOUT.toMillis() + ) + ?: error("Unable to find object with resource id $buttonResId") + maximizeButtonInMenu.click() + } } wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify() } @@ -550,6 +573,13 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) : rightSideMatching } + enum class MaximizeDesktopAppTrigger { + MAXIMIZE_MENU, + DOUBLE_TAP_APP_HEADER, + KEYBOARD_SHORTCUT, + MAXIMIZE_BUTTON_IN_MENU + } + private companion object { val TIMEOUT: Duration = Duration.ofSeconds(3) const val SNAP_RESIZE_DRAG_INSET: Int = 5 // inset to avoid dragging to display edge @@ -561,6 +591,7 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) : const val DESKTOP_MODE_BUTTON: String = "desktop_button" const val SNAP_LEFT_BUTTON: String = "maximize_menu_snap_left_button" const val SNAP_RIGHT_BUTTON: String = "maximize_menu_snap_right_button" + const val MAXIMIZE_BUTTON_IN_MENU: String = "maximize_menu_size_toggle_button" const val MINIMIZE_BUTTON_VIEW: String = "minimize_window" const val HEADER_EMPTY_VIEW: String = "caption_handle" val caption: BySelector |