Merge "Refine SkipDialog title and desc by device configs" into udc-dev am: 4d5063ffdc am: f6d23468b1

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22779802

Change-Id: I409d9db2155b71005aeec519dadac701f5e5d550
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Bill Lin
2023-05-10 01:09:37 +00:00
committed by Automerger Merge Worker
13 changed files with 359 additions and 201 deletions

View File

@@ -79,6 +79,7 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowPersistentDataBlockManager;
@@ -98,6 +99,8 @@ public class ChooseLockGenericTest {
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
private ActivityController<ChooseLockGeneric> mActivityController;
private FakeFeatureFactory mFakeFeatureFactory;
private ChooseLockGenericFragment mFragment;
private ChooseLockGeneric mActivity;
@@ -109,7 +112,8 @@ public class ChooseLockGenericTest {
@Before
public void setUp() {
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mActivity = Robolectric.buildActivity(ChooseLockGeneric.class)
mActivityController = Robolectric.buildActivity(ChooseLockGeneric.class);
mActivity = mActivityController
.create()
.start()
.postCreate(null)
@@ -314,6 +318,20 @@ public class ChooseLockGenericTest {
assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void securedScreenLock_notChangingConfig_notWaitForConfirmation_onStopFinishSelf() {
Intent intent = new Intent().putExtra(
LockPatternUtils.PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
intent.putExtra("waiting_for_confirmation", true);
initActivity(intent);
mFragment.updatePreferencesOrFinish(false /* isRecreatingActivity */);
mActivityController.configurationChange();
mActivityController.stop();
assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void onPreferenceTreeClick_fingerprintPassesMinComplexityInfoOntoNextActivity() {
Intent intent = new Intent(ACTION_SET_NEW_PASSWORD)
@@ -534,10 +552,10 @@ public class ChooseLockGenericTest {
assertThat(passwordIntent.getIntExtra(ChooseLockPassword.EXTRA_KEY_MIN_COMPLEXITY,
PASSWORD_COMPLEXITY_NONE)).isEqualTo(PASSWORD_COMPLEXITY_LOW);
final String supportFingerprint = mActivity.getResources().getString(
R.string.security_settings_fingerprint);
final String supportFace = mActivity.getResources().getString(
R.string.keywords_face_settings);
final String supportFingerprint = capitalize(mActivity.getResources().getString(
R.string.security_settings_fingerprint));
final String supportFace = capitalize(mActivity.getResources().getString(
R.string.keywords_face_settings));
assertThat(mFragment.getBiometricsPreferenceTitle(ScreenLockType.PIN)).contains(
supportFingerprint);
@@ -563,4 +581,8 @@ public class ChooseLockGenericTest {
.create().start().postCreate(null).resume().get();
mActivity.getSupportFragmentManager().beginTransaction().add(mFragment, null).commitNow();
}
private static String capitalize(final String input) {
return Character.toUpperCase(input.charAt(0)) + input.substring(1);
}
}

View File

@@ -21,6 +21,7 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_HIGH;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -43,6 +44,7 @@ import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowPasswordUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.utils.ActivityControllerWrapper;
import com.google.android.setupdesign.GlifPreferenceLayout;
@@ -100,6 +102,7 @@ public class SetupChooseLockGenericTest {
@Test
public void setupChooseLockGenericPasswordComplexityExtraWithoutPermission() {
Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
SetupChooseLockGeneric activity =
Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).create().get();
@@ -114,6 +117,7 @@ public class SetupChooseLockGenericTest {
ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
SetupChooseLockGeneric activity =
Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).create().get();
@@ -124,7 +128,8 @@ public class SetupChooseLockGenericTest {
@Test
public void setupChooseLockGenericUsingDescriptionTextOfGlifLayout() {
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(false);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true, true,
false);
GlifPreferenceLayout view = getViewOfSetupChooseLockGenericFragment(fragment);
assertThat(TextUtils.isEmpty(view.getDescriptionText())).isFalse();
assertThat(view.getDescriptionText().toString()).isEqualTo(fragment.loadDescriptionText());
@@ -132,47 +137,24 @@ public class SetupChooseLockGenericTest {
@Test
public void setupChooseLockGenericUsingDescriptionTextOfGlifLayoutForBiometric() {
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true, true,
true);
GlifPreferenceLayout view = getViewOfSetupChooseLockGenericFragment(fragment);
assertThat(TextUtils.isEmpty(view.getDescriptionText())).isFalse();
assertThat(view.getDescriptionText().toString()).isEqualTo(fragment.loadDescriptionText());
}
@Test
public void updatePreferenceTextShowScreenLockAndFingerprint() {
when(mFakeFeatureFactory.mFaceFeatureProvider.isSetupWizardSupported(any())).thenReturn(
false);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true);
final String supportFingerprint = fragment.getResources().getString(
R.string.security_settings_fingerprint);
final String supportFace = fragment.getResources().getString(
R.string.keywords_face_settings);
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PIN)).contains(
supportFingerprint);
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PIN)).doesNotContain(
supportFace);
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PATTERN)).contains(
supportFingerprint);
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PATTERN)).doesNotContain(
supportFace);
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PASSWORD)).contains(
supportFingerprint);
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PASSWORD)).doesNotContain(
supportFace);
}
@Test
public void updatePreferenceTextShowScreenLockAndShowFaceAndShowFingerprint() {
when(mFakeFeatureFactory.mFaceFeatureProvider.isSetupWizardSupported(any())).thenReturn(
true);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true, true,
true);
final String supportFingerprint = fragment.getResources().getString(
R.string.security_settings_fingerprint);
final String supportFace = fragment.getResources().getString(
R.string.keywords_face_settings);
final String supportFingerprint = capitalize(fragment.getResources().getString(
R.string.security_settings_fingerprint));
final String supportFace = capitalize(fragment.getResources().getString(
R.string.keywords_face_settings));
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PIN)).contains(
supportFingerprint);
@@ -192,12 +174,13 @@ public class SetupChooseLockGenericTest {
public void updatePreferenceTextShowScreenLockAndShowFingerprint() {
when(mFakeFeatureFactory.mFaceFeatureProvider.isSetupWizardSupported(any())).thenReturn(
false);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true);
SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(false, false,
true);
final String supportFingerprint = fragment.getResources().getString(
R.string.security_settings_fingerprint);
final String supportFace = fragment.getResources().getString(
R.string.keywords_face_settings);
final String supportFingerprint = capitalize(fragment.getResources().getString(
R.string.security_settings_fingerprint));
final String supportFace = capitalize(fragment.getResources().getString(
R.string.keywords_face_settings));
assertThat(fragment.getBiometricsPreferenceTitle(ScreenLockType.PIN)).contains(
supportFingerprint);
@@ -213,16 +196,18 @@ public class SetupChooseLockGenericTest {
supportFace);
}
private SetupChooseLockGenericFragment getFragmentOfSetupChooseLockGeneric(boolean biometric) {
private SetupChooseLockGenericFragment getFragmentOfSetupChooseLockGeneric(
boolean forFingerprint, boolean forFace, boolean forBiometric) {
ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, biometric);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, biometric);
// TODO(b/275023433) This presents the activity from being made 'visible` is workaround
SetupChooseLockGeneric activity =
Robolectric.buildActivity(SetupChooseLockGeneric.class,
intent).create().start().postCreate(null).resume().get();
intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, forFingerprint);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, forFace);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, forBiometric);
SetupChooseLockGeneric activity = (SetupChooseLockGeneric) ActivityControllerWrapper.setup(
Robolectric.buildActivity(SetupChooseLockGeneric.class, intent)).get();
List<Fragment> fragments = activity.getSupportFragmentManager().getFragments();
assertThat(fragments).isNotNull();
@@ -238,4 +223,8 @@ public class SetupChooseLockGenericTest {
return (GlifPreferenceLayout) fragment.getView();
}
private static String capitalize(final String input) {
return Character.toUpperCase(input.charAt(0)) + input.substring(1);
}
}

