import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.search.SearchFeatureProvider;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedPreference;
@VisibleForTesting
static final int CONFIRM_EXISTING_REQUEST = 100;
- private static final int ENABLE_ENCRYPTION_REQUEST = 101;
- private static final int CHOOSE_LOCK_REQUEST = 102;
- private static final int CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST = 103;
- private static final int SKIP_FINGERPRINT_REQUEST = 104;
+ @VisibleForTesting
+ static final int ENABLE_ENCRYPTION_REQUEST = 101;
+ @VisibleForTesting
+ static final int CHOOSE_LOCK_REQUEST = 102;
+ @VisibleForTesting
+ static final int CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST = 103;
+ @VisibleForTesting
+ static final int SKIP_FINGERPRINT_REQUEST = 104;
private ChooseLockSettingsHelper mChooseLockSettingsHelper;
private DevicePolicyManager mDPM;
resultCode == RESULT_FINISHED ? RESULT_OK : resultCode, data);
finish();
}
+ } else if (requestCode == SearchFeatureProvider.REQUEST_CODE) {
+ return;
} else {
getActivity().setResult(Activity.RESULT_CANCELED);
finish();
package com.android.settings.password;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.doNothing;
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.Activity;
import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings.Global;
import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
+import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
public class ChooseLockGenericTest {
+ private Context mContext;
+ private ChooseLockGenericFragment mFragment;
+ private FragmentActivity mActivity;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mFragment = spy(new ChooseLockGenericFragment());
+ mActivity = mock(FragmentActivity.class);
+ when(mFragment.getActivity()).thenReturn(mActivity);
+ when(mFragment.getFragmentManager()).thenReturn(mock(FragmentManager.class));
+ doNothing().when(mFragment).startActivity(any(Intent.class));
+ }
+
@After
public void tearDown() {
Global.putInt(RuntimeEnvironment.application.getContentResolver(),
- Global.DEVICE_PROVISIONED, 1);
+ Global.DEVICE_PROVISIONED, 1);
}
@Test
@Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
public void onCreate_deviceNotProvisioned_shouldFinishActivity() {
- final Context context = RuntimeEnvironment.application;
- Global.putInt(context.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
- final FragmentActivity activity = mock(FragmentActivity.class);
- when(activity.getContentResolver()).thenReturn(context.getContentResolver());
- when(activity.getTheme()).thenReturn(context.getTheme());
-
- final ChooseLockGenericFragment fragment = spy(new ChooseLockGenericFragment());
- when(fragment.getActivity()).thenReturn(activity);
- when(fragment.getArguments()).thenReturn(Bundle.EMPTY);
-
- fragment.onCreate(Bundle.EMPTY);
- verify(activity).finish();
+ Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
+ when(mActivity.getContentResolver()).thenReturn(mContext.getContentResolver());
+ when(mActivity.getTheme()).thenReturn(mContext.getTheme());
+ when(mFragment.getArguments()).thenReturn(Bundle.EMPTY);
+
+ mFragment.onCreate(Bundle.EMPTY);
+ verify(mActivity).finish();
}
@Test
public void onActivityResult_nullIntentData_shouldNotCrash() {
- ChooseLockGenericFragment fragment = spy(new ChooseLockGenericFragment());
- doNothing().when(fragment).updatePreferencesOrFinish(anyBoolean());
+ doNothing().when(mFragment).updatePreferencesOrFinish(anyBoolean());
- fragment.onActivityResult(
- fragment.CONFIRM_EXISTING_REQUEST, Activity.RESULT_OK, null /* data */);
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.CONFIRM_EXISTING_REQUEST, Activity.RESULT_OK,
+ null /* data */);
// no crash
}
+ @Test
+ public void onActivityResult_requestcode0_shouldNotFinish() {
+ mFragment.onActivityResult(
+ SearchFeatureProvider.REQUEST_CODE, Activity.RESULT_OK, null /* data */);
+
+ verify(mFragment, never()).finish();
+ }
+
+ @Test
+ public void onActivityResult_requestcode101_shouldFinish() {
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.ENABLE_ENCRYPTION_REQUEST, Activity.RESULT_OK,
+ null /* data */);
+
+ verify(mFragment).finish();
+ }
+
+ @Test
+ public void onActivityResult_requestcode102_shouldFinish() {
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.CHOOSE_LOCK_REQUEST, Activity.RESULT_OK, null /* data */);
+
+ verify(mFragment).finish();
+ }
+
+ @Test
+ public void onActivityResult_requestcode103_shouldFinish() {
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST,
+ BiometricEnrollBase.RESULT_FINISHED, null /* data */);
+
+ verify(mFragment).finish();
+ }
+
+ @Test
+ public void onActivityResult_requestcode104_shouldFinish() {
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.SKIP_FINGERPRINT_REQUEST, Activity.RESULT_OK,
+ null /* data */);
+
+ verify(mFragment).finish();
+ }
}