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

Commit 6b3f8a34 authored by Diya Bera's avatar Diya Bera Committed by Android (Google) Code Review
Browse files

Merge "Add null checker for hardware auth token" into udc-dev

parents 9188aa60 e3fda07c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -348,6 +348,13 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
            return;
        }

        if (hardwareAuthToken == null) {
            callback.onEnrollmentError(FACE_ERROR_UNABLE_TO_PROCESS,
                    getErrorString(mContext, FACE_ERROR_UNABLE_TO_PROCESS,
                    0 /* vendorCode */));
            return;
        }

        if (getEnrolledFaces(userId).size()
                >= mContext.getResources().getInteger(R.integer.config_faceMaxTemplatesPerUser)) {
            callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
+7 −0
Original line number Diff line number Diff line
@@ -712,6 +712,13 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
            return;
        }

        if (hardwareAuthToken == null) {
            callback.onEnrollmentError(FINGERPRINT_ERROR_UNABLE_TO_PROCESS,
                    getErrorString(mContext, FINGERPRINT_ERROR_UNABLE_TO_PROCESS,
                            0 /* vendorCode */));
            return;
        }

        if (mService != null) {
            try {
                mEnrollmentCallback = callback;
+13 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.hardware.face;

import static android.hardware.biometrics.BiometricFaceConstants.FACE_ERROR_HW_UNAVAILABLE;
import static android.hardware.biometrics.BiometricFaceConstants.FACE_ERROR_UNABLE_TO_PROCESS;

import static com.google.common.truth.Truth.assertThat;

@@ -178,6 +179,18 @@ public class FaceManagerTest {
        verify(mEnrollmentCallback).onEnrollmentError(eq(FACE_ERROR_HW_UNAVAILABLE), anyString());
    }

    @Test
    public void enrollment_errorWhenHardwareAuthTokenIsNull() throws RemoteException {
        initializeProperties();
        mFaceManager.enroll(USER_ID, null,
                new CancellationSignal(), mEnrollmentCallback, null /* disabledFeatures */);

        verify(mEnrollmentCallback).onEnrollmentError(eq(FACE_ERROR_UNABLE_TO_PROCESS),
                anyString());
        verify(mService, never()).enroll(eq(USER_ID), any(), any(),
                any(), anyString(), any(), any(), anyBoolean());
    }

    private void initializeProperties() throws RemoteException {
        verify(mService).addAuthenticatorsRegisteredCallback(mCaptor.capture());

+17 −0
Original line number Diff line number Diff line
@@ -17,12 +17,14 @@
package android.hardware.fingerprint;

import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_HW_UNAVAILABLE;
import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_UNABLE_TO_PROCESS;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -70,6 +72,8 @@ public class FingerprintManagerTest {
    private IFingerprintService mService;
    @Mock
    private FingerprintManager.AuthenticationCallback mAuthCallback;
    @Mock
    private FingerprintManager.EnrollmentCallback mEnrollCallback;

    @Captor
    private ArgumentCaptor<IFingerprintAuthenticatorsRegisteredCallback> mCaptor;
@@ -149,4 +153,17 @@ public class FingerprintManagerTest {

        verify(mAuthCallback).onAuthenticationError(eq(FINGERPRINT_ERROR_HW_UNAVAILABLE), any());
    }

    @Test
    public void enrollment_errorWhenHardwareAuthTokenIsNull() throws RemoteException {
        verify(mService).addAuthenticatorsRegisteredCallback(mCaptor.capture());

        mCaptor.getValue().onAllAuthenticatorsRegistered(mProps);
        mFingerprintManager.enroll(null, new CancellationSignal(), USER_ID,
                mEnrollCallback, FingerprintManager.ENROLL_ENROLL);

        verify(mEnrollCallback).onEnrollmentError(eq(FINGERPRINT_ERROR_UNABLE_TO_PROCESS),
                anyString());
        verify(mService, never()).enroll(any(), any(), anyInt(), any(), anyString(), anyInt());
    }
}