Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39c37d2b authored by Sergey Pinkevich's avatar Sergey Pinkevich Committed by Android (Google) Code Review
Browse files

Merge "Using Desktop Windowing limit from config in E2E tests instead of...

Merge "Using Desktop Windowing limit from config in E2E tests instead of hardcoding 4 apps limit" into main
parents 8177b7b1 df05cd83
Loading
Loading
Loading
Loading
+18 −21
Original line number Original line Diff line number Diff line
@@ -18,11 +18,8 @@ package com.android.wm.shell.scenarios


import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.ImeAppHelper
import com.android.server.wm.flicker.helpers.MailAppHelper
import com.android.server.wm.flicker.helpers.MailAppHelper
import com.android.server.wm.flicker.helpers.NewTasksAppHelper
import com.android.wm.shell.shared.desktopmode.DesktopConfig
import com.android.server.wm.flicker.helpers.SimpleAppHelper
import com.android.window.flags.Flags
import com.android.wm.shell.shared.desktopmode.DesktopState
import com.android.wm.shell.shared.desktopmode.DesktopState
import org.junit.After
import org.junit.After
import org.junit.Assume
import org.junit.Assume
@@ -33,11 +30,11 @@ import org.junit.Test
@Ignore("Test Base Class")
@Ignore("Test Base Class")
abstract class DragAppWindowMultiWindow : DragAppWindowScenarioTestBase()
abstract class DragAppWindowMultiWindow : DragAppWindowScenarioTestBase()
{
{
    private val imeAppHelper = ImeAppHelper(instrumentation)
    private val mailAppHelper = MailAppHelper(instrumentation)
    private val testApp = DesktopModeAppHelper(SimpleAppHelper(instrumentation))
    private val mailAppDesktopHelper = DesktopModeAppHelper(mailAppHelper)
    private val mailApp = DesktopModeAppHelper(MailAppHelper(instrumentation))

    private val newTasksApp = DesktopModeAppHelper(NewTasksAppHelper(instrumentation))
    private val desktopConfig = DesktopConfig.fromContext(instrumentation.context)
    private val imeApp = DesktopModeAppHelper(ImeAppHelper(instrumentation))
    private val maxNum = desktopConfig.maxTaskLimit


    @Before
    @Before
    fun setup() {
    fun setup() {
@@ -45,26 +42,26 @@ abstract class DragAppWindowMultiWindow : DragAppWindowScenarioTestBase()
            DesktopState.fromContext(instrumentation.context)
            DesktopState.fromContext(instrumentation.context)
                .isDesktopModeSupportedOnDisplay(DEFAULT_DISPLAY)
                .isDesktopModeSupportedOnDisplay(DEFAULT_DISPLAY)
        )
        )
        testApp.enterDesktopMode(wmHelper, device)
        mailAppDesktopHelper.enterDesktopMode(wmHelper, device)
        mailApp.launchViaIntent(wmHelper)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 1)
        newTasksApp.launchViaIntent(wmHelper)
        imeApp.launchViaIntent(wmHelper)
    }
    }


    @Test
    @Test
    override fun dragAppWindow() {
    override fun dragAppWindow() {
        val (startXIme, startYIme) = getWindowDragStartCoordinate(imeAppHelper)
        val (startX, startY) = getWindowDragStartCoordinate(mailAppHelper)


        imeApp.dragWindow(startXIme, startYIme,
        mailAppDesktopHelper.dragWindow(
            endX = startXIme + 150, endY = startYIme + 150,
            startX,
            wmHelper, device)
            startY,
            endX = startX + 150,
            endY = startY + 150,
            wmHelper,
            device
        )
    }
    }


    @After
    @After
    fun teardown() {
    fun teardown() {
        testApp.exit(wmHelper)
        mailAppDesktopHelper.exit(wmHelper)
        mailApp.exit(wmHelper)
        newTasksApp.exit(wmHelper)
        imeApp.exit(wmHelper)
    }
    }
}
}
+14 −16
Original line number Original line Diff line number Diff line
@@ -16,8 +16,8 @@


package com.android.wm.shell.scenarios
package com.android.wm.shell.scenarios


