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

Commit 43f2b4a2 authored by Joe Bolinger's avatar Joe Bolinger Committed by Android (Google) Code Review
Browse files

Merge "Replace timeout errors with Face not recognized." into udc-qpr-dev

parents 8bba611b 504c55a3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1113,7 +1113,8 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
                if (DEBUG) Log.d(TAG, "onBiometricError, lockout");
                mCurrentDialog.animateToCredentialUI();
            } else if (isSoftError) {
                final String errorMessage = (error == BiometricConstants.BIOMETRIC_PAUSED_REJECTED)
                final String errorMessage = (error == BiometricConstants.BIOMETRIC_PAUSED_REJECTED
                        || error == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT)
                        ? getNotRecognizedString(modality)
                        : getErrorString(modality, error, vendorCode);
                if (DEBUG) Log.d(TAG, "onBiometricError, soft error: " + errorMessage);
+36 −35
Original line number Diff line number Diff line
@@ -191,6 +191,10 @@ public class AuthControllerTest extends SysuiTestCase {
    private ArgumentCaptor<IFaceAuthenticatorsRegisteredCallback> mFaceAuthenticatorsRegisteredCaptor;
    @Captor
    private ArgumentCaptor<BiometricStateListener> mBiometricStateCaptor;
    @Captor
    private ArgumentCaptor<Integer> mModalityCaptor;
    @Captor
    private ArgumentCaptor<String> mMessageCaptor;
    @Mock
    private Resources mResources;

@@ -482,17 +486,26 @@ public class AuthControllerTest extends SysuiTestCase {
                BiometricConstants.BIOMETRIC_PAUSED_REJECTED,
                0 /* vendorCode */);

        ArgumentCaptor<Integer> modalityCaptor = ArgumentCaptor.forClass(Integer.class);
        ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
        verify(mDialog1).onAuthenticationFailed(modalityCaptor.capture(), messageCaptor.capture());
        verify(mDialog1).onAuthenticationFailed(mModalityCaptor.capture(), mMessageCaptor.capture());

        assertEquals(modalityCaptor.getValue().intValue(), modality);
        assertEquals(messageCaptor.getValue(),
        assertEquals(mModalityCaptor.getValue().intValue(), modality);
        assertEquals(mMessageCaptor.getValue(),
                mContext.getString(R.string.biometric_not_recognized));
    }

    @Test
    public void testOnAuthenticationFailedInvoked_whenFaceAuthRejected() throws RemoteException {
    public void testOnAuthenticationFailedInvoked_coex_whenFaceAuthRejected_withPaused() {
        testOnAuthenticationFailedInvoked_coex_whenFaceAuthRejected(
                BiometricConstants.BIOMETRIC_PAUSED_REJECTED);
    }

    @Test
    public void testOnAuthenticationFailedInvoked_coex_whenFaceAuthRejected_withTimeout() {
        testOnAuthenticationFailedInvoked_coex_whenFaceAuthRejected(
                BiometricConstants.BIOMETRIC_ERROR_TIMEOUT);
    }

    private void testOnAuthenticationFailedInvoked_coex_whenFaceAuthRejected(int error) {
        final int modality = BiometricAuthenticator.TYPE_FACE;
        final int userId = 0;

@@ -500,16 +513,12 @@ public class AuthControllerTest extends SysuiTestCase {

        showDialog(new int[] {1} /* sensorIds */, false /* credentialAllowed */);

        mAuthController.onBiometricError(modality,
                BiometricConstants.BIOMETRIC_PAUSED_REJECTED,
                0 /* vendorCode */);
        mAuthController.onBiometricError(modality, error, 0 /* vendorCode */);

        ArgumentCaptor<Integer> modalityCaptor = ArgumentCaptor.forClass(Integer.class);
        ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
        verify(mDialog1).onAuthenticationFailed(modalityCaptor.capture(), messageCaptor.capture());
        verify(mDialog1).onAuthenticationFailed(mModalityCaptor.capture(), mMessageCaptor.capture());

        assertEquals(modalityCaptor.getValue().intValue(), modality);
        assertEquals(messageCaptor.getValue(),
        assertThat(mModalityCaptor.getValue().intValue()).isEqualTo(modality);
        assertThat(mMessageCaptor.getValue()).isEqualTo(
                mContext.getString(R.string.biometric_face_not_recognized));
    }

@@ -526,12 +535,10 @@ public class AuthControllerTest extends SysuiTestCase {
                BiometricConstants.BIOMETRIC_PAUSED_REJECTED,
                0 /* vendorCode */);

        ArgumentCaptor<Integer> modalityCaptor = ArgumentCaptor.forClass(Integer.class);
        ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
        verify(mDialog1).onAuthenticationFailed(modalityCaptor.capture(), messageCaptor.capture());
        verify(mDialog1).onAuthenticationFailed(mModalityCaptor.capture(), mMessageCaptor.capture());

        assertEquals(modalityCaptor.getValue().intValue(), modality);
        assertEquals(messageCaptor.getValue(),
        assertThat(mModalityCaptor.getValue().intValue()).isEqualTo(modality);
        assertThat(mMessageCaptor.getValue()).isEqualTo(
                mContext.getString(R.string.fingerprint_error_not_match));
    }

@@ -543,13 +550,11 @@ public class AuthControllerTest extends SysuiTestCase {
        final int vendorCode = 0;
        mAuthController.onBiometricError(modality, error, vendorCode);

        ArgumentCaptor<Integer> modalityCaptor = ArgumentCaptor.forClass(Integer.class);
        ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
        verify(mDialog1).onAuthenticationFailed(modalityCaptor.capture(), messageCaptor.capture());
        verify(mDialog1).onAuthenticationFailed(mModalityCaptor.capture(), mMessageCaptor.capture());

        assertEquals(modalityCaptor.getValue().intValue(), modality);
        assertEquals(messageCaptor.getValue(),
                FaceManager.getErrorString(mContext, error, vendorCode));
        assertThat(mModalityCaptor.getValue().intValue()).isEqualTo(modality);
        assertThat(mMessageCaptor.getValue()).isEqualTo(
                mContext.getString(R.string.biometric_not_recognized));
    }

    @Test
@@ -559,12 +564,10 @@ public class AuthControllerTest extends SysuiTestCase {
        final String helpMessage = "help";
        mAuthController.onBiometricHelp(modality, helpMessage);

        ArgumentCaptor<Integer> modalityCaptor = ArgumentCaptor.forClass(Integer.class);
        ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
        verify(mDialog1).onHelp(modalityCaptor.capture(), messageCaptor.capture());
        verify(mDialog1).onHelp(mModalityCaptor.capture(), mMessageCaptor.capture());

        assertEquals(modalityCaptor.getValue().intValue(), modality);
        assertEquals(messageCaptor.getValue(), helpMessage);
        assertThat(mModalityCaptor.getValue().intValue()).isEqualTo(modality);
        assertThat(mMessageCaptor.getValue()).isEqualTo(helpMessage);
    }

    @Test
@@ -575,12 +578,10 @@ public class AuthControllerTest extends SysuiTestCase {
        final int vendorCode = 0;
        mAuthController.onBiometricError(modality, error, vendorCode);

        ArgumentCaptor<Integer> modalityCaptor = ArgumentCaptor.forClass(Integer.class);
        ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
        verify(mDialog1).onError(modalityCaptor.capture(), messageCaptor.capture());
        verify(mDialog1).onError(mModalityCaptor.capture(), mMessageCaptor.capture());

        assertEquals(modalityCaptor.getValue().intValue(), modality);
        assertEquals(messageCaptor.getValue(),
        assertThat(mModalityCaptor.getValue().intValue()).isEqualTo(modality);
        assertThat(mMessageCaptor.getValue()).isEqualTo(
                FaceManager.getErrorString(mContext, error, vendorCode));
    }