diff options
| author | 2023-01-19 06:47:18 +0000 | |
|---|---|---|
| committer | 2023-01-19 06:47:18 +0000 | |
| commit | 0b5f5075409d17e8bb2160b88da00ba2952ca4a2 (patch) | |
| tree | 5f451bc8b343d007dc9bdea164f9d3986796f037 | |
| parent | 52f1ceecfabf195ae5d787d23209dc038a86b5ac (diff) | |
| parent | 954b189d2ff8b866049ef833a05a3b4f70fc5639 (diff) | |
Merge "Fix some shell unit tests with shell transitions" into tm-qpr-dev
2 files changed, 35 insertions, 7 deletions
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java index ff1d2990a82a..d5bb901259bd 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java @@ -28,9 +28,11 @@ import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -82,13 +84,14 @@ public class TaskViewTest extends ShellTestCase { @Mock SyncTransactionQueue mSyncQueue; @Mock - TaskViewTransitions mTaskViewTransitions; + Transitions mTransitions; SurfaceSession mSession; SurfaceControl mLeash; Context mContext; TaskView mTaskView; + TaskViewTransitions mTaskViewTransitions; @Before public void setUp() { @@ -118,6 +121,10 @@ public class TaskViewTest extends ShellTestCase { return null; }).when(mSyncQueue).runInSync(any()); + if (Transitions.ENABLE_SHELL_TRANSITIONS) { + doReturn(true).when(mTransitions).isRegistered(); + } + mTaskViewTransitions = spy(new TaskViewTransitions(mTransitions)); mTaskView = new TaskView(mContext, mOrganizer, mTaskViewTransitions, mSyncQueue); mTaskView.setListener(mExecutor, mViewListener); } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java index 65e1ea881b26..0bb809d354dc 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java @@ -29,11 +29,13 @@ import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_MAIN; import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_SIDE; import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_UNDEFINED; import static com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_RETURN_HOME; +import static com.android.wm.shell.transition.Transitions.TRANSIT_SPLIT_DISMISS; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.notNull; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -45,6 +47,8 @@ import android.app.ActivityManager; import android.content.res.Configuration; import android.graphics.Rect; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.view.SurfaceControl; import android.view.SurfaceSession; import android.window.WindowContainerToken; @@ -57,6 +61,7 @@ import androidx.test.filters.SmallTest; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.TestRunningTaskInfoBuilder; +import com.android.wm.shell.TestShellExecutor; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayImeController; import com.android.wm.shell.common.DisplayInsetsController; @@ -65,6 +70,8 @@ import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.common.TransactionPool; import com.android.wm.shell.common.split.SplitLayout; import com.android.wm.shell.splitscreen.SplitScreen.SplitScreenListener; +import com.android.wm.shell.sysui.ShellController; +import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; import org.junit.Before; @@ -98,11 +105,7 @@ public class StageCoordinatorTests extends ShellTestCase { @Mock private DisplayInsetsController mDisplayInsetsController; @Mock - private Transitions mTransitions; - @Mock private TransactionPool mTransactionPool; - @Mock - private ShellExecutor mMainExecutor; private final Rect mBounds1 = new Rect(10, 20, 30, 40); private final Rect mBounds2 = new Rect(5, 10, 15, 20); @@ -112,11 +115,16 @@ public class StageCoordinatorTests extends ShellTestCase { private SurfaceControl mRootLeash; private ActivityManager.RunningTaskInfo mRootTask; private StageCoordinator mStageCoordinator; + private Transitions mTransitions; + private final TestShellExecutor mMainExecutor = new TestShellExecutor(); + private final ShellExecutor mAnimExecutor = new TestShellExecutor(); + private final Handler mMainHandler = new Handler(Looper.getMainLooper()); @Before @UiThreadTest public void setup() { MockitoAnnotations.initMocks(this); + mTransitions = createTestTransitions(); mStageCoordinator = spy(new StageCoordinator(mContext, DEFAULT_DISPLAY, mSyncQueue, mTaskOrganizer, mMainStage, mSideStage, mDisplayController, mDisplayImeController, mDisplayInsetsController, mSplitLayout, mTransitions, mTransactionPool, @@ -329,7 +337,20 @@ public class StageCoordinatorTests extends ShellTestCase { mStageCoordinator.onFoldedStateChanged(true); - verify(mStageCoordinator).onSplitScreenExit(); - verify(mMainStage).deactivate(any(WindowContainerTransaction.class), eq(false)); + if (Transitions.ENABLE_SHELL_TRANSITIONS) { + verify(mTaskOrganizer).startNewTransition(eq(TRANSIT_SPLIT_DISMISS), notNull()); + } else { + verify(mStageCoordinator).onSplitScreenExit(); + verify(mMainStage).deactivate(any(WindowContainerTransaction.class), eq(false)); + } + } + + private Transitions createTestTransitions() { + ShellInit shellInit = new ShellInit(mMainExecutor); + final Transitions t = new Transitions(mContext, shellInit, mock(ShellController.class), + mTaskOrganizer, mTransactionPool, mock(DisplayController.class), mMainExecutor, + mMainHandler, mAnimExecutor); + shellInit.init(); + return t; } } |