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

Commit 465f5301 authored by Vania Desmonda's avatar Vania Desmonda Committed by Android (Google) Code Review
Browse files

Merge "Refactor MultiDisplayTestUtil to have an enum of displays." into main

parents 8ea8e51a e0bc5e69
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)