Merge "Update face & fingerprint pref logic" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
1b55eb8bfc
@@ -18,10 +18,15 @@ package com.android.settings.biometrics.combination;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.face.FaceManager;
|
||||
@@ -30,6 +35,7 @@ import android.os.UserManager;
|
||||
|
||||
import com.android.settings.testutils.ActiveUnlockTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
|
||||
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -46,7 +52,7 @@ import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowDeviceConfig.class})
|
||||
@Config(shadows = {ShadowDeviceConfig.class, ShadowRestrictedLockUtilsInternal.class})
|
||||
public class BiometricFaceStatusPreferenceControllerTest {
|
||||
|
||||
@Rule public final MockitoRule mMocks = MockitoJUnit.rule();
|
||||
@@ -78,6 +84,7 @@ public class BiometricFaceStatusPreferenceControllerTest {
|
||||
@After
|
||||
public void tearDown() {
|
||||
ActiveUnlockTestUtils.disable(mContext);
|
||||
ShadowRestrictedLockUtilsInternal.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -110,4 +117,43 @@ public class BiometricFaceStatusPreferenceControllerTest {
|
||||
|
||||
assertThat(mPreference.isVisible()).isTrue();
|
||||
}
|
||||
@Test
|
||||
public void faceDisabled_whenAdminAndNoFingerprintsEnrolled() {
|
||||
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
|
||||
|
||||
ShadowRestrictedLockUtilsInternal
|
||||
.setKeyguardDisabledFeatures(DevicePolicyManager.KEYGUARD_DISABLE_FACE);
|
||||
|
||||
final RestrictedPreference restrictedPreference = mock(RestrictedPreference.class);
|
||||
mController.updateState(restrictedPreference);
|
||||
|
||||
verify(restrictedPreference).setDisabledByAdmin(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void faceNotDisabled_whenAdminAndFingerprintsEnrolled() {
|
||||
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||
when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
|
||||
|
||||
ShadowRestrictedLockUtilsInternal
|
||||
.setKeyguardDisabledFeatures(DevicePolicyManager.KEYGUARD_DISABLE_FACE);
|
||||
|
||||
final RestrictedPreference restrictedPreference = mock(RestrictedPreference.class);
|
||||
mController.updateState(restrictedPreference);
|
||||
|
||||
verify(restrictedPreference, never()).setDisabledByAdmin(any());
|
||||
verify(restrictedPreference).setEnabled(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void faceNotDisabled_whenNoAdmin() {
|
||||
when(mFaceManager.isHardwareDetected()).thenReturn(true);
|
||||
|
||||
final RestrictedPreference restrictedPreference = mock(RestrictedPreference.class);
|
||||
mController.updateState(restrictedPreference);
|
||||
|
||||
verify(restrictedPreference, never()).setDisabledByAdmin(any());
|
||||
verify(restrictedPreference).setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,10 +18,15 @@ package com.android.settings.biometrics.combination;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.face.FaceManager;
|
||||
@@ -30,6 +35,7 @@ import android.os.UserManager;
|
||||
|
||||
import com.android.settings.testutils.ActiveUnlockTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
|
||||
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -46,7 +52,7 @@ import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowDeviceConfig.class})
|
||||
@Config(shadows = {ShadowDeviceConfig.class, ShadowRestrictedLockUtilsInternal.class})
|
||||
public class BiometricFingerprintStatusPreferenceControllerTest {
|
||||
|
||||
@Rule public final MockitoRule mMocks = MockitoJUnit.rule();
|
||||
@@ -78,6 +84,7 @@ public class BiometricFingerprintStatusPreferenceControllerTest {
|
||||
@After
|
||||
public void tearDown() {
|
||||
ActiveUnlockTestUtils.disable(mContext);
|
||||
ShadowRestrictedLockUtilsInternal.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -110,4 +117,45 @@ public class BiometricFingerprintStatusPreferenceControllerTest {
|
||||
|
||||
assertThat(mPreference.isVisible()).isTrue();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void fingerprintDisabled_whenAdminAndNoFingerprintsEnrolled() {
|
||||
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
|
||||
|
||||
ShadowRestrictedLockUtilsInternal
|
||||
.setKeyguardDisabledFeatures(DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
|
||||
|
||||
final RestrictedPreference restrictedPreference = mock(RestrictedPreference.class);
|
||||
mController.updateState(restrictedPreference);
|
||||
|
||||
verify(restrictedPreference).setDisabledByAdmin(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fingerprintNotDisabled_whenAdminAndFingerprintsEnrolled() {
|
||||
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||
when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
|
||||
|
||||
ShadowRestrictedLockUtilsInternal
|
||||
.setKeyguardDisabledFeatures(DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
|
||||
|
||||
final RestrictedPreference restrictedPreference = mock(RestrictedPreference.class);
|
||||
mController.updateState(restrictedPreference);
|
||||
|
||||
verify(restrictedPreference, never()).setDisabledByAdmin(any());
|
||||
verify(restrictedPreference).setEnabled(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fingerprintNotDisabled_whenNoAdmin() {
|
||||
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
|
||||
|
||||
final RestrictedPreference restrictedPreference = mock(RestrictedPreference.class);
|
||||
mController.updateState(restrictedPreference);
|
||||
|
||||
verify(restrictedPreference, never()).setDisabledByAdmin(any());
|
||||
verify(restrictedPreference).setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,6 +127,7 @@ public class FaceSettingsLockscreenBypassPreferenceControllerTest {
|
||||
EnforcedAdmin admin = new EnforcedAdmin();
|
||||
doReturn(admin).when(mController).getRestrictingAdmin();
|
||||
mController.updateState(mPreference);
|
||||
verify(mPreference).setDisabledByAdmin(admin);
|
||||
|
||||
verify(mPreference).setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ import androidx.preference.Preference;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -55,11 +56,13 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowRestrictedLockUtilsInternal.class})
|
||||
public class FaceStatusPreferenceControllerTest {
|
||||
|
||||
private static final String TEST_PREF_KEY = "baz";
|
||||
|
||||
@@ -43,6 +43,7 @@ import androidx.preference.Preference;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -56,11 +57,13 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowRestrictedLockUtilsInternal.class})
|
||||
public class FingerprintStatusPreferenceControllerTest {
|
||||
|
||||
@Mock
|
||||
|
||||
Reference in New Issue
Block a user