Merge "Add logging for settings entrypoint to add supervised user."

This commit is contained in:
Yasin Kilicdere
2022-01-07 20:58:14 +00:00
committed by Android (Google) Code Review
2 changed files with 33 additions and 0 deletions

View File

@@ -1251,7 +1251,10 @@ public class UserSettings extends SettingsPreferenceFragment
}
return true;
} else if (pref == mAddSupervisedUser) {
mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_USER_SUPERVISED_ADD);
Trace.beginSection("UserSettings.addSupervisedUser");
onAddSupervisedUserClicked();
Trace.endSection();
return true;
} else if (pref == mAddGuest) {
mAddGuest.setEnabled(false); // prevent multiple tap issue

View File

@@ -27,6 +27,7 @@ import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.notNull;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -40,6 +41,8 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
@@ -122,6 +125,8 @@ public class UserSettingsTest {
@Mock
private UserManager mUserManager;
@Mock
private PackageManager mPackageManager;
@Mock
private MetricsFeatureProvider mMetricsFeatureProvider;
private FragmentActivity mActivity;
@@ -149,11 +154,13 @@ public class UserSettingsTest {
ReflectionHelpers.setField(mFragment, "mMetricsFeatureProvider", mMetricsFeatureProvider);
doReturn(mUserManager).when(mActivity).getSystemService(UserManager.class);
doReturn(mPackageManager).when(mActivity).getPackageManager();
doReturn(mActivity).when(mFragment).getActivity();
doReturn(mContext).when(mFragment).getContext();
doReturn(mMockPreferenceManager).when(mFragment).getPreferenceManager();
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
doReturn(mPackageManager).when(mContext).getPackageManager();
mProvisionedBackupValue = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 0);
@@ -653,6 +660,29 @@ public class UserSettingsTest {
verify(mMetricsFeatureProvider).action(any(), eq(SettingsEnums.ACTION_USER_GUEST_ADD));
}
@Test
public void onPreferenceClick_addSupervisedUserClicked_startIntentWithAction() {
final String intentPackage = "testPackage";
final String intentAction = UserManager.ACTION_CREATE_SUPERVISED_USER;
final int metricsAction = SettingsEnums.ACTION_USER_SUPERVISED_ADD;
try {
setConfigSupervisedUserCreationPackage(intentPackage);
doReturn(new ResolveInfo()).when(mPackageManager).resolveActivity(any(), anyInt());
doNothing().when(mFragment).startActivity(any());
mFragment.onPreferenceClick(mAddSupervisedUserPreference);
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
verify(mFragment).startActivity(captor.capture());
assertThat(captor.getValue().getPackage()).isEqualTo(intentPackage);
assertThat(captor.getValue().getAction()).isEqualTo(intentAction);
verify(mMetricsFeatureProvider).action(any(), eq(metricsAction));
} finally {
SettingsShadowResources.reset();
}
}
@Test
public void getRealUsersCount_onlyAdmin_shouldCount() {
givenUsers(getAdminUser(true));