Add test for toggleSearch.

Focus is not requested until the open animation finishes, so we need to
emulate the animation completing.

Test: TaskbarAllAppsControllerTest
Flag: TEST_ONLY
Fix: 346394798
Change-Id: I5ba57e9bb1813c159599b31404a28ef10c85e3ee
This commit is contained in:
Brian Isganitis
2024-06-12 19:56:43 -04:00
parent b09b1a73a2
commit fa1f4c9f79

View File

@@ -16,6 +16,7 @@
package com.android.launcher3.taskbar.allapps
import android.animation.AnimatorTestRule
import android.content.ComponentName
import android.content.Intent
import android.os.Process
@@ -42,6 +43,7 @@ import org.junit.runner.RunWith
class TaskbarAllAppsControllerTest {
@get:Rule val taskbarUnitTestRule = TaskbarUnitTestRule()
@get:Rule val animatorTestRule = AnimatorTestRule(this)
@InjectController lateinit var allAppsController: TaskbarAllAppsController
@InjectController lateinit var overlayController: TaskbarOverlayController
@@ -166,6 +168,21 @@ class TaskbarAllAppsControllerTest {
assertThat(btv.hasDot()).isTrue()
}
@Test
fun testToggleSearch_searchEditTextFocused() {
getInstrumentation().runOnMainSync { allAppsController.toggleSearch() }
getInstrumentation().runOnMainSync {
// All Apps is now attached to window. Open animation is posted but not started.
}
getInstrumentation().runOnMainSync {
// Animation has started. Advance to end of animation.
animatorTestRule.advanceTimeBy(overlayController.openDuration.toLong())
}
val editText = overlayController.requestWindow().appsView.searchUiManager.editText
assertThat(editText?.hasFocus()).isTrue()
}
private companion object {
private val TEST_APPS =
Array(16) {