Loading libs/WindowManager/Shell/tests/e2e/desktopmode/flicker-service/src/com/android/wm/shell/flicker/MaximizeAppWithKeyboard.kt 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker import android.tools.Rotation.ROTATION_90 import android.tools.flicker.FlickerConfig import android.tools.flicker.annotation.ExpectedScenarios import android.tools.flicker.annotation.FlickerConfigProvider import android.tools.flicker.config.FlickerConfig import android.tools.flicker.config.FlickerServiceConfig import android.tools.flicker.junit.FlickerServiceJUnit4ClassRunner import com.android.wm.shell.flicker.DesktopModeFlickerScenarios.Companion.MAXIMIZE_APP import com.android.wm.shell.scenarios.MaximizeAppWindow import org.junit.Test import org.junit.runner.RunWith /** * Maximize app window by pressing META + = on the keyboard. * * Assert that the app window keeps the same increases in size, filling the vertical and horizontal * stable display bounds. */ @RunWith(FlickerServiceJUnit4ClassRunner::class) class MaximizeAppWithKeyboard : MaximizeAppWindow(rotation = ROTATION_90, usingKeyboard = true) { @ExpectedScenarios(["MAXIMIZE_APP"]) @Test override fun maximizeAppWindow() = super.maximizeAppWindow() companion object { @JvmStatic @FlickerConfigProvider fun flickerConfigProvider(): FlickerConfig = FlickerConfig().use(FlickerServiceConfig.DEFAULT).use(MAXIMIZE_APP) } } No newline at end of file libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MaximizeAppWindow.kt +9 −3 Original line number Diff line number Diff line Loading @@ -38,8 +38,11 @@ import org.junit.Test @Ignore("Test Base Class") abstract class MaximizeAppWindow constructor(private val rotation: Rotation = Rotation.ROTATION_0, isResizable: Boolean = true) { constructor( private val rotation: Rotation = Rotation.ROTATION_0, isResizable: Boolean = true, private val usingKeyboard: Boolean = false ) { private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation() private val tapl = LauncherInstrumentation() private val wmHelper = WindowManagerStateHelper(instrumentation) Loading @@ -55,6 +58,9 @@ constructor(private val rotation: Rotation = Rotation.ROTATION_0, isResizable: B @Before fun setup() { Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet) if (usingKeyboard) { Assume.assumeTrue(Flags.enableTaskResizingKeyboardShortcuts()) } tapl.setEnableRotation(true) tapl.setExpectedRotation(rotation.value) ChangeDisplayOrientationRule.setRotation(rotation) Loading @@ -63,7 +69,7 @@ constructor(private val rotation: Rotation = Rotation.ROTATION_0, isResizable: B @Test open fun maximizeAppWindow() { testApp.maximiseDesktopApp(wmHelper, device) testApp.maximiseDesktopApp(wmHelper, device, usingKeyboard = usingKeyboard) } @After Loading libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MinimizeAppWindows.kt +3 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ constructor( fun setup() { Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet) Assume.assumeTrue(Flags.enableMinimizeButton()) if (usingKeyboard) { Assume.assumeTrue(Flags.enableTaskResizingKeyboardShortcuts()) } tapl.setEnableRotation(true) tapl.setExpectedRotation(rotation.value) ChangeDisplayOrientationRule.setRotation(rotation) Loading tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt +14 −4 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.tools.device.apphelpers.IStandardAppHelper import android.tools.helpers.SYSTEMUI_PACKAGE import android.tools.traces.parsers.WindowManagerStateHelper import android.tools.traces.wm.WindowingMode import android.view.KeyEvent.KEYCODE_EQUALS import android.view.KeyEvent.KEYCODE_LEFT_BRACKET import android.view.KeyEvent.KEYCODE_MINUS import android.view.KeyEvent.KEYCODE_RIGHT_BRACKET Loading Loading @@ -147,10 +148,19 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) : } /** Click maximise button on the app header for the given app. */ fun maximiseDesktopApp(wmHelper: WindowManagerStateHelper, device: UiDevice) { fun maximiseDesktopApp( wmHelper: WindowManagerStateHelper, device: UiDevice, usingKeyboard: Boolean = false ) { 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() } wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify() } Loading Loading
libs/WindowManager/Shell/tests/e2e/desktopmode/flicker-service/src/com/android/wm/shell/flicker/MaximizeAppWithKeyboard.kt 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wm.shell.flicker import android.tools.Rotation.ROTATION_90 import android.tools.flicker.FlickerConfig import android.tools.flicker.annotation.ExpectedScenarios import android.tools.flicker.annotation.FlickerConfigProvider import android.tools.flicker.config.FlickerConfig import android.tools.flicker.config.FlickerServiceConfig import android.tools.flicker.junit.FlickerServiceJUnit4ClassRunner import com.android.wm.shell.flicker.DesktopModeFlickerScenarios.Companion.MAXIMIZE_APP import com.android.wm.shell.scenarios.MaximizeAppWindow import org.junit.Test import org.junit.runner.RunWith /** * Maximize app window by pressing META + = on the keyboard. * * Assert that the app window keeps the same increases in size, filling the vertical and horizontal * stable display bounds. */ @RunWith(FlickerServiceJUnit4ClassRunner::class) class MaximizeAppWithKeyboard : MaximizeAppWindow(rotation = ROTATION_90, usingKeyboard = true) { @ExpectedScenarios(["MAXIMIZE_APP"]) @Test override fun maximizeAppWindow() = super.maximizeAppWindow() companion object { @JvmStatic @FlickerConfigProvider fun flickerConfigProvider(): FlickerConfig = FlickerConfig().use(FlickerServiceConfig.DEFAULT).use(MAXIMIZE_APP) } } No newline at end of file
libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MaximizeAppWindow.kt +9 −3 Original line number Diff line number Diff line Loading @@ -38,8 +38,11 @@ import org.junit.Test @Ignore("Test Base Class") abstract class MaximizeAppWindow constructor(private val rotation: Rotation = Rotation.ROTATION_0, isResizable: Boolean = true) { constructor( private val rotation: Rotation = Rotation.ROTATION_0, isResizable: Boolean = true, private val usingKeyboard: Boolean = false ) { private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation() private val tapl = LauncherInstrumentation() private val wmHelper = WindowManagerStateHelper(instrumentation) Loading @@ -55,6 +58,9 @@ constructor(private val rotation: Rotation = Rotation.ROTATION_0, isResizable: B @Before fun setup() { Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet) if (usingKeyboard) { Assume.assumeTrue(Flags.enableTaskResizingKeyboardShortcuts()) } tapl.setEnableRotation(true) tapl.setExpectedRotation(rotation.value) ChangeDisplayOrientationRule.setRotation(rotation) Loading @@ -63,7 +69,7 @@ constructor(private val rotation: Rotation = Rotation.ROTATION_0, isResizable: B @Test open fun maximizeAppWindow() { testApp.maximiseDesktopApp(wmHelper, device) testApp.maximiseDesktopApp(wmHelper, device, usingKeyboard = usingKeyboard) } @After Loading
libs/WindowManager/Shell/tests/e2e/desktopmode/scenarios/src/com/android/wm/shell/scenarios/MinimizeAppWindows.kt +3 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ constructor( fun setup() { Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet) Assume.assumeTrue(Flags.enableMinimizeButton()) if (usingKeyboard) { Assume.assumeTrue(Flags.enableTaskResizingKeyboardShortcuts()) } tapl.setEnableRotation(true) tapl.setExpectedRotation(rotation.value) ChangeDisplayOrientationRule.setRotation(rotation) Loading
tests/FlickerTests/test-apps/app-helpers/src/com/android/server/wm/flicker/helpers/DesktopModeAppHelper.kt +14 −4 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.tools.device.apphelpers.IStandardAppHelper import android.tools.helpers.SYSTEMUI_PACKAGE import android.tools.traces.parsers.WindowManagerStateHelper import android.tools.traces.wm.WindowingMode import android.view.KeyEvent.KEYCODE_EQUALS import android.view.KeyEvent.KEYCODE_LEFT_BRACKET import android.view.KeyEvent.KEYCODE_MINUS import android.view.KeyEvent.KEYCODE_RIGHT_BRACKET Loading Loading @@ -147,10 +148,19 @@ open class DesktopModeAppHelper(private val innerHelper: IStandardAppHelper) : } /** Click maximise button on the app header for the given app. */ fun maximiseDesktopApp(wmHelper: WindowManagerStateHelper, device: UiDevice) { fun maximiseDesktopApp( wmHelper: WindowManagerStateHelper, device: UiDevice, usingKeyboard: Boolean = false ) { 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() } wmHelper.StateSyncBuilder().withAppTransitionIdle().waitForAndVerify() } Loading