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

Commit 3a0ebeba authored by Yasin Kilicdere's avatar Yasin Kilicdere
Browse files

Add logging for settings entrypoint to add supervised user.

Bug: 213442701
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserSettingsTest"
Change-Id: Ie6110b0ef5c16c9f83e3d939f78f21f003e55e35
parent d1f76eea
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));