import android.platform.test.annotations.Postsubmit
import android.app.Instrumentation
import android.app.Instrumentation
import android.platform.test.annotations.Postsubmit
import android.tools.NavBar
import android.tools.NavBar
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.Rotation
import android.tools.Rotation
@@ -25,10 +25,9 @@ import android.tools.traces.parsers.WindowManagerStateHelper
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import androidx.test.uiautomator.UiDevice
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.SimpleAppHelper
import com.android.server.wm.flicker.helpers.MailAppHelper
import com.android.server.wm.flicker.helpers.ImeAppHelper
import com.android.server.wm.flicker.helpers.NewTasksAppHelper
import com.android.wm.shell.Utils
import com.android.wm.shell.Utils
import com.android.wm.shell.shared.desktopmode.DesktopConfig
import com.android.wm.shell.shared.desktopmode.DesktopState
import com.android.wm.shell.shared.desktopmode.DesktopState
import org.junit.After
import org.junit.After
import org.junit.Assume
import org.junit.Assume
@@ -45,9 +44,12 @@ open class EnterDesktopWithAppHandleMenuExistingWindows : TestScenarioBase() {
    private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
    private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
    private val wmHelper = WindowManagerStateHelper(instrumentation)
    private val wmHelper = WindowManagerStateHelper(instrumentation)
    private val device = UiDevice.getInstance(instrumentation)
    private val device = UiDevice.getInstance(instrumentation)
    private val imeApp = ImeAppHelper(instrumentation)
    private val desktopConfig = DesktopConfig.fromContext(instrumentation.context)
    private val newTaskApp = NewTasksAppHelper(instrumentation)

    private val testApp = DesktopModeAppHelper(SimpleAppHelper(instrumentation))
    private val mailAppHelper = MailAppHelper(instrumentation)
    private val mailAppDesktopHelper = DesktopModeAppHelper(mailAppHelper)

    private val maxNum = desktopConfig.maxTaskLimit


    @Rule
    @Rule
    @JvmField
    @JvmField
@@ -59,22 +61,18 @@ open class EnterDesktopWithAppHandleMenuExistingWindows : TestScenarioBase() {
            DesktopState.fromContext(instrumentation.context)
            DesktopState.fromContext(instrumentation.context)
                .isDesktopModeSupportedOnDisplay(DEFAULT_DISPLAY)
                .isDesktopModeSupportedOnDisplay(DEFAULT_DISPLAY)
        )
        )
        testApp.enterDesktopMode(wmHelper, device)
        mailAppDesktopHelper.enterDesktopMode(wmHelper, device)
        imeApp.launchViaIntent(wmHelper)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 1)
        newTaskApp.launchViaIntent(wmHelper)
        mailAppDesktopHelper.exitDesktopWithDragToTopDragZone(wmHelper, device)
        testApp.launchViaIntent(wmHelper)
        testApp.exitDesktopWithDragToTopDragZone(wmHelper, device)
    }
    }


    @Test
    @Test
    open fun reenterDesktopWithAppHandleMenu() {
    open fun reenterDesktopWithAppHandleMenu() {
        testApp.enterDesktopModeFromAppHandleMenu(wmHelper, device)
        mailAppDesktopHelper.enterDesktopModeFromAppHandleMenu(wmHelper, device)
    }
    }


    @After
    @After
    fun teardown() {
    fun teardown() {
        testApp.exit(wmHelper)
        mailAppDesktopHelper.exit(wmHelper)
        newTaskApp.exit(wmHelper)
        imeApp.exit(wmHelper)
    }
    }
}
}
+14 −14
Original line number Original line Diff line number Diff line
@@ -20,10 +20,10 @@ import android.tools.NavBar
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.Rotation
import android.tools.Rotation
import android.tools.flicker.rules.ChangeDisplayOrientationRule
import android.tools.flicker.rules.ChangeDisplayOrientationRule
import com.android.server.wm.flicker.helpers.ImeAppHelper
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.NewTasksAppHelper
import com.android.server.wm.flicker.helpers.MailAppHelper
import com.android.window.flags.Flags
import com.android.wm.shell.Utils
import com.android.wm.shell.Utils
import com.android.wm.shell.shared.desktopmode.DesktopConfig
import com.android.wm.shell.shared.desktopmode.DesktopState
import com.android.wm.shell.shared.desktopmode.DesktopState
import org.junit.After
import org.junit.After
import org.junit.Assume
import org.junit.Assume
@@ -43,8 +43,12 @@ constructor(
    @Rule
    @Rule
    @JvmField
    @JvmField
    val testSetupRule = Utils.testSetupRule(NavBar.MODE_GESTURAL, rotation)
    val testSetupRule = Utils.testSetupRule(NavBar.MODE_GESTURAL, rotation)
    private val imeApp = ImeAppHelper(instrumentation)

    private val newTaskApp = NewTasksAppHelper(instrumentation)
    private val mailAppHelper = MailAppHelper(instrumentation)
    private val mailAppDesktopHelper = DesktopModeAppHelper(mailAppHelper)

    private val desktopConfig = DesktopConfig.fromContext(instrumentation.context)
    private val maxNum = desktopConfig.maxTaskLimit


    @Before
    @Before
    fun setup() {
    fun setup() {
@@ -57,23 +61,19 @@ constructor(
        ChangeDisplayOrientationRule.setRotation(rotation)
        ChangeDisplayOrientationRule.setRotation(rotation)
        tapl.enableTransientTaskbar(false)
        tapl.enableTransientTaskbar(false)


        testApp.enterDesktopMode(wmHelper, device)
        mailAppDesktopHelper.enterDesktopMode(wmHelper, device)
        imeApp.launchViaIntent(wmHelper)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 1)
        newTaskApp.launchViaIntent(wmHelper)
        mailAppDesktopHelper.exitDesktopWithDragToTopDragZone(wmHelper, device)
        testApp.launchViaIntent(wmHelper)
        testApp.exitDesktopWithDragToTopDragZone(wmHelper, device)
    }
    }


    @Test
    @Test
    open fun reenterDesktopWithDrag() {
    open fun reenterDesktopWithDrag() {
        // By default this method uses drag to desktop
        // By default this method uses drag to desktop
        testApp.enterDesktopMode(wmHelper, device, shouldUseDragToDesktop = true)
        mailAppDesktopHelper.enterDesktopMode(wmHelper, device, shouldUseDragToDesktop = true)
    }
    }


    @After
    @After
    fun teardown() {
    fun teardown() {
        testApp.exit(wmHelper)
        mailAppDesktopHelper.exit(wmHelper)
        newTaskApp.exit(wmHelper)
        imeApp.exit(wmHelper)
    }
    }
}
}
 No newline at end of file
