Move logic for FR in demo mode out of Settings

Bug: 62712426
Test: make \
ROBOTEST_FILTER="(MasterClearTest|FactoryResetPreferenceControllerTest
|UtilsTest)" \
RunSettingsRoboTests -j100
Change-Id: I5e287c3d4a6a7050bda78187c52aec19e90b50bc
This commit is contained in:
Christine Franks
2017-06-23 14:28:21 -07:00
parent 50ac1cebc3
commit c6890ab6c5
9 changed files with 59 additions and 188 deletions

View File

@@ -27,6 +27,7 @@ import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.app.Fragment;
import android.content.ContentResolver;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.view.LayoutInflater;
@@ -36,6 +37,8 @@ import android.widget.LinearLayout;
import android.widget.ScrollView;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.Before;
import org.junit.Test;
@@ -43,11 +46,10 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class MasterClearTest {
@@ -167,6 +169,22 @@ public class MasterClearTest {
assertThat(mMasterClear.hasReachedBottom(mScrollView)).isTrue();
}
@Test
@Config(shadows = { ShadowUtils.class, SettingsShadowResources.class })
public void testInitiateMasterClear_inDemoMode_sendsIntent() {
SettingsShadowResources.overrideResource(
com.android.internal.R.string.config_demoModePackage, "package");
ShadowUtils.setIsDemoUser(true);
mMasterClear.mInitiateListener.onClick(
mContentView.findViewById(R.id.initiate_master_clear));
final Intent intent = mShadowActivity.getNextStartedActivity();
assertThat(Intent.ACTION_FACTORY_RESET).isEqualTo(intent.getAction());
final String packageName = Utils.getDemoModePackageName(RuntimeEnvironment.application);
assertThat(packageName).isEqualTo(intent.getPackage());
}
private void initScrollView(int height, int scrollY, int childBottom) {
when(mScrollView.getHeight()).thenReturn(height);
when(mScrollView.getScrollY()).thenReturn(scrollY);

View File

@@ -16,15 +16,18 @@ import android.net.LinkProperties;
import android.net.Network;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.UserManager;
import android.os.storage.DiskInfo;
import android.os.storage.StorageManager;
import android.os.storage.VolumeInfo;
import android.provider.Settings;
import android.text.SpannableStringBuilder;
import android.text.format.DateUtils;
import android.text.style.TtsSpan;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

View File

@@ -22,7 +22,6 @@ import static org.mockito.Mockito.when;
import android.accounts.AccountManager;
import android.content.Context;
import android.os.UserManager;
import android.provider.Settings;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
@@ -76,21 +75,16 @@ public class FactoryResetPreferenceControllerTest {
@Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
public void isAvailable_nonSystemUser() {
when(mUserManager.isAdminUser()).thenReturn(false);
ShadowUtils.setIsCarrierDemoUser(false);
ShadowUtils.setIsDemoUser(false);
assertThat(mController.isAvailable()).isFalse();
}
@Test
@Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
public void isAvailable_carrierDemoUser() {
public void isAvailable_demoUser() {
when(mUserManager.isAdminUser()).thenReturn(false);
ShadowUtils.setIsCarrierDemoUser(true);
final String carrierDemoModeSetting = "carrier_demo_mode";
when(mContext.getString(com.android.internal.R.string.config_carrierDemoModeSetting))
.thenReturn(carrierDemoModeSetting);
Settings.Secure.putInt(null, carrierDemoModeSetting, 1);
ShadowUtils.setIsDemoUser(true);
assertThat(mController.isAvailable()).isTrue();
}

View File

@@ -16,6 +16,7 @@
package com.android.settings.testutils.shadow;
import android.content.ComponentName;
import android.content.Context;
import com.android.settings.Utils;
@@ -28,8 +29,8 @@ import org.robolectric.annotation.Implements;
public class ShadowUtils {
private static IFingerprintManager sFingerprintManager = null;
private static boolean sIsCarrierDemoUser;
private static boolean sIsUserAMonkey;
private static boolean sIsDemoUser;
@Implementation
public static int enforceSameOwner(Context context, int userId) {
@@ -47,8 +48,8 @@ public class ShadowUtils {
public static void reset() {
sFingerprintManager = null;
sIsCarrierDemoUser = false;
sIsUserAMonkey = false;
sIsDemoUser = false;
}
@Implementation
@@ -56,8 +57,8 @@ public class ShadowUtils {
return true;
}
public static void setIsCarrierDemoUser(boolean isCarrierDemoUser) {
sIsCarrierDemoUser = isCarrierDemoUser;
public static void setIsDemoUser(boolean isDemoUser) {
sIsDemoUser = isDemoUser;
}
public static void setIsUserAMonkey(boolean isUserAMonkey) {
@@ -66,8 +67,8 @@ public class ShadowUtils {
@Implementation
public static boolean isCarrierDemoUser(Context context) {
return sIsCarrierDemoUser;
public static boolean isDemoUser(Context context) {
return sIsDemoUser;
}
/**