From a0ce0e6340efc5cf223ed6fe709e0c8409cb46d1 Mon Sep 17 00:00:00 2001 From: Marie Matheson Date: Wed, 9 Mar 2022 18:39:48 +0000 Subject: [PATCH] Bug fix - when enrolled, biometrics have ok safety state. Bug: 222336582 Test: atest SettingsUnitTests Change-Id: Ia90329fa126b181e87ff7ed626ba33eca1e6bf7d --- .../CombinedBiometricStatusUtils.java | 18 ++- .../biometrics/face/FaceStatusUtils.java | 5 +- .../fingerprint/FingerprintStatusUtils.java | 5 +- .../safetycenter/BiometricsSafetySource.java | 13 +- .../CombinedBiometricStatusUtilsTest.java | 51 +++++- .../biometrics/face/FaceStatusUtilsTest.java | 14 ++ .../FingerprintStatusUtilsTest.java | 14 ++ .../BiometricsSafetySourceTest.java | 151 ++++++++++++++++-- 8 files changed, 246 insertions(+), 25 deletions(-) diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java index f1e312a419c..f5ad76b2d9d 100644 --- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java +++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java @@ -55,6 +55,13 @@ public class CombinedBiometricStatusUtils { return Utils.hasFingerprintHardware(mContext) && Utils.hasFaceHardware(mContext); } + /** + * Returns whether at least one face template or fingerprint has been enrolled. + */ + public boolean hasEnrolled() { + return hasEnrolledFingerprints() || hasEnrolledFace(); + } + /** * Returns the {@link EnforcedAdmin} in case parental consent is required to change both * face and fingerprint settings. @@ -84,8 +91,7 @@ public class CombinedBiometricStatusUtils { public String getSummary() { final int numFingerprintsEnrolled = mFingerprintManager != null ? mFingerprintManager.getEnrolledFingerprints(mUserId).size() : 0; - final boolean faceEnrolled = mFaceManager != null - && mFaceManager.hasEnrolledTemplates(mUserId); + final boolean faceEnrolled = hasEnrolledFace(); if (faceEnrolled && numFingerprintsEnrolled > 1) { return mContext.getString( @@ -105,6 +111,14 @@ public class CombinedBiometricStatusUtils { } } + private boolean hasEnrolledFingerprints() { + return mFingerprintManager != null && mFingerprintManager.hasEnrolledFingerprints(mUserId); + } + + private boolean hasEnrolledFace() { + return mFaceManager != null && mFaceManager.hasEnrolledTemplates(mUserId); + } + /** * Returns the class name of the Settings page corresponding to combined biometric settings. */ diff --git a/src/com/android/settings/biometrics/face/FaceStatusUtils.java b/src/com/android/settings/biometrics/face/FaceStatusUtils.java index 4e255439a42..1749aca2051 100644 --- a/src/com/android/settings/biometrics/face/FaceStatusUtils.java +++ b/src/com/android/settings/biometrics/face/FaceStatusUtils.java @@ -75,7 +75,10 @@ public class FaceStatusUtils { : FaceEnrollIntroduction.class.getName(); } - private boolean hasEnrolled() { + /** + * Returns whether at least one face template has been enrolled. + */ + public boolean hasEnrolled() { return mFaceManager.hasEnrolledTemplates(mUserId); } } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java index d23195d594c..5707f328601 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java @@ -82,7 +82,10 @@ public class FingerprintStatusUtils { : FingerprintEnrollIntroduction.class.getName(); } - private boolean hasEnrolled() { + /** + * Returns whether at least one fingerprint has been enrolled. + */ + public boolean hasEnrolled() { return mFingerprintManager.hasEnrolledFingerprints(mUserId); } } diff --git a/src/com/android/settings/safetycenter/BiometricsSafetySource.java b/src/com/android/settings/safetycenter/BiometricsSafetySource.java index c302915cb91..74d8e01b746 100644 --- a/src/com/android/settings/safetycenter/BiometricsSafetySource.java +++ b/src/com/android/settings/safetycenter/BiometricsSafetySource.java @@ -65,6 +65,7 @@ public final class BiometricsSafetySource { combinedBiometricStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, + combinedBiometricStatusUtils.hasEnrolled(), safetyEvent); return; } @@ -82,6 +83,7 @@ public final class BiometricsSafetySource { faceStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, + faceStatusUtils.hasEnrolled(), safetyEvent); return; @@ -101,6 +103,7 @@ public final class BiometricsSafetySource { fingerprintStatusUtils.getSettingsClassName(), disablingAdmin, Bundle.EMPTY), disablingAdmin == null /* enabled */, + fingerprintStatusUtils.hasEnrolled(), safetyEvent); } } @@ -114,12 +117,14 @@ public final class BiometricsSafetySource { } private static void setBiometricSafetySourceData(Context context, String title, String summary, - Intent clickIntent, boolean enabled, SafetyEvent safetyEvent) { + Intent clickIntent, boolean enabled, boolean hasEnrolled, SafetyEvent safetyEvent) { final PendingIntent pendingIntent = createPendingIntent(context, clickIntent); + final int statusLevel = + enabled && hasEnrolled ? SafetySourceStatus.STATUS_LEVEL_OK + : SafetySourceStatus.STATUS_LEVEL_NONE; - final SafetySourceStatus status = new SafetySourceStatus.Builder(title, summary, - SafetySourceStatus.STATUS_LEVEL_NONE, pendingIntent) - .setEnabled(enabled).build(); + final SafetySourceStatus status = new SafetySourceStatus.Builder( + title, summary, statusLevel, pendingIntent).setEnabled(enabled).build(); final SafetySourceData safetySourceData = new SafetySourceData.Builder().setStatus(status).build(); diff --git a/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java index 7d89079a017..10f11101ddf 100644 --- a/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java @@ -57,8 +57,7 @@ public class CombinedBiometricStatusUtilsTest { private static final ComponentName COMPONENT_NAME = new ComponentName("package", "class"); private static final int USER_ID = UserHandle.myUserId(); - private static final UserHandle USER_HANDLE = new UserHandle(USER_ID);; - + private static final UserHandle USER_HANDLE = new UserHandle(USER_ID); @Mock private PackageManager mPackageManager; @@ -122,6 +121,54 @@ public class CombinedBiometricStatusUtilsTest { assertThat(mCombinedBiometricStatusUtils.isAvailable()).isTrue(); } + @Test + public void hasEnrolled_withoutFingerprintHardware_withoutFaceHardware_returnsFalse() { + when(mFingerprintManager.isHardwareDetected()).thenReturn(false); + when(mFaceManager.isHardwareDetected()).thenReturn(false); + + assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse(); + } + + @Test + public void hasEnrolled_withoutFingerprintEnroll_withoutFaceEnroll_returnsFalse() { + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); + + assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isFalse(); + } + + @Test + public void hasEnrolled_withoutFingerprintEnroll_withFaceEnroll_returnsTrue() { + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); + + assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); + } + + @Test + public void hasEnrolled_withFingerprintEnroll_withoutFaceEnroll_returnsTrue() { + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); + + assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); + } + + @Test + public void hasEnrolled_withFingerprintEnroll_withFaceEnroll_returnsTrue() { + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); + + assertThat(mCombinedBiometricStatusUtils.hasEnrolled()).isTrue(); + } + @Test public void getDisabledAdmin_whenFingerprintDisabled_whenFaceDisabled_returnsEnforcedAdmin() { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)) diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java index 8697da73466..9f9dd9355ec 100644 --- a/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java @@ -114,6 +114,20 @@ public class FaceStatusUtilsTest { assertThat(mFaceStatusUtils.isAvailable()).isFalse(); } + @Test + public void hasEnrolled_withEnrolledTemplates_returnsTrue() { + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); + + assertThat(mFaceStatusUtils.hasEnrolled()).isTrue(); + } + + @Test + public void hasEnrolled_withoutEnrolledTemplates_returnsFalse() { + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); + + assertThat(mFaceStatusUtils.hasEnrolled()).isFalse(); + } + @Test public void getDisabledAdmin_whenFaceDisabled_returnsEnforcedAdmin() { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)) diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java index cbe42982155..4ecf82e3479 100644 --- a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java +++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java @@ -118,6 +118,20 @@ public class FingerprintStatusUtilsTest { assertThat(mFingerprintStatusUtils.isAvailable()).isFalse(); } + @Test + public void hasEnrolled_withEnrolledFingerprints_returnsTrue() { + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); + + assertThat(mFingerprintStatusUtils.hasEnrolled()).isTrue(); + } + + @Test + public void hasEnrolled_withoutEnrolledFingerprints_returnsFalse() { + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + + assertThat(mFingerprintStatusUtils.hasEnrolled()).isFalse(); + } + @Test public void getDisabledAdmin_whenFingerprintDisabled_returnsEnforcedAdmin() { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)) diff --git a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java index 13778f7bd0e..3030f0c1220 100644 --- a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java +++ b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java @@ -23,6 +23,7 @@ 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.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -112,8 +113,8 @@ public class BiometricsSafetySourceTest { BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); } @Test @@ -124,8 +125,8 @@ public class BiometricsSafetySourceTest { BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); } @Test @@ -137,11 +138,9 @@ public class BiometricsSafetySourceTest { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0); BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); - ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); - verify(mSafetyCenterManagerWrapper).setSafetySourceData( - any(), captor.capture(), any(), any()); - assertThat(captor.getValue()).isEqualTo(BiometricsSafetySource.SAFETY_SOURCE_ID); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), any(), any()); } @Test @@ -153,11 +152,9 @@ public class BiometricsSafetySourceTest { when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME)).thenReturn(0); BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); - ArgumentCaptor captor = ArgumentCaptor.forClass(SafetyEvent.class); - verify(mSafetyCenterManagerWrapper).setSafetySourceData( - any(), any(), any(), captor.capture()); - assertThat(captor.getValue()).isEqualTo(EVENT_SOURCE_STATE_CHANGED); + verify(mSafetyCenterManagerWrapper) + .setSafetySourceData(any(), any(), any(), eq(EVENT_SOURCE_STATE_CHANGED)); } @Test @@ -429,6 +426,128 @@ public class BiometricsSafetySourceTest { Settings.CombinedBiometricSettingsActivity.class.getName()); } + @Test + public void setSafetySourceData_faceAndFingerprint_whenFaceEnrolled_setsOkStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK); + } + + @Test + public void setSafetySourceData_faceAndFingerprint_whenFingerprintEnrolled_setsOkStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK); + } + + @Test + public void setSafetySourceData_faceAndFingerprint_whenNotEnrolled_setsNoneStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE); + } + + @Test + public void setSafetySourceData_fingerprint_whenEnrolled_setsOKStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(false); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK); + } + + @Test + public void setSafetySourceData_fingerprint_whenNotEnrolled_setsNoneStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.isHardwareDetected()).thenReturn(false); + when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE); + } + + @Test + public void setSafetySourceData_face_whenEnrolled_setsOKStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(false); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_OK); + } + + @Test + public void setSafetySourceData_face_whenNotEnrolled_setsNoneStatus() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + when(mFingerprintManager.isHardwareDetected()).thenReturn(false); + when(mFaceManager.isHardwareDetected()).thenReturn(true); + when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false); + + BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED); + + ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); + SafetySourceStatus safetySourceStatus = captor.getValue().getStatus(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE); + } + private void assertSafetySourceDisabledDataSetWithSingularSummary(String expectedTitleResName, String expectedSummaryResName) { assertSafetySourceDisabledDataSet( @@ -478,13 +597,16 @@ public class BiometricsSafetySourceTest { private void assertSafetySourceDisabledDataSet(String expectedTitle, String expectedSummary) { ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); verify(mSafetyCenterManagerWrapper).setSafetySourceData( - any(), any(), captor.capture(), any()); + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); SafetySourceData safetySourceData = captor.getValue(); SafetySourceStatus safetySourceStatus = safetySourceData.getStatus(); assertThat(safetySourceStatus.getTitle().toString()).isEqualTo(expectedTitle); assertThat(safetySourceStatus.getSummary().toString()).isEqualTo(expectedSummary); assertThat(safetySourceStatus.isEnabled()).isFalse(); + assertThat(safetySourceStatus.getStatusLevel()) + .isEqualTo(SafetySourceStatus.STATUS_LEVEL_NONE); + final Intent clickIntent = safetySourceStatus.getPendingIntent().getIntent(); assertThat(clickIntent).isNotNull(); assertThat(clickIntent.getAction()).isEqualTo(ACTION_SHOW_ADMIN_SUPPORT_DETAILS); @@ -494,7 +616,7 @@ public class BiometricsSafetySourceTest { String expectedSettingsClassName) { ArgumentCaptor captor = ArgumentCaptor.forClass(SafetySourceData.class); verify(mSafetyCenterManagerWrapper).setSafetySourceData( - any(), any(), captor.capture(), any()); + any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any()); SafetySourceData safetySourceData = captor.getValue(); SafetySourceStatus safetySourceStatus = safetySourceData.getStatus(); @@ -509,7 +631,6 @@ public class BiometricsSafetySourceTest { .isEqualTo(expectedSettingsClassName); } - private List createFingerprintList(int size) { final List fingerprintList = new ArrayList<>(size); for (int i = 0; i < size; i++) {