From a76fcaf5b4dde4bdf8f91c23cccd91d4d54cde85 Mon Sep 17 00:00:00 2001 From: Brian Isganitis Date: Wed, 12 Jun 2024 15:53:33 -0400 Subject: [PATCH] Add more tests for {request,hide}Window. Flag: TEST_ONLY Fix: 346394585 Test: TaskbarOverlayControllerTests Change-Id: I59ed58d7f3a4d46bccfb34ef6923f1bf4f5bf2c1 --- .../overlay/TaskbarOverlayControllerTest.kt | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayControllerTest.kt b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayControllerTest.kt index 8768cb974b..eebd8f9f16 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayControllerTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/overlay/TaskbarOverlayControllerTest.kt @@ -30,6 +30,7 @@ import com.android.launcher3.taskbar.TaskbarUnitTestRule import com.android.launcher3.taskbar.TaskbarUnitTestRule.InjectController import com.android.launcher3.util.LauncherMultivalentJUnit import com.android.launcher3.util.LauncherMultivalentJUnit.EmulatedDevices +import com.android.launcher3.views.BaseDragLayer import com.android.systemui.shared.system.TaskStackChangeListeners import com.google.common.truth.Truth.assertThat import org.junit.Rule @@ -64,6 +65,17 @@ class TaskbarOverlayControllerTest { assertThat(context1).isNotSameInstanceAs(context2) } + @Test + @UiThreadTest + fun testRequestWindow_afterHidingOverlay_createsNewWindow() { + val context1 = overlayController.requestWindow() + TestOverlayView.show(context1) + overlayController.hideWindow() + + val context2 = overlayController.requestWindow() + assertThat(context1).isNotSameInstanceAs(context2) + } + @Test @UiThreadTest fun testRequestWindow_addsProxyView() { @@ -79,6 +91,17 @@ class TaskbarOverlayControllerTest { assertThat(overlay.isOpen).isFalse() } + @Test + fun testRequestWindow_attachesDragLayer() { + lateinit var dragLayer: BaseDragLayer<*> + getInstrumentation().runOnMainSync { + dragLayer = overlayController.requestWindow().dragLayer + } + + // Allow drag layer to attach before checking. + getInstrumentation().runOnMainSync { assertThat(dragLayer.isAttachedToWindow).isTrue() } + } + @Test @UiThreadTest fun testHideWindow_closesOverlay() { @@ -87,6 +110,20 @@ class TaskbarOverlayControllerTest { assertThat(overlay.isOpen).isFalse() } + @Test + fun testHideWindow_detachesDragLayer() { + lateinit var dragLayer: BaseDragLayer<*> + getInstrumentation().runOnMainSync { + dragLayer = overlayController.requestWindow().dragLayer + } + + // Wait for drag layer to be attached to window before hiding. + getInstrumentation().runOnMainSync { + overlayController.hideWindow() + assertThat(dragLayer.isAttachedToWindow).isFalse() + } + } + @Test @UiThreadTest fun testTwoOverlays_closeOne_windowStaysOpen() {