|
|
|
@@ -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<String> 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<SafetyEvent> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<SafetySourceData> 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<Fingerprint> createFingerprintList(int size) {
|
|
|
|
|
final List<Fingerprint> fingerprintList = new ArrayList<>(size);
|
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
|
|