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

Commit 41fda6b8 authored by Qijing Yao's avatar Qijing Yao
Browse files

Fix MultiDisplayVeiledResizeTaskPositionerTest failure

Kotlin 2.0 enforces stricter NonNull requirements, causing tests related
to `SurfaceControl.Transaction#setPosition` to fail.
These tests previously passed with Kotlin 1.9 without explicitly
handling the return value of `setPosition`, which now requires returning
a NonNull object.

This commit fixes the failing tests by explicitly returning the mocked
`Transaction` object when `setPosition` is called. And updated the
source code to use getLeash instead of directly getting `mTaskSurface`
in order to hijack the `setPosition` call.

Bug: 391717499
Test: atest
Flag: EXEMPT unblock presubmit
Change-Id: I081b6e7695aaba6d745d559b548eaa8b66b51d1f
parent ba4eebc6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ class MultiDisplayVeiledResizeTaskPositioner(
                // TODO(b/383069173): Render drag indicator(s)

                t.setPosition(
                    desktopWindowDecoration.mTaskSurface,
                    desktopWindowDecoration.leash,
                    repositionTaskBounds.left.toFloat(),
                    repositionTaskBounds.top.toFloat(),
                )
+5 −5
Original line number Diff line number Diff line
@@ -51,11 +51,10 @@ import com.android.wm.shell.windowdecor.DragPositioningCallback.CTRL_TYPE_UNDEFI
import java.util.function.Supplier
import junit.framework.Assert
import org.junit.Before
import org.junit.Ignore
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.any
import org.mockito.Mock
import org.mockito.Mockito.any
import org.mockito.Mockito.argThat
import org.mockito.Mockito.doAnswer
import org.mockito.Mockito.eq
@@ -93,6 +92,8 @@ class MultiDisplayVeiledResizeTaskPositionerTest : ShellTestCase() {
    @Mock private lateinit var mockFinishCallback: TransitionFinishCallback
    @Mock private lateinit var mockTransitions: Transitions
    @Mock private lateinit var mockInteractionJankMonitor: InteractionJankMonitor
    @Mock private lateinit var mockSurfaceControl: SurfaceControl

    private lateinit var resources: TestableResources
    private lateinit var spyDisplayLayout0: DisplayLayout
    private lateinit var spyDisplayLayout1: DisplayLayout
@@ -145,6 +146,8 @@ class MultiDisplayVeiledResizeTaskPositionerTest : ShellTestCase() {
            .`when`(spyDisplayLayout0)
            .getStableBounds(any())
        `when`(mockTransactionFactory.get()).thenReturn(mockTransaction)
        `when`(mockDesktopWindowDecoration.leash).thenReturn(mockSurfaceControl)
        `when`(mockTransaction.setPosition(any(), any(), any())).thenReturn(mockTransaction)
        mockDesktopWindowDecoration.mTaskInfo =
            ActivityManager.RunningTaskInfo().apply {
                taskId = TASK_ID
@@ -207,7 +210,6 @@ class MultiDisplayVeiledResizeTaskPositionerTest : ShellTestCase() {
    }

    @Test
    @Ignore("Causing presubmit failure b/391717499")
    fun testDragResize_movesTask_doesNotShowResizeVeil() = runOnUiThread {
        taskPositioner.onDragPositioningStart(
            CTRL_TYPE_UNDEFINED,
@@ -247,7 +249,6 @@ class MultiDisplayVeiledResizeTaskPositionerTest : ShellTestCase() {
    }

    @Test
    @Ignore("Causing presubmit failure b/391717499")
    fun testDragResize_movesTaskToNewDisplay() = runOnUiThread {
        taskPositioner.onDragPositioningStart(
            CTRL_TYPE_UNDEFINED,
@@ -373,7 +374,6 @@ class MultiDisplayVeiledResizeTaskPositionerTest : ShellTestCase() {
    }

    @Test
    @Ignore("Causing presubmit failure b/391717499")
    fun testDragResize_drag_setBoundsNotRunIfDragEndsInDisallowedEndArea() = runOnUiThread {
        taskPositioner.onDragPositioningStart(
            CTRL_TYPE_UNDEFINED, // drag