Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb5757ca authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add a unit test to test hiding IME when dismissing biometrics UI"

parents 5b0cabd9 68ea9cbb
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -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()