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

Commit e0bc5e69 authored by Vania Desmonda's avatar Vania Desmonda
Browse files

Refactor MultiDisplayTestUtil to have an enum of displays.

Flag: EXEMPT minor refactoring
Bug: 383403514
Test: atest MultiDisplayDragMoveBoundsCalculatorTest, and all affected
files

Change-Id: I8eab0f32a047e1de33556c042262e14eeaf65f00
parent d551936c
Loading
Loading
Loading
Loading
+5 −18
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.graphics.Rect
import android.graphics.RectF
import android.testing.TestableResources
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.common.MultiDisplayTestUtil.TestDisplay
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
@@ -48,18 +49,8 @@ class MultiDisplayDragMoveBoundsCalculatorTest : ShellTestCase() {
        val boundsAtDragStart = Rect(10, 20, 110, 120)
        val x = 300f
        val y = 400f
        val displayLayout0 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_0,
                MultiDisplayTestUtil.DISPLAY_DPI_0,
                resources.resources,
            )
        val displayLayout1 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1,
                MultiDisplayTestUtil.DISPLAY_DPI_1,
                resources.resources,
            )
        val displayLayout0 = TestDisplay.DISPLAY_0.getSpyDisplayLayout(resources.resources)
        val displayLayout1 = TestDisplay.DISPLAY_1.getSpyDisplayLayout(resources.resources)

        val actualBoundsDp =
            MultiDisplayDragMoveBoundsCalculator.calculateGlobalDpBoundsForDrag(
@@ -77,12 +68,8 @@ class MultiDisplayDragMoveBoundsCalculatorTest : ShellTestCase() {

    @Test
    fun testConvertGlobalDpToLocalPxForRect() {
        val displayLayout =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1,
                MultiDisplayTestUtil.DISPLAY_DPI_1,
                resources.resources,
            )
        val displayLayout = TestDisplay.DISPLAY_1.getSpyDisplayLayout(resources.resources)

        val rectDp = RectF(150f, -350f, 300f, -250f)

        val actualBoundsPx =
+3 −12
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import androidx.test.filters.SmallTest
import com.android.wm.shell.RootTaskDisplayAreaOrganizer
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.TestShellExecutor
import com.android.wm.shell.common.MultiDisplayTestUtil.TestDisplay
import java.util.function.Supplier
import org.junit.Before
import org.junit.Test
@@ -78,18 +79,8 @@ class MultiDisplayDragMoveIndicatorControllerTest : ShellTestCase() {
                executor,
            )

        val spyDisplayLayout0 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_0,
                MultiDisplayTestUtil.DISPLAY_DPI_0,
                resources.resources,
            )
        val spyDisplayLayout1 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1,
                MultiDisplayTestUtil.DISPLAY_DPI_1,
                resources.resources,
            )
        val spyDisplayLayout0 = TestDisplay.DISPLAY_0.getSpyDisplayLayout(resources.resources)
        val spyDisplayLayout1 = TestDisplay.DISPLAY_1.getSpyDisplayLayout(resources.resources)

        taskInfo.taskId = TASK_ID
        whenever(displayController.getDisplayLayout(0)).thenReturn(spyDisplayLayout0)
