Add a unit test to test hiding IME when dismissing biometrics UI
For verifying CL[1] fixed IME flicker issue during biometrics UI
dismissed by focus-lost.
[1]: I541f41832753ea1f4f48f6c4745649606b37d207
Bug: 247705580
Test: atest AuthContainerViewTest#t\
estDismissesOnFocusLoss_hidesKeyboardWhenVisible
Change-Id: I7622a30778677ed712bbe46d3ea30a0ddb89dfbb
This commit is contained in:
@@ -35,6 +35,8 @@ import android.view.WindowInsets
|
||||
import android.view.WindowManager
|
||||
import android.widget.ScrollView
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
|
||||
import com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn
|
||||
import com.android.internal.jank.InteractionJankMonitor
|
||||
import com.android.internal.widget.LockPatternUtils
|
||||
import com.android.systemui.R
|
||||
@@ -142,6 +144,35 @@ class AuthContainerViewTest : SysuiTestCase() {
|
||||
assertThat(container.parent).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDismissesOnFocusLoss_hidesKeyboardWhenVisible() {
|
||||
val container = initializeFingerprintContainer(
|
||||
authenticators = BiometricManager.Authenticators.DEVICE_CREDENTIAL
|
||||
)
|
||||
waitForIdleSync()
|
||||
|
||||
val requestID = authContainer?.requestId ?: 0L
|
||||
|
||||
// Simulate keyboard was shown on the credential view
|
||||
val windowInsetsController = container.windowInsetsController
|
||||
spyOn(windowInsetsController)
|
||||
spyOn(container.rootWindowInsets)
|
||||
doReturn(true).`when`(container.rootWindowInsets).isVisible(WindowInsets.Type.ime())
|
||||
|
||||
container.onWindowFocusChanged(false)
|
||||
waitForIdleSync()
|
||||
|
||||
// Expect hiding IME request will be invoked when dismissing the view
|
||||
verify(windowInsetsController)?.hide(WindowInsets.Type.ime())
|
||||
|
||||
verify(callback).onDismissed(
|
||||
eq(AuthDialogCallback.DISMISSED_USER_CANCELED),
|
||||
eq<ByteArray?>(null), /* credentialAttestation */
|
||||
eq(requestID)
|
||||
)
|
||||
assertThat(container.parent).isNull()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testActionAuthenticated_sendsDismissedAuthenticated() {
|
||||
val container = initializeFingerprintContainer()
|
||||
|
||||
Reference in New Issue
Block a user