Merge "Add UI metrics for granting admin rights from User Switcher"

This commit is contained in:
Tetiana Meronyk
2023-01-19 23:00:11 +00:00
committed by Android (Google) Code Review
4 changed files with 53 additions and 0 deletions

View File

@@ -263,4 +263,11 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
}
return isSuccess;
}
@Implementation
protected void setUserAdmin(@UserIdInt int userId) {
for (int i = 0; i < mUserProfileInfos.size(); i++) {
mUserProfileInfos.get(i).flags |= UserInfo.FLAG_ADMIN;
}
}
}

View File

@@ -725,6 +725,32 @@ public class UserDetailsSettingsTest {
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
}
@Test
public void onPreferenceChange_grantAdminClicked_isNotAdmin_shouldLogGrantAdmin() {
setupSelectedUser();
mFragment.mUserInfo = mUserInfo;
mFragment.mGrantAdminPref = mGrantAdminPref;
doNothing().when(mFragment).showDialog(anyInt());
mFragment.onPreferenceChange(mGrantAdminPref, true);
verify(mMetricsFeatureProvider).action(any(),
eq(SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS));
}
@Test
public void onPreferenceChange_grantAdminClicked_isAdmin_shouldLogRevokeAdmin() {
setupSelectedAdminUser();
mFragment.mUserInfo = mUserInfo;
mFragment.mGrantAdminPref = mGrantAdminPref;
doNothing().when(mFragment).showDialog(anyInt());
mFragment.onPreferenceChange(mGrantAdminPref, false);
verify(mMetricsFeatureProvider).action(any(),
eq(SettingsEnums.ACTION_REVOKE_ADMIN_FROM_SETTINGS));
}
private void setupSelectedUser() {
mArguments.putInt("user_id", 1);
mUserInfo = new UserInfo(1, "Tom", null,
@@ -743,6 +769,15 @@ public class UserDetailsSettingsTest {
mUserManager.addProfile(mUserInfo);
}
private void setupSelectedAdminUser() {
mArguments.putInt("user_id", 12);
mUserInfo = new UserInfo(12, "Andy", null,
UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_ADMIN,
UserManager.USER_TYPE_FULL_SECONDARY);
mUserManager.addProfile(mUserInfo);
}
private void setupSelectedGuest() {
mArguments.putInt("user_id", 23);
mUserInfo = new UserInfo(23, "Guest", null,