View File

@@ -30,7 +30,6 @@ import android.widget.Button;
import androidx.appcompat.app.AlertDialog;
import com.android.settings.R;
import com.android.settings.utils.ActivityControllerWrapper;
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
import com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment.Stage;
import com.android.settings.password.ChooseLockPassword.IntentBuilder;
@@ -40,6 +39,7 @@ import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.utils.ActivityControllerWrapper;
import com.android.settings.widget.ScrollToParentEditText;
import com.google.android.setupcompat.PartnerCustomizationLayout;
@@ -93,7 +93,6 @@ public class SetupChooseLockPasswordTest {
application,
new IntentBuilder(application).build());
//ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
ActivityControllerWrapper.setup(
Robolectric.buildActivity(SetupChooseLockPassword.class, intent)).get();
}
@@ -204,7 +203,6 @@ public class SetupChooseLockPasswordTest {
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
return (SetupChooseLockPassword) ActivityControllerWrapper.setup(
Robolectric.buildActivity(SetupChooseLockPassword.class, intent)).get();
//return ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
}
@Implements(ChooseLockGenericController.class)

View File

@@ -38,10 +38,10 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternView;
import com.android.internal.widget.LockPatternView.Cell;
import com.android.internal.widget.LockPatternView.DisplayMode;
import com.android.settings.password.ChooseLockPattern.ChooseLockPatternFragment;
import com.android.settings.password.ChooseLockPattern.IntentBuilder;
import com.android.settings.R;
import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.password.ChooseLockPattern.ChooseLockPatternFragment;
import com.android.settings.password.ChooseLockPattern.IntentBuilder;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowUtils;
@@ -84,7 +84,7 @@ public class SetupChooseLockPatternTest {
new IntentBuilder(application)
.setUserId(UserHandle.myUserId())
.build());
//mActivity = ActivityController.of(new SetupChooseLockPattern(), intent).setup().get();
mActivity = (SetupChooseLockPattern) ActivityControllerWrapper.setup(
Robolectric.buildActivity(SetupChooseLockPattern.class, intent)).get();
}

