diff options
| author | 2025-01-23 20:24:05 +0900 | |
|---|---|---|
| committer | 2025-01-23 21:54:35 +0900 | |
| commit | 41fda6b8cf1d42af48a99d149deffb8605da88be (patch) | |
| tree | 9db543683f2dfe688953439615b29cc301595967 | |
| parent | ba4eebc6eaafe98de5ac79035973a48ca33172c3 (diff) | |
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
2 files changed, 6 insertions, 6 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt index 07496eb0e526..a9c2e68e62a6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositioner.kt @@ -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(), ) diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt index 0615c1d677ba..63babc5e1c3c 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/MultiDisplayVeiledResizeTaskPositionerTest.kt @@ -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 |