Add settings entrypoint to add a supervised user

Bug: 205101183
Bug: 199868785
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: Ie69786c81ec938f4c4108d7fc9c0874776331865
This commit is contained in:
Yasin Kilicdere
2021-11-05 17:34:59 +00:00
parent 4f5f174a5e
commit 2a37149ec5
3 changed files with 94 additions and 10 deletions

View File

@@ -59,6 +59,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.SettingsActivity;
import com.android.settings.SubSettings;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedLockUtils;
@@ -85,7 +86,11 @@ import java.util.Collections;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowUserManager.class, ShadowDevicePolicyManager.class})
@Config(shadows = {
ShadowUserManager.class,
ShadowDevicePolicyManager.class,
SettingsShadowResources.class,
})
public class UserSettingsTest {
private static final String KEY_USER_GUEST = "user_guest";
@@ -111,6 +116,8 @@ public class UserSettingsTest {
@Mock
private RestrictedPreference mAddUserPreference;
@Mock
private RestrictedPreference mAddSupervisedUserPreference;
@Mock
private RestrictedPreference mAddGuestPreference;
@Mock
private UserManager mUserManager;
@@ -161,6 +168,7 @@ public class UserSettingsTest {
mFragment.mMePreference = mMePreference;
mFragment.mAddUser = mAddUserPreference;
mFragment.mAddSupervisedUser = mAddSupervisedUserPreference;
mFragment.mAddGuest = mAddGuestPreference;
mFragment.mUserListCategory = mock(PreferenceCategory.class);
}
@@ -169,6 +177,7 @@ public class UserSettingsTest {
public void tearDown() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, mProvisionedBackupValue);
SettingsShadowResources.reset();
}
@Test
@@ -694,6 +703,36 @@ public class UserSettingsTest {
verify(mUserManager).getUsers();
}
private void setConfigSupervisedUserCreationPackage(String value) {
SettingsShadowResources.overrideResource(
com.android.internal.R.string.config_supervisedUserCreationPackage,
value
);
mFragment.setConfigSupervisedUserCreationPackage();
mUserCapabilities.mCanAddUser = true;
mFragment.updateUserList();
}
@Test
public void addSupervisedUserOption_resourceIsDefined_shouldBeDisplayed() {
try {
setConfigSupervisedUserCreationPackage("test");
verify(mAddSupervisedUserPreference).setVisible(true);
} finally {
SettingsShadowResources.reset();
}
}
@Test
public void addSupervisedUserOption_resourceIsNotDefined_shouldBeHidden() {
try {
setConfigSupervisedUserCreationPackage("");
verify(mAddSupervisedUserPreference).setVisible(false);
} finally {
SettingsShadowResources.reset();
}
}
private void givenUsers(UserInfo... userInfo) {
List<UserInfo> users = Arrays.asList(userInfo);
doReturn(users).when(mUserManager).getUsers();