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

Commit e5bc2710 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "b/435292464 Migrate OpenUnlimitedApps without the window limit to flicker test" into main

parents fb3058f2 f6439e3d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ test_module_config {
        "com.android.wm.shell.flicker.fundamentals.OpenAppFromAllAppsFlickerTest",
        "com.android.wm.shell.flicker.fundamentals.OpenAppFromTaskbarFlickerTest",
        "com.android.wm.shell.flicker.fundamentals.OpenAppsInDesktopModeFlickerTest",
        "com.android.wm.shell.flicker.fundamentals.OpenUnlimitedAppsFlickerTest",
        "com.android.wm.shell.flicker.fundamentals.QuickSwitchBetweenDesktopAndFullscreenTest",
        "com.android.wm.shell.flicker.fundamentals.SwitchFocusBetweenAppsTest",
        "com.android.wm.shell.flicker.fundamentals.SwitchToHomeFromDesktopTest",
@@ -185,6 +186,13 @@ test_module_config {
    include_filters: ["com.android.wm.shell.flicker.fundamentals.OpenAppsInDesktopModeFlickerTest"],
}

test_module_config {
    name: "WMShellFlickerTestsDesktopMode-fundamentals-OpenUnlimitedAppsFlickerTest",
    base: "WMShellFlickerTestsDesktopMode",
    test_suites: ["device-tests"],
    include_filters: ["com.android.wm.shell.flicker.fundamentals.OpenUnlimitedAppsFlickerTest"],
}

test_module_config {
    name: "WMShellFlickerTestsDesktopMode-fundamentals-QuickSwitchBetweenDesktopAndFullscreenTest",
    base: "WMShellFlickerTestsDesktopMode",
+95 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 * Copyright (C) 2025 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.
@@ -14,20 +14,26 @@
 * limitations under the License.
 */

package com.android.wm.shell.flicker
package com.android.wm.shell.flicker.fundamentals

import android.platform.test.annotations.Postsubmit
import android.platform.test.annotations.RequiresDesktopDevice
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.OPEN_UNLIMITED_APPS
import android.tools.NavBar
import android.tools.flicker.assertions.FlickerChecker
import android.tools.flicker.junit.FlickerParametersRunnerFactory
import android.tools.flicker.FlickerBuilder
import android.tools.flicker.FlickerTest
import android.tools.flicker.FlickerTestFactory
import com.android.wm.shell.flicker.DesktopModeBaseTest
import com.android.wm.shell.flicker.utils.appWindowBecomesVisible
import com.android.wm.shell.flicker.utils.appWindowInsideDisplayBoundsAtEnd
import com.android.wm.shell.flicker.utils.appWindowIsVisibleAtStart
import com.android.wm.shell.scenarios.OpenUnlimitedApps
import com.android.wm.shell.Utils
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized

/**
 * Open many apps on the device without the window limit.
@@ -35,17 +41,55 @@ import org.junit.runner.RunWith
 * Assert that the desktop task limit is not triggered.
 */
@RequiresDesktopDevice
@RunWith(FlickerServiceJUnit4ClassRunner::class)
@RunWith(Parameterized::class)
@Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class)
@Postsubmit
class OpenUnlimitedApps : OpenUnlimitedApps() {
    @ExpectedScenarios(["OPEN_UNLIMITED_APPS"])
class OpenUnlimitedAppsFlickerTest(flicker: FlickerTest) : DesktopModeBaseTest(flicker) {

    inner class OpenUnlimitedAppsScenario : OpenUnlimitedApps(flicker.scenario.startRotation)

    @Rule
    @JvmField
    val testSetupRule = Utils.testSetupRule(NavBar.MODE_GESTURAL, flicker.scenario.startRotation)
    val scenario = OpenUnlimitedAppsScenario()

    private val testApp = scenario.testApp
    private val appsInDesktop = scenario.appLaunchedInDesktop

    override val transition: FlickerBuilder.() -> Unit
        get() = {
            setup {
                scenario.setup()
            }
            transitions {
                scenario.openUnlimitedApps()
            }
            teardown {
                scenario.teardown()
            }
        }

    @Test
    override fun openUnlimitedApps() = super.openUnlimitedApps()
    fun initialAppWindowIsVisibleAtStart() = flicker.appWindowIsVisibleAtStart(testApp)

    @Test
    fun launchedAppsAreInsideDisplayBoundsAtEnd() = appsInDesktop.forEach {
        flicker.appWindowInsideDisplayBoundsAtEnd(it)
    }

    @Test
    fun launchedAppsBecomesVisible() = appsInDesktop.forEach {
        flicker.appWindowBecomesVisible(it)
    }

    companion object {
        @Parameterized.Parameters(name = "{0}")
        @JvmStatic
        @FlickerConfigProvider
        fun flickerConfigProvider(): FlickerConfig =
            FlickerConfig().use(FlickerServiceConfig.DEFAULT).use(OPEN_UNLIMITED_APPS)
        fun getParams(): Collection<FlickerChecker> {
            return FlickerTestFactory.nonRotationTests(
                supportedNavigationModes = listOf(NavBar.MODE_GESTURAL)
            )
        }
    }
}
+8 −8
Original line number Diff line number Diff line
@@ -107,7 +107,6 @@ test_module_config {
        "com.android.wm.shell.functional.FocusAppFromTaskbarOverflowTest",
        "com.android.wm.shell.functional.MoveToNextDisplayTest",
        "com.android.wm.shell.functional.OpenTrampolineAppInDesktopModeTaskLimitTest",
        "com.android.wm.shell.functional.OpenUnlimitedAppsTest",
        "com.android.wm.shell.functional.TabTearingDesktopWindowingLimitTest",
        "com.android.wm.shell.functional.TabTearingTest",
        "com.android.wm.shell.functional.UnmaximizeAppWindowTest",
@@ -130,6 +129,7 @@ test_module_config {
        "com.android.wm.shell.functional.fundamentals.OpenAppFromAllAppsTest",
        "com.android.wm.shell.functional.fundamentals.OpenAppFromTaskbarTest",
        "com.android.wm.shell.functional.fundamentals.OpenAppsInDesktopModeTest",
        "com.android.wm.shell.functional.fundamentals.OpenUnlimitedAppsTest",
        "com.android.wm.shell.functional.fundamentals.QuickSwitchBetweenDesktopAndFullscreenTest",
        "com.android.wm.shell.functional.fundamentals.SwitchFocusBetweenAppsTest",
        "com.android.wm.shell.functional.fundamentals.SwitchToHomeFromDesktopTest",
@@ -270,13 +270,6 @@ test_module_config {
    include_filters: ["com.android.wm.shell.functional.OpenTrampolineAppInDesktopModeTaskLimitTest"],
}

test_module_config {
    name: "FunctionalTestsDesktopMode-OpenUnlimitedAppsTest",
    base: "FunctionalTestsDesktopMode",
    test_suites: ["device-tests"],
    include_filters: ["com.android.wm.shell.functional.OpenUnlimitedAppsTest"],
}

test_module_config {
    name: "FunctionalTestsDesktopMode-TabTearingDesktopWindowingLimitTest",
    base: "FunctionalTestsDesktopMode",
@@ -431,6 +424,13 @@ test_module_config {
    include_filters: ["com.android.wm.shell.functional.fundamentals.OpenAppsInDesktopModeTest"],
}

test_module_config {
    name: "FunctionalTestsDesktopMode-fundamentals-OpenUnlimitedAppsTest",
    base: "FunctionalTestsDesktopMode",
    test_suites: ["device-tests"],
    include_filters: ["com.android.wm.shell.functional.fundamentals.OpenUnlimitedAppsTest"],
}

test_module_config {
    name: "FunctionalTestsDesktopMode-fundamentals-QuickSwitchBetweenDesktopAndFullscreenTest",
    base: "FunctionalTestsDesktopMode",
+3 −3
Original line number Diff line number Diff line
@@ -63,9 +63,6 @@
    {
      "name": "FunctionalTestsDesktopMode-OpenTrampolineAppInDesktopModeTaskLimitTest"
    },
    {
      "name": "FunctionalTestsDesktopMode-OpenUnlimitedAppsTest"
    },
    {
      "name": "FunctionalTestsDesktopMode-TabTearingDesktopWindowingLimitTest"
    },
@@ -132,6 +129,9 @@
    {
      "name": "FunctionalTestsDesktopMode-fundamentals-OpenAppsInDesktopModeTest"
    },
    {
      "name": "FunctionalTestsDesktopMode-fundamentals-OpenUnlimitedAppsTest"
    },
    {
      "name": "FunctionalTestsDesktopMode-fundamentals-QuickSwitchBetweenDesktopAndFullscreenTest"
    },
+2 −2
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.wm.shell.functional
package com.android.wm.shell.functional.fundamentals

import android.platform.test.annotations.Presubmit
import android.platform.test.annotations.RequiresDesktopDevice
Loading