Merge "(2/N) Biometric error dialog" into main
This commit is contained in:
@@ -55,7 +55,11 @@ import android.widget.LinearLayout;
|
||||
import android.widget.ScrollView;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
|
||||
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||
import com.android.settingslib.development.DevelopmentSettingsEnabler;
|
||||
@@ -114,6 +118,10 @@ public class MainClearTest {
|
||||
|
||||
@Mock
|
||||
private Intent mMockIntent;
|
||||
@Mock
|
||||
private FragmentManager mMockFragmentManager;
|
||||
@Mock
|
||||
private FragmentTransaction mMockFragmentTransaction;
|
||||
|
||||
private MainClear mMainClear;
|
||||
private ShadowActivity mShadowActivity;
|
||||
@@ -391,6 +399,9 @@ public class MainClearTest {
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
|
||||
public void testOnActivityResultInternal_keyguardRequestNotTriggeringBiometricPrompt_lockoutError() {
|
||||
final ArgumentCaptor<IdentityCheckBiometricErrorDialog> argumentCaptor =
|
||||
ArgumentCaptor.forClass(IdentityCheckBiometricErrorDialog.class);
|
||||
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
|
||||
when(mResources.getString(anyInt())).thenReturn(TEST_ACCOUNT_NAME);
|
||||
@@ -400,12 +411,17 @@ public class MainClearTest {
|
||||
doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
|
||||
doNothing().when(mMainClear).startActivityForResult(any(), anyInt());
|
||||
doReturn(mMockActivity).when(mMainClear).getActivity();
|
||||
doReturn(mMockFragmentManager).when(mMockActivity).getSupportFragmentManager();
|
||||
doReturn(mMockFragmentTransaction).when(mMockFragmentManager).beginTransaction();
|
||||
doReturn(mContext).when(mMainClear).getContext();
|
||||
|
||||
mMainClear
|
||||
.onActivityResultInternal(MainClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
|
||||
|
||||
verify(mMainClear).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
|
||||
verify(mMainClear.getActivity().getSupportFragmentManager().beginTransaction()).add(
|
||||
argumentCaptor.capture(), any());
|
||||
assertThat(argumentCaptor.getValue()).isInstanceOf(IdentityCheckBiometricErrorDialog.class);
|
||||
verify(mMainClear, never()).startActivityForResult(any(), eq(MainClear.BIOMETRICS_REQUEST));
|
||||
verify(mMainClear, never()).establishInitialState();
|
||||
verify(mMainClear, never()).getAccountConfirmationIntent();
|
||||
@@ -427,6 +443,29 @@ public class MainClearTest {
|
||||
verify(mMainClear).showFinalConfirmation();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnActivityResultInternal_biometricRequestTriggeringBiometricErrorDialog() {
|
||||
final ArgumentCaptor<IdentityCheckBiometricErrorDialog> argumentCaptor =
|
||||
ArgumentCaptor.forClass(IdentityCheckBiometricErrorDialog.class);
|
||||
|
||||
doReturn(true).when(mMainClear).isValidRequestCode(
|
||||
eq(MainClear.BIOMETRICS_REQUEST));
|
||||
doNothing().when(mMainClear).establishInitialState();
|
||||
doReturn(mMockActivity).when(mMainClear).getActivity();
|
||||
doReturn(mMockFragmentManager).when(mMockActivity).getSupportFragmentManager();
|
||||
doReturn(mMockFragmentTransaction).when(mMockFragmentManager).beginTransaction();
|
||||
doReturn(mContext).when(mMainClear).getContext();
|
||||
|
||||
mMainClear
|
||||
.onActivityResultInternal(MainClear.BIOMETRICS_REQUEST,
|
||||
ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT, null);
|
||||
|
||||
verify(mMainClear).isValidRequestCode(eq(MainClear.BIOMETRICS_REQUEST));
|
||||
verify(mMainClear.getActivity().getSupportFragmentManager().beginTransaction()).add(
|
||||
argumentCaptor.capture(), any());
|
||||
verify(mMainClear).establishInitialState();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnActivityResultInternal_biometricRequestTriggeringInitialState() {
|
||||
doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.BIOMETRICS_REQUEST));
|
||||
|
@@ -42,6 +42,7 @@ import androidx.fragment.app.FragmentActivity;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.biometrics.IdentityCheckBiometricErrorDialog;
|
||||
import com.android.settings.password.ConfirmDeviceCredentialActivity;
|
||||
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
|
||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||
@@ -236,7 +237,8 @@ public class DevelopmentSettingsDashboardFragmentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowBiometricErrorDialog.class)
|
||||
@Config(shadows = ShadowIdentityCheckBiometricErrorDialog.class)
|
||||
@Ignore("b/354820314")
|
||||
@EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
|
||||
public void onActivityResult_requestBiometricPrompt_showErrorDialog() {
|
||||
when(mDashboard.getContext()).thenReturn(mContext);
|
||||
@@ -247,7 +249,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
|
||||
ConfirmDeviceCredentialActivity.BIOMETRIC_LOCKOUT_ERROR_RESULT, null);
|
||||
|
||||
assertThat(mSwitchBar.isChecked()).isFalse();
|
||||
assertThat(ShadowBiometricErrorDialog.sShown).isTrue();
|
||||
assertThat(ShadowIdentityCheckBiometricErrorDialog.sShown).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -379,8 +381,8 @@ public class DevelopmentSettingsDashboardFragmentTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Implements(BiometricErrorDialog.class)
|
||||
public static class ShadowBiometricErrorDialog {
|
||||
@Implements(IdentityCheckBiometricErrorDialog.class)
|
||||
public static class ShadowIdentityCheckBiometricErrorDialog {
|
||||
static boolean sShown;
|
||||
@Implementation
|
||||
public static void showBiometricErrorDialog(FragmentActivity fragmentActivity,
|
||||
|
Reference in New Issue
Block a user