Check password blacklist when setting credential
If the password is valid by all other checks, see if it is present on the blacklist and disallow it if it is. Test: set a password blacklist, try and set a blacklisted password and see an explanation, set a non-blacklisted password successfully. Test: make ROBOTEST_FILTER=ChooseLockPasswordTest RunSettingsRoboTests Bug: 63578054 Fix: 65659151 Change-Id: Id155b824ad4b5839c23b6f5fd3fdfdcfc78c3df1
This commit is contained in:
committed by
Andrew Scull
parent
3a2573b812
commit
aeb3e4473b
@@ -127,6 +127,36 @@ public class ChooseLockPasswordTest {
|
||||
.isEqualTo(123);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void blacklist_addsErrorMessageForPin() {
|
||||
final ChooseLockPassword activity = buildChooseLockPasswordActivity(
|
||||
new IntentBuilder(application)
|
||||
.setUserId(UserHandle.myUserId())
|
||||
// Set to numeric for a PIN
|
||||
.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC)
|
||||
.build());
|
||||
final ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(activity);
|
||||
final int errors = ChooseLockPasswordFragment.BLACKLISTED;
|
||||
final String[] messages = fragment.convertErrorCodeToMessages(errors);
|
||||
assertThat(messages).isEqualTo(new String[] {
|
||||
activity.getString(R.string.lockpassword_pin_blacklisted_by_admin) });
|
||||
}
|
||||
|
||||
@Test
|
||||
public void blacklist_addsErrorMessageForPassword() {
|
||||
final ChooseLockPassword activity = buildChooseLockPasswordActivity(
|
||||
new IntentBuilder(application)
|
||||
.setUserId(UserHandle.myUserId())
|
||||
// Set to alphabetic for a password
|
||||
.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC)
|
||||
.build());
|
||||
final ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(activity);
|
||||
final int errors = ChooseLockPasswordFragment.BLACKLISTED;
|
||||
final String[] messages = fragment.convertErrorCodeToMessages(errors);
|
||||
assertThat(messages).isEqualTo(new String[] {
|
||||
activity.getString(R.string.lockpassword_password_blacklisted_by_admin) });
|
||||
}
|
||||
|
||||
@Test
|
||||
public void assertThat_chooseLockIconChanged_WhenFingerprintExtraSet() {
|
||||
ShadowDrawable drawable = setActivityAndGetIconDrawable(true);
|
||||
@@ -139,17 +169,22 @@ public class ChooseLockPasswordTest {
|
||||
assertThat(drawable.getCreatedFromResId()).isNotEqualTo(R.drawable.ic_fingerprint_header);
|
||||
}
|
||||
|
||||
private ChooseLockPassword buildChooseLockPasswordActivity(Intent intent) {
|
||||
return Robolectric.buildActivity(ChooseLockPassword.class, intent).setup().get();
|
||||
}
|
||||
|
||||
private ChooseLockPasswordFragment getChooseLockPasswordFragment(ChooseLockPassword activity) {
|
||||
return (ChooseLockPasswordFragment)
|
||||
activity.getFragmentManager().findFragmentById(R.id.main_content);
|
||||
}
|
||||
|
||||
private ShadowDrawable setActivityAndGetIconDrawable(boolean addFingerprintExtra) {
|
||||
ChooseLockPassword passwordActivity =
|
||||
Robolectric.buildActivity(
|
||||
ChooseLockPassword.class,
|
||||
new IntentBuilder(application)
|
||||
.setUserId(UserHandle.myUserId())
|
||||
.setForFingerprint(addFingerprintExtra)
|
||||
.build())
|
||||
.setup().get();
|
||||
ChooseLockPasswordFragment fragment = (ChooseLockPasswordFragment)
|
||||
passwordActivity.getFragmentManager().findFragmentById(R.id.main_content);
|
||||
ChooseLockPassword passwordActivity = buildChooseLockPasswordActivity(
|
||||
new IntentBuilder(application)
|
||||
.setUserId(UserHandle.myUserId())
|
||||
.setForFingerprint(addFingerprintExtra)
|
||||
.build());
|
||||
ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
|
||||
return Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user