View File

@@ -16,18 +16,34 @@
package com.android.settings.password;
import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PIN;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import androidx.fragment.app.FragmentActivity;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.utils.ActivityControllerWrapper;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
@@ -39,12 +55,25 @@ import org.robolectric.shadows.ShadowApplication;
@Config(shadows = {ShadowUtils.class, ShadowAlertDialog.class})
public class SetupSkipDialogTest {
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@Mock
private FingerprintManager mFingerprintManager;
@Mock
private FaceManager mFaceManager;
private FragmentActivity mActivity;
private FakeFeatureFactory mFakeFeatureFactory;
@Before
public void setUp() {
ShadowUtils.setFingerprintManager(mFingerprintManager);
ShadowUtils.setFaceManager(mFaceManager);
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
Robolectric.buildActivity(FragmentActivity.class)).get();
when(mFakeFeatureFactory.mFaceFeatureProvider.isSetupWizardSupported(any())).thenReturn(
true);
}
private ShadowAlertDialog getShadowAlertDialog() {
@@ -55,10 +84,33 @@ public class SetupSkipDialogTest {
return shadowAlertDialog;
}
private String getSkipSetupTitle(int credentialType, boolean hasFingerprint,
boolean hasFace) {
final int screenLockResId;
switch (credentialType) {
case CREDENTIAL_TYPE_PATTERN:
screenLockResId = R.string.unlock_set_unlock_pattern_title;
break;
case CREDENTIAL_TYPE_PASSWORD:
screenLockResId = R.string.unlock_set_unlock_password_title;
break;
case CREDENTIAL_TYPE_PIN:
default:
screenLockResId = R.string.unlock_set_unlock_pin_title;
break;
}
return mActivity.getString(R.string.lock_screen_skip_setup_title,
BiometricUtils.getCombinedScreenLockOptions(mActivity,
mActivity.getString(screenLockResId), hasFingerprint, hasFace));
}
@Test
public void frpMessages_areShownCorrectly_whenNotSupported() {
when(mFaceManager.isHardwareDetected()).thenReturn(false);
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(false, false, false, false, false, false);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PIN, false, false, false, false, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
@@ -70,8 +122,11 @@ public class SetupSkipDialogTest {
@Test
public void frpMessages_areShownCorrectly_whenSupported() {
when(mFaceManager.isHardwareDetected()).thenReturn(false);
when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, false, false, false, false);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PIN, true, false, false, false, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
@@ -83,117 +138,175 @@ public class SetupSkipDialogTest {
@Test
public void dialogMessage_whenSkipPinSetupForFace_shouldShownCorrectly() {
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, false, false, true, false);
final boolean hasFace = true;
final boolean hasFingerprint = false;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog = SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PIN, false,
false, true, false, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pin_skip_face_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PIN, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pin_skip_face_message));
}
@Test
public void dialogMessage_whenSkipPasswordSetupForFace_shouldShownCorrectly() {
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, true, false, true, false);
final boolean hasFace = true;
final boolean hasFingerprint = false;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog = SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PASSWORD,
false, hasFingerprint, hasFace, false, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_password_skip_face_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PASSWORD, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_password_skip_face_message));
}
@Test
public void dialogMessage_whenSkipPatternSetupForFace_shouldShownCorrectly() {
final boolean hasFace = true;
final boolean hasFingerprint = false;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, true, false, false, true, false);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PATTERN, true, false, true, false,
true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pattern_skip_face_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PATTERN, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pattern_skip_face_message));
}
@Test
public void dialogMessage_whenSkipPinSetupForFingerprint_shouldShownCorrectly() {
final boolean hasFace = false;
final boolean hasFingerprint = true;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, false, true, false, false);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PIN, true, true, false, false, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pin_skip_fingerprint_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PIN, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pin_skip_fingerprint_message));
}
@Test
public void dialogMessage_whenSkipPasswordSetupForFingerprint_shouldShownCorrectly() {
final boolean hasFace = false;
final boolean hasFingerprint = true;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, true, true, false, false);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PASSWORD, true, true, false, false,
true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_password_skip_fingerprint_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PASSWORD, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_password_skip_fingerprint_message));
}
@Test
public void dialogMessage_whenSkipPatternSetupForFingerprint_shouldShownCorrectly() {
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, true, false, true, false, false);
final boolean hasFace = false;
final boolean hasFingerprint = true;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog = SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PATTERN, true,
true, false, false, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pattern_skip_fingerprint_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PATTERN, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pattern_skip_fingerprint_message));
}
@Test
public void dialogMessage_whenSkipPinSetupForBiometrics_shouldShownCorrectly() {
final boolean hasFace = true;
final boolean hasFingerprint = true;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, false, false, false, true);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PIN, true, false, false, true, true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pin_skip_biometrics_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PIN, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pin_skip_biometrics_message));
}
@Test
public void dialogMessage_whenSkipPasswordSetupForBiometrics_shouldShownCorrectly() {
final boolean hasFace = true;
final boolean hasFingerprint = true;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, false, true, false, false, true);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PASSWORD, true, false, false, true,
true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_password_skip_biometrics_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PASSWORD, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_password_skip_biometrics_message));
}
@Test
public void dialogMessage_whenSkipPatternSetupForBiometrics_shouldShownCorrectly() {
final boolean hasFace = true;
final boolean hasFingerprint = true;
when(mFaceManager.isHardwareDetected()).thenReturn(hasFace);
when(mFingerprintManager.isHardwareDetected()).thenReturn(hasFingerprint);
SetupSkipDialog setupSkipDialog =
SetupSkipDialog.newInstance(true, true, false, false, false, true);
SetupSkipDialog.newInstance(CREDENTIAL_TYPE_PATTERN, true, false, false, true,
true);
setupSkipDialog.show(mActivity.getSupportFragmentManager());
ShadowAlertDialog shadowAlertDialog = getShadowAlertDialog();
assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pattern_skip_biometrics_title));
getSkipSetupTitle(CREDENTIAL_TYPE_PATTERN, hasFingerprint, hasFace));
assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
mActivity.getString(R.string.lock_screen_pattern_skip_biometrics_message));
}