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

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

Merge "Parameterize DesktopDisplayModeControllerTest" into main

parents fc2d0835 9cbe07ea
Loading
Loading
Loading
Loading
+41 −30
Original line number Original line Diff line number Diff line
@@ -26,7 +26,6 @@ import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.annotations.EnableFlags
import android.provider.Settings
import android.provider.Settings
import android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
import android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS
import android.testing.AndroidTestingRunner
import android.view.Display.DEFAULT_DISPLAY
import android.view.Display.DEFAULT_DISPLAY
import android.view.IWindowManager
import android.view.IWindowManager
import android.view.WindowManager.TRANSIT_CHANGE
import android.view.WindowManager.TRANSIT_CHANGE
@@ -43,6 +42,8 @@ import com.android.wm.shell.TestRunningTaskInfoBuilder
import com.android.wm.shell.desktopmode.desktopwallpaperactivity.DesktopWallpaperActivityTokenProvider
import com.android.wm.shell.desktopmode.desktopwallpaperactivity.DesktopWallpaperActivityTokenProvider
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertThat
import com.google.testing.junit.testparameterinjector.TestParameter
import com.google.testing.junit.testparameterinjector.TestParameterInjector
import org.junit.Before
import org.junit.Before
import org.junit.Test
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runner.RunWith
@@ -62,7 +63,7 @@ import org.mockito.kotlin.whenever
 * Usage: atest WMShellUnitTests:DesktopDisplayModeControllerTest
 * Usage: atest WMShellUnitTests:DesktopDisplayModeControllerTest
 */
 */
@SmallTest
@SmallTest
@RunWith(AndroidTestingRunner::class)
@RunWith(TestParameterInjector::class)
class DesktopDisplayModeControllerTest : ShellTestCase() {
class DesktopDisplayModeControllerTest : ShellTestCase() {
    private val transitions = mock<Transitions>()
    private val transitions = mock<Transitions>()
    private val rootTaskDisplayAreaOrganizer = mock<RootTaskDisplayAreaOrganizer>()
    private val rootTaskDisplayAreaOrganizer = mock<RootTaskDisplayAreaOrganizer>()
@@ -143,41 +144,24 @@ class DesktopDisplayModeControllerTest : ShellTestCase() {


    @Test
    @Test
    @DisableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING)
    @DisableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING)
    fun displayWindowingModeSwitchOnDisplayConnected_fullscreenDisplay_flagDisabled() {
    fun displayWindowingModeSwitchOnDisplayConnected_flagDisabled(
        testDisplayWindowingModeSwitch(
        @TestParameter param: ModeSwitchTestCase
            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
    ) {
            extendedDisplayEnabled = true,
            expectToSwitch = false,
        )
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING)
    fun displayWindowingModeSwitchOnDisplayConnected_extendedDisplayDisabled() {
        testDisplayWindowingModeSwitch(
        testDisplayWindowingModeSwitch(
            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
            param.defaultWindowingMode,
            extendedDisplayEnabled = false,
            param.extendedDisplayEnabled,
            // When the flag is disabled, never switch.
            expectToSwitch = false,
            expectToSwitch = false,
        )
        )
    }
    }


    @Test
    @Test
    @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING)
    @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING)
    fun displayWindowingModeSwitchOnDisplayConnected_fullscreenDisplay() {
    fun displayWindowingModeSwitchOnDisplayConnected(@TestParameter param: ModeSwitchTestCase) {
        testDisplayWindowingModeSwitch(
            defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
            extendedDisplayEnabled = true,
            expectToSwitch = true,
        )
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING)
    fun displayWindowingModeSwitchOnDisplayConnected_freeformDisplay() {
        testDisplayWindowingModeSwitch(
        testDisplayWindowingModeSwitch(
            defaultWindowingMode = WINDOWING_MODE_FREEFORM,
            param.defaultWindowingMode,
            extendedDisplayEnabled = true,
            param.extendedDisplayEnabled,
            expectToSwitch = false,
            param.expectToSwitchByDefault,
        )
        )
    }
    }


@@ -249,7 +233,34 @@ class DesktopDisplayModeControllerTest : ShellTestCase() {
        }
        }
    }
    }


    private companion object {
    companion object {
        const val EXTERNAL_DISPLAY_ID = 100
        const val EXTERNAL_DISPLAY_ID = 100

        enum class ModeSwitchTestCase(
            val defaultWindowingMode: Int,
            val extendedDisplayEnabled: Boolean,
            val expectToSwitchByDefault: Boolean,
        ) {
            FULLSCREEN_DISPLAY(
                defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
                extendedDisplayEnabled = true,
                expectToSwitchByDefault = true,
            ),
            FULLSCREEN_DISPLAY_MIRRORING(
                defaultWindowingMode = WINDOWING_MODE_FULLSCREEN,
                extendedDisplayEnabled = false,
                expectToSwitchByDefault = false,
            ),
            FREEFORM_DISPLAY(
                defaultWindowingMode = WINDOWING_MODE_FREEFORM,
                extendedDisplayEnabled = true,
                expectToSwitchByDefault = false,
            ),
            FREEFORM_DISPLAY_MIRRORING(
                defaultWindowingMode = WINDOWING_MODE_FREEFORM,
                extendedDisplayEnabled = false,
                expectToSwitchByDefault = false,
            ),
        }
    }
    }
}
}