diff options
| author | 2022-10-14 21:13:01 +0800 | |
|---|---|---|
| committer | 2022-10-14 16:10:16 +0000 | |
| commit | 68ea9cbb169cf16e8f6be81cd34db5c5b681723e (patch) | |
| tree | 4c0b1c05345b2a6a3dc5d13b729de61dc0737a19 | |
| parent | a918fd17674d018710d48afc4ea7c8417de0ccbb (diff) | |
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
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.kt | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.kt index d52612b000bc..f2ae7a1b2a5b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.kt @@ -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 @@ -143,6 +145,35 @@ class AuthContainerViewTest : SysuiTestCase() { } @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() container.mBiometricCallback.onAction( |