Merge "Add UI for multiple admins on Headless"

This commit is contained in:
Tetiana Meronyk
2022-12-21 17:00:48 +00:00
committed by Android (Google) Code Review
7 changed files with 170 additions and 11 deletions

View File

@@ -22,6 +22,7 @@ import static android.os.UserManager.SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
@@ -84,6 +85,7 @@ import java.util.List;
})
public class UserDetailsSettingsTest {
private static final String KEY_GRANT_ADMIN = "user_grant_admin";
private static final String KEY_SWITCH_USER = "switch_user";
private static final String KEY_ENABLE_TELEPHONY = "enable_calling";
private static final String KEY_REMOVE_USER = "remove_user";
@@ -103,6 +105,8 @@ public class UserDetailsSettingsTest {
@Mock
private SwitchPreference mPhonePref;
@Mock
private SwitchPreference mGrantAdminPref;
@Mock
private Preference mRemoveUserPref;
@Mock
private Preference mAppAndContentAccessPref;
@@ -144,6 +148,7 @@ public class UserDetailsSettingsTest {
doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
doReturn(mSwitchUserPref).when(mFragment).findPreference(KEY_SWITCH_USER);
doReturn(mGrantAdminPref).when(mFragment).findPreference(KEY_GRANT_ADMIN);
doReturn(mPhonePref).when(mFragment).findPreference(KEY_ENABLE_TELEPHONY);
doReturn(mRemoveUserPref).when(mFragment).findPreference(KEY_REMOVE_USER);
doReturn(mAppAndContentAccessPref)
@@ -678,6 +683,38 @@ public class UserDetailsSettingsTest {
assertThat(result).isFalse();
}
@Test
public void initialize_userSelected_shouldShowGrantAdminPref_HSUM() {
setupSelectedUser();
ShadowUserManager.setIsHeadlessSystemUserMode(true);
mFragment.initialize(mActivity, mArguments);
assertTrue(UserManager.isHeadlessSystemUserMode());
verify(mFragment, never()).removePreference(KEY_GRANT_ADMIN);
}
@Test
public void initialize_userSelected_shouldNotShowGrantAdminPref() {
setupSelectedUser();
mFragment.initialize(mActivity, mArguments);
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
@Test
public void initialize_mainUserSelected_shouldShowGrantAdminPref_HSUM() {
setupSelectedMainUser();
ShadowUserManager.setIsHeadlessSystemUserMode(true);
mFragment.initialize(mActivity, mArguments);
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
@Test
public void initialize_guestSelected_shouldNotShowGrantAdminPref_HSUM() {
setupSelectedGuest();
ShadowUserManager.setIsHeadlessSystemUserMode(true);
mFragment.initialize(mActivity, mArguments);
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
private void setupSelectedUser() {
mArguments.putInt("user_id", 1);
mUserInfo = new UserInfo(1, "Tom", null,