+4 −17
Original line number Original line Diff line number Diff line
@@ -17,8 +17,6 @@
package com.android.wm.shell.scenarios
package com.android.wm.shell.scenarios


import android.app.Instrumentation
import android.app.Instrumentation
import android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import android.tools.NavBar
import android.tools.NavBar
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.PlatformConsts.DEFAULT_DISPLAY
import android.tools.Rotation
import android.tools.Rotation
@@ -81,7 +79,7 @@ abstract class MinimizeWindowOnAppOpen : TestScenarioBase() {


    @Test
    @Test
    open fun openAppFromAllApps() {
    open fun openAppFromAllApps() {
        openMailApps(maxNum - 1)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 1)
        // Launch a new task, which ends up opening [maxNum]+1 tasks in total. This should
        // Launch a new task, which ends up opening [maxNum]+1 tasks in total. This should
        // result in the first app we opened to be minimized.
        // result in the first app we opened to be minimized.
        tapl.launchedAppState.taskbar
        tapl.launchedAppState.taskbar
@@ -93,7 +91,7 @@ abstract class MinimizeWindowOnAppOpen : TestScenarioBase() {


    @Test
    @Test
    open fun openAppFromTaskbar() {
    open fun openAppFromTaskbar() {
        openMailApps(maxNum - 1)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 1)
        // Launch a new task, which ends up opening [maxNum]+1 tasks in total. This should
        // Launch a new task, which ends up opening [maxNum]+1 tasks in total. This should
        // result in the first app we opened to be minimized.
        // result in the first app we opened to be minimized.
        tapl.launchedAppState.taskbar
        tapl.launchedAppState.taskbar
@@ -104,28 +102,17 @@ abstract class MinimizeWindowOnAppOpen : TestScenarioBase() {


    @Test
    @Test
    open fun unminimizeApp() {
    open fun unminimizeApp() {
        openMailApps(maxNum - 2)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 2)
        browserAppHelper.launchViaIntent(wmHelper)
        browserAppHelper.launchViaIntent(wmHelper)
        browserAppHelper.closePopupsIfNeeded(device)
        browserAppHelper.closePopupsIfNeeded(device)
        browserAppDesktopHelper.minimizeDesktopApp(wmHelper, device)
        browserAppDesktopHelper.minimizeDesktopApp(wmHelper, device)
        openMailApps(1)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = 1)
        tapl.launchedAppState.taskbar
        tapl.launchedAppState.taskbar
            .getAppIcon(browserAppHelper.appName)
            .getAppIcon(browserAppHelper.appName)
            .launch(browserAppHelper.packageName)
            .launch(browserAppHelper.packageName)
        assertWindowManagerState(appShouldBeMinimized = testAppHelper, appShouldBeOnTop = browserAppHelper)
        assertWindowManagerState(appShouldBeMinimized = testAppHelper, appShouldBeOnTop = browserAppHelper)
    }
    }


    private fun openMailApps(limit: Int) {
        for (i in 0..<limit) {
            mailAppDesktopHelper.launchViaIntent(
                wmHelper,
                mailAppHelper.openAppIntent.apply {
                    addFlags(FLAG_ACTIVITY_MULTIPLE_TASK or FLAG_ACTIVITY_NEW_TASK)
                }
            )
        }
    }

    private fun assertWindowManagerState(
    private fun assertWindowManagerState(
        appShouldBeMinimized: StandardAppHelper,
        appShouldBeMinimized: StandardAppHelper,
        appShouldBeOnTop: StandardAppHelper
        appShouldBeOnTop: StandardAppHelper
+14 −18
Original line number Original line Diff line number Diff line
@@ -25,12 +25,9 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import androidx.test.uiautomator.UiDevice
import com.android.launcher3.tapl.LauncherInstrumentation
import com.android.launcher3.tapl.LauncherInstrumentation
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
import com.android.server.wm.flicker.helpers.ImeAppHelper
import com.android.server.wm.flicker.helpers.MailAppHelper
import com.android.server.wm.flicker.helpers.MailAppHelper
import com.android.server.wm.flicker.helpers.NewTasksAppHelper
import com.android.server.wm.flicker.helpers.SimpleAppHelper
import com.android.window.flags.Flags
import com.android.wm.shell.Utils
import com.android.wm.shell.Utils
import com.android.wm.shell.shared.desktopmode.DesktopConfig
import com.android.wm.shell.shared.desktopmode.DesktopState
import com.android.wm.shell.shared.desktopmode.DesktopState
import org.junit.After
import org.junit.After
import org.junit.Assume
import org.junit.Assume
@@ -49,10 +46,12 @@ constructor(val rotation: Rotation = Rotation.ROTATION_0,
    private val tapl = LauncherInstrumentation()
    private val tapl = LauncherInstrumentation()
    private val wmHelper = WindowManagerStateHelper(instrumentation)
    private val wmHelper = WindowManagerStateHelper(instrumentation)
    private val device = UiDevice.getInstance(instrumentation)
    private val device = UiDevice.getInstance(instrumentation)
    private val testApp = DesktopModeAppHelper(SimpleAppHelper(instrumentation))
    private val desktopConfig = DesktopConfig.fromContext(instrumentation.context)
    private val mailApp = DesktopModeAppHelper(MailAppHelper(instrumentation))

    private val newTasksApp = DesktopModeAppHelper(NewTasksAppHelper(instrumentation))
    private val mailAppHelper = MailAppHelper(instrumentation)
    private val imeApp = DesktopModeAppHelper(ImeAppHelper(instrumentation))
    private val mailAppDesktopHelper = DesktopModeAppHelper(mailAppHelper)

    private val maxNum = desktopConfig.maxTaskLimit


    @Rule
    @Rule
    @JvmField
    @JvmField
@@ -66,26 +65,23 @@ constructor(val rotation: Rotation = Rotation.ROTATION_0,
        )
        )
        tapl.setEnableRotation(true)
        tapl.setEnableRotation(true)
        tapl.setExpectedRotation(rotation.value)
        tapl.setExpectedRotation(rotation.value)
        testApp.enterDesktopMode(wmHelper, device)
        mailAppDesktopHelper.enterDesktopMode(wmHelper, device)
        mailApp.launchViaIntent(wmHelper)
        mailAppDesktopHelper.openTasks(wmHelper, numTasks = maxNum - 1)
        newTasksApp.launchViaIntent(wmHelper)
        imeApp.launchViaIntent(wmHelper)
    }
    }


    @Test
    @Test
    open fun resizeAppWithCornerResize() {
    open fun resizeAppWithCornerResize() {
        imeApp.cornerResize(wmHelper,
        mailAppDesktopHelper.cornerResize(
            wmHelper,
            device,
            device,
            DesktopModeAppHelper.Corners.RIGHT_TOP,
            DesktopModeAppHelper.Corners.RIGHT_TOP,
            horizontalChange,
            horizontalChange,
            verticalChange)
            verticalChange
        )
    }
    }


    @After
    @After
    fun teardown() {
    fun teardown() {
        testApp.exit(wmHelper)
        mailAppDesktopHelper.exit(wmHelper)
        mailApp.exit(wmHelper)
        newTasksApp.exit(wmHelper)
        imeApp.exit(wmHelper)
    }
    }
}
}
Loading