+11 −12
Original line number Diff line number Diff line
@@ -31,18 +31,17 @@ object MultiDisplayTestUtil {
    // +-+---+---+
    // |   0   |
    // +-------+
    val DISPLAY_GLOBAL_BOUNDS_0 = RectF(0f, 0f, 1200f, 800f)
    val DISPLAY_GLOBAL_BOUNDS_1 = RectF(100f, -1000f, 1100f, 0f)
    val DISPLAY_GLOBAL_BOUNDS_2 = RectF(1100f, -1000f, 2100f, 0f)
    val DISPLAY_DPI_0 = DisplayMetrics.DENSITY_DEFAULT
    val DISPLAY_DPI_1 = DisplayMetrics.DENSITY_DEFAULT * 2
    val DISPLAY_DPI_2 = DisplayMetrics.DENSITY_DEFAULT
    enum class TestDisplay(val id: Int, val bounds: RectF, val dpi: Int) {
        DISPLAY_0(0, RectF(0f, 0f, 1200f, 800f), DisplayMetrics.DENSITY_DEFAULT),
        DISPLAY_1(1, RectF(100f, -1000f, 1100f, 0f), DisplayMetrics.DENSITY_DEFAULT * 2),
        DISPLAY_2(2, RectF(1100f, -1000f, 2100f, 0f), DisplayMetrics.DENSITY_DEFAULT);

    fun createSpyDisplayLayout(globalBounds: RectF, dpi: Int, resources: Resources): DisplayLayout {
        fun getSpyDisplayLayout(resources: Resources): DisplayLayout {
            val displayInfo = DisplayInfo()
            displayInfo.logicalDensityDpi = dpi
            val displayLayout = spy(DisplayLayout(displayInfo, resources, true, true))
        displayLayout.setGlobalBoundsDp(globalBounds)
            displayLayout.setGlobalBoundsDp(bounds)
            return displayLayout
        }
    }
}
+11 −43
Original line number Diff line number Diff line
@@ -60,8 +60,7 @@ import org.mockito.kotlin.eq
import org.mockito.kotlin.times
import com.google.common.truth.Truth.assertThat
import com.android.wm.shell.R
import com.android.wm.shell.common.DisplayLayout
import com.android.wm.shell.common.MultiDisplayTestUtil
import com.android.wm.shell.common.MultiDisplayTestUtil.TestDisplay
import org.junit.Rule
import org.mockito.kotlin.never

@@ -91,13 +90,7 @@ class PipDisplayTransferHandlerTest : ShellTestCase() {
    private lateinit var defaultTda: DisplayAreaInfo
    private lateinit var pipDisplayTransferHandler: PipDisplayTransferHandler

    private lateinit var displayLayout0: DisplayLayout
    private lateinit var displayLayout1: DisplayLayout
    private lateinit var displayLayout2: DisplayLayout

    private val display0 = mock<Display>()
    private val display1 = mock<Display>()
    private val display2 = mock<Display>()
    private val displayIds = intArrayOf(ORIGIN_DISPLAY_ID, TARGET_DISPLAY_ID, SECONDARY_DISPLAY_ID)

    @JvmField
    @Rule
@@ -134,40 +127,15 @@ class PipDisplayTransferHandlerTest : ShellTestCase() {
        whenever(mockRootTaskDisplayAreaOrganizer.getDisplayAreaInfo(ORIGIN_DISPLAY_ID)).thenReturn(
            defaultTda
        )
        whenever(mockRootTaskDisplayAreaOrganizer.displayIds).thenReturn(
            intArrayOf(
                ORIGIN_DISPLAY_ID,
                TARGET_DISPLAY_ID,
                SECONDARY_DISPLAY_ID
            )
        )

        displayLayout0 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_0,
                MultiDisplayTestUtil.DISPLAY_DPI_0,
                resources,
            )
        displayLayout1 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1,
                MultiDisplayTestUtil.DISPLAY_DPI_1,
                resources,
            )
        displayLayout2 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_2,
                MultiDisplayTestUtil.DISPLAY_DPI_2,
                resources,
            )
        whenever(mockRootTaskDisplayAreaOrganizer.displayIds).thenReturn(displayIds)

        whenever(mockDisplayController.getDisplay(0)).thenReturn(display0)
        whenever(mockDisplayController.getDisplay(1)).thenReturn(display1)
        whenever(mockDisplayController.getDisplay(2)).thenReturn(display2)

        whenever(mockDisplayController.getDisplayLayout(0)).thenReturn(displayLayout0)
        whenever(mockDisplayController.getDisplayLayout(1)).thenReturn(displayLayout1)
        whenever(mockDisplayController.getDisplayLayout(2)).thenReturn(displayLayout2)
        for (id in displayIds) {
            val display = mock<Display>()
            whenever(mockDisplayController.getDisplay(id)).thenReturn(display)
            val displayLayout =
                TestDisplay.entries.find { it.id == id }?.getSpyDisplayLayout(resources)
            whenever(mockDisplayController.getDisplayLayout(id)).thenReturn(displayLayout)
        }

        pipDisplayTransferHandler =
            PipDisplayTransferHandler(
@@ -238,7 +206,7 @@ class PipDisplayTransferHandlerTest : ShellTestCase() {
    fun showDragMirrorOnConnectedDisplays_movedToAnotherDisplay_createsOneMirror() {
        pipDisplayTransferHandler.showDragMirrorOnConnectedDisplays(
            ORIGIN_DISPLAY_ID, TARGET_DISPLAY_ID,
            START_DRAG_COORDINATES, MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1.center(),
            START_DRAG_COORDINATES, TestDisplay.DISPLAY_1.bounds.center(),
            PIP_BOUNDS
        )

+4 −13
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.common.DisplayController
import com.android.wm.shell.common.DisplayLayout
import com.android.wm.shell.common.MultiDisplayDragMoveIndicatorController
import com.android.wm.shell.common.MultiDisplayTestUtil
import com.android.wm.shell.common.MultiDisplayTestUtil.TestDisplay
import com.android.wm.shell.shared.desktopmode.FakeDesktopState
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions.TransitionFinishCallback
@@ -118,18 +118,9 @@ class MultiDisplayVeiledResizeTaskPositionerTest : ShellTestCase() {
        val resourceConfiguration = Configuration()
        resourceConfiguration.uiMode = 0
        resources.overrideConfiguration(resourceConfiguration)
        spyDisplayLayout0 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_0,
                MultiDisplayTestUtil.DISPLAY_DPI_0,
                resources.resources,
            )
        spyDisplayLayout1 =
            MultiDisplayTestUtil.createSpyDisplayLayout(
                MultiDisplayTestUtil.DISPLAY_GLOBAL_BOUNDS_1,
                MultiDisplayTestUtil.DISPLAY_DPI_1,
                resources.resources,
            )
        spyDisplayLayout0 = TestDisplay.DISPLAY_0.getSpyDisplayLayout(resources.resources)
        spyDisplayLayout1 = TestDisplay.DISPLAY_1.getSpyDisplayLayout(resources.resources)

        whenever(mockDisplayController.getDisplayLayout(DISPLAY_ID_0)).thenReturn(spyDisplayLayout0)
        whenever(mockDisplayController.getDisplayLayout(DISPLAY_ID_1)).thenReturn(spyDisplayLayout1)
        whenever(spyDisplayLayout0.densityDpi()).thenReturn(DENSITY_DPI)