Merge "Move restriction check for dev settings into controller"

This commit is contained in:
Fan Zhang
2018-02-08 21:51:50 +00:00
committed by Android (Google) Code Review
5 changed files with 46 additions and 8 deletions

View File

@@ -808,7 +808,6 @@ public class SettingsActivity extends SettingsDrawerActivity
|| somethingChanged; || somethingChanged;
final boolean showDev = DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(this) final boolean showDev = DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(this)
&& !um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)
&& !Utils.isMonkeyRunning(); && !Utils.isMonkeyRunning();
somethingChanged = setTileEnabled(new ComponentName(packageName, somethingChanged = setTileEnabled(new ComponentName(packageName,

View File

@@ -37,7 +37,9 @@ import com.android.settings.TestConfig;
import com.android.settings.applications.ProcStatsData; import com.android.settings.applications.ProcStatsData;
import com.android.settings.applications.ProcessStatsDetail; import com.android.settings.applications.ProcessStatsDetail;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -48,7 +50,9 @@ import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {
ShadowUserManager.class
})
public class AppMemoryPreferenceControllerTest { public class AppMemoryPreferenceControllerTest {
@Mock @Mock
@@ -67,6 +71,7 @@ public class AppMemoryPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
ShadowUserManager.getShadow().setIsAdminUser(true);
mController = mController =
spy(new AppMemoryPreferenceController(mContext, mFragment, null /* lifecycle */)); spy(new AppMemoryPreferenceController(mContext, mFragment, null /* lifecycle */));
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
@@ -75,6 +80,11 @@ public class AppMemoryPreferenceControllerTest {
when(mFragment.getActivity()).thenReturn(mActivity); when(mFragment.getActivity()).thenReturn(mActivity);
} }
@After
public void tearDown() {
ShadowUserManager.getShadow().reset();
}
@Test @Test
public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() { public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() {
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),

View File

@@ -17,7 +17,6 @@
package com.android.settings.development; package com.android.settings.development;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -33,6 +32,7 @@ import com.android.settings.R;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.widget.SwitchBar; import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.ToggleSwitch; import com.android.settings.widget.ToggleSwitch;
import com.android.settingslib.development.AbstractEnableAdbPreferenceController; import com.android.settingslib.development.AbstractEnableAdbPreferenceController;
@@ -52,7 +52,9 @@ import org.robolectric.util.ReflectionHelpers;
import java.util.List; import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {
ShadowUserManager.class
})
public class DevelopmentSettingsDashboardFragmentTest { public class DevelopmentSettingsDashboardFragmentTest {
private SwitchBar mSwitchBar; private SwitchBar mSwitchBar;
@@ -68,11 +70,13 @@ public class DevelopmentSettingsDashboardFragmentTest {
mSwitch = mSwitchBar.getSwitch(); mSwitch = mSwitchBar.getSwitch();
mDashboard = spy(new DevelopmentSettingsDashboardFragment()); mDashboard = spy(new DevelopmentSettingsDashboardFragment());
ReflectionHelpers.setField(mDashboard, "mSwitchBar", mSwitchBar); ReflectionHelpers.setField(mDashboard, "mSwitchBar", mSwitchBar);
ShadowUserManager.getShadow().setIsAdminUser(true);
} }
@After @After
public void tearDown() { public void tearDown() {
ShadowEnableDevelopmentSettingWarningDialog.reset(); ShadowEnableDevelopmentSettingWarningDialog.reset();
ShadowUserManager.getShadow().reset();
} }
@Test @Test
@@ -101,7 +105,7 @@ public class DevelopmentSettingsDashboardFragmentTest {
SettingsShadowResources.class, SettingsShadowResources.class,
SettingsShadowResources.SettingsShadowTheme.class SettingsShadowResources.SettingsShadowTheme.class
}) })
public void searchIndex_pageDisabled_shouldAddAllKeysToNonIndexable() { public void searchIndex_pageDisabledBySetting_shouldAddAllKeysToNonIndexable() {
final Context appContext = RuntimeEnvironment.application; final Context appContext = RuntimeEnvironment.application;
DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(appContext, false); DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(appContext, false);
@@ -109,7 +113,24 @@ public class DevelopmentSettingsDashboardFragmentTest {
DevelopmentSettingsDashboardFragment.SEARCH_INDEX_DATA_PROVIDER DevelopmentSettingsDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(appContext); .getNonIndexableKeys(appContext);
assertThat(nonIndexableKeys).contains("development_prefs_screen"); assertThat(nonIndexableKeys).contains("enable_adb");
}
@Test
@Config(shadows = {
SettingsShadowResources.class,
SettingsShadowResources.SettingsShadowTheme.class
})
public void searchIndex_pageDisabledForNonAdmin_shouldAddAllKeysToNonIndexable() {
final Context appContext = RuntimeEnvironment.application;
DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(appContext, true);
ShadowUserManager.getShadow().setIsAdminUser(false);
final List<String> nonIndexableKeys =
DevelopmentSettingsDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(appContext);
assertThat(nonIndexableKeys).contains("enable_adb");
} }
@Test @Test

View File

@@ -28,6 +28,7 @@ import android.content.Context;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils; import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.widget.SwitchBar; import com.android.settings.widget.SwitchBar;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -47,7 +48,8 @@ import java.util.ArrayList;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
shadows = { shadows = {
ShadowUtils.class ShadowUtils.class,
ShadowUserManager.class
}) })
public class DevelopmentSwitchBarControllerTest { public class DevelopmentSwitchBarControllerTest {
@@ -63,6 +65,7 @@ public class DevelopmentSwitchBarControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
ShadowUserManager.getShadow().setIsAdminUser(true);
mLifecycleOwner = () -> mLifecycle; mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner); mLifecycle = new Lifecycle(mLifecycleOwner);
mSwitchBar = new SwitchBar(mContext); mSwitchBar = new SwitchBar(mContext);
@@ -72,6 +75,7 @@ public class DevelopmentSwitchBarControllerTest {
@After @After
public void tearDown() { public void tearDown() {
ShadowUtils.reset(); ShadowUtils.reset();
ShadowUserManager.getShadow().reset();
} }
@Test @Test

View File

@@ -43,6 +43,7 @@ import com.android.settings.search.DatabaseIndexingManager;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUtils; import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.development.DevelopmentSettingsEnabler; import com.android.settingslib.development.DevelopmentSettingsEnabler;
@@ -60,7 +61,8 @@ import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
shadows = { shadows = {
ShadowUtils.class ShadowUtils.class,
ShadowUserManager.class,
}) })
public class BuildNumberPreferenceControllerTest { public class BuildNumberPreferenceControllerTest {
@@ -84,6 +86,7 @@ public class BuildNumberPreferenceControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
ShadowUserManager.getShadow().setIsAdminUser(true);
mFactory = FakeFeatureFactory.setupForTest(); mFactory = FakeFeatureFactory.setupForTest();
mLifecycleOwner = () -> mLifecycle; mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner); mLifecycle = new Lifecycle(mLifecycleOwner);
@@ -98,6 +101,7 @@ public class BuildNumberPreferenceControllerTest {
@After @After
public void tearDown() { public void tearDown() {
ShadowUtils.reset(); ShadowUtils.reset();
ShadowUserManager.getShadow().reset();
} }
@Test @Test