Add more tests for {request,hide}Window.
Flag: TEST_ONLY
Fix: 346394585
Test: TaskbarOverlayControllerTests
Change-Id: I59ed58d7f3a4d46bccfb34ef6923f1bf4f5bf2c1
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 8768cb9..eebd8f9 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.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
@@ -66,6 +67,17 @@
@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() {
TestOverlayView.show(overlayController.requestWindow())
assertThat(hasOpenView(taskbarContext, TYPE_TASKBAR_OVERLAY_PROXY)).isTrue()
@@ -80,6 +92,17 @@
}
@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() {
val overlay = TestOverlayView.show(overlayController.requestWindow())
@@ -88,6 +111,20 @@
}
@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() {
val context = overlayController.requestWindow()