Hide timeout to user0 pref when switching blocked.
Do not show the "timeout to admin user" settings preference when user switching is blocked on the current user, e.g. in demo mode. Test: atest SettingsRoboTests:TimeoutToDockUserPreferenceControllerTest Bug: 255277938 Change-Id: Ibd0944c69254000a453f477eb72a0ba5832e9793
This commit is contained in:
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
@@ -41,6 +42,8 @@ import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
@@ -51,6 +54,9 @@ public class TimeoutToDockUserPreferenceControllerTest {
|
||||
private Resources mResources;
|
||||
private TimeoutToDockUserPreferenceController mController;
|
||||
|
||||
@Mock
|
||||
private UserManager mUserManager;
|
||||
|
||||
private static final String FAKE_PREFERENCE_KEY = "timeout_to_dock_user_preference";
|
||||
|
||||
private String[] mEntries;
|
||||
@@ -58,9 +64,12 @@ public class TimeoutToDockUserPreferenceControllerTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||
mResources = spy(mContext.getResources());
|
||||
doReturn(mResources).when(mContext).getResources();
|
||||
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||
|
||||
mEntries = mResources.getStringArray(
|
||||
R.array.switch_to_dock_user_when_docked_timeout_entries);
|
||||
@@ -78,6 +87,9 @@ public class TimeoutToDockUserPreferenceControllerTest {
|
||||
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.USER_SWITCHER_ENABLED,
|
||||
1);
|
||||
|
||||
// User switching not blocked.
|
||||
when(mUserManager.hasUserRestriction(UserManager.DISALLOW_USER_SWITCH)).thenReturn(false);
|
||||
|
||||
// Set to user 1;
|
||||
ShadowUserHandle.setUid(1);
|
||||
}
|
||||
@@ -106,6 +118,14 @@ public class TimeoutToDockUserPreferenceControllerTest {
|
||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_userSwitchingBlocked_returnConditionallyUnavailable() {
|
||||
when(mUserManager.hasUserRestriction(UserManager.DISALLOW_USER_SWITCH)).thenReturn(true);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_isCurrentlyMainUser_returnDisabledForUser() {
|
||||
when(Utils.canCurrentUserDream(mContext)).thenReturn(true);
|
||||
|
Reference in New Issue
Block a user