Allow setting password during provisioning if FRP is not supported

On devices without PersistentDataBlock support, we should
always allow setting up password during provisioning.

Bug: 157451551
Test: make RunSettingsRoboTests
      ROBOTEST_FILTER=com.android.settings.password
Test: On cuttlefish, file ACTION_SET_NET_PASSWORD before SUW completes
Change-Id: Ic7b5d99b38e6427750ce70fa7e38f7ef6054d4ad
This commit is contained in:
Rubin Xu
2020-05-26 20:15:00 +01:00
parent 86b5034215
commit 5e51ed6a89
3 changed files with 16 additions and 44 deletions

View File

@@ -34,6 +34,7 @@ import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings.Global;
@@ -48,7 +49,6 @@ import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowPersistentDataBlockManager;
import com.android.settings.testutils.shadow.ShadowStorageManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
@@ -62,6 +62,8 @@ import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowPersistentDataBlockManager;
@RunWith(RobolectricTestRunner.class)
@Config(
@@ -99,6 +101,17 @@ public class ChooseLockGenericTest {
assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void onCreate_deviceNotProvisioned_persistentDataServiceNotAvailable_shouldNotFinish() {
Global.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
ShadowPersistentDataBlockManager.setDataBlockSize(1000);
ShadowApplication.getInstance().setSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE,
null);
initActivity(null);
assertThat(mActivity.isFinishing()).isFalse();
}
@Test
public void onActivityResult_nullIntentData_shouldNotCrash() {
initActivity(null);