Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7eeb7276 authored by Yasin Kilicdere's avatar Yasin Kilicdere Committed by Android (Google) Code Review
Browse files

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

parents 4cc514c3 3a0ebeba
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+30 −0
Original line number Diff line number Diff line
@@ -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));