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

Commit abd44a8a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add tests for guest user events" into sc-dev

parents bc4f3817 c24234c3
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -829,13 +829,14 @@ public class UserSettings extends SettingsPreferenceFragment
    /**
     * Erase the current user (guest) and switch to another user.
     */
    private void exitGuest() {
    @VisibleForTesting
    void exitGuest() {
        // Just to be safe
        mMetricsFeatureProvider.action(getActivity(),
                SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED);
        if (!isCurrentUserGuest()) {
            return;
        }
        mMetricsFeatureProvider.action(getActivity(),
                SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED);
        removeThisUser();
    }

+23 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -35,6 +36,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.robolectric.Shadows.shadowOf;

import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -56,6 +58,7 @@ import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

import org.junit.After;
import org.junit.Before;
@@ -105,6 +108,8 @@ public class UserDetailsSettingsTest {
    private FragmentActivity mActivity;
    private Context mContext;
    private UserCapabilities mUserCapabilities;
    @Mock
    private MetricsFeatureProvider mMetricsFeatureProvider;
    private UserDetailsSettings mFragment;
    private Bundle mArguments;
    private UserInfo mUserInfo;
@@ -128,6 +133,7 @@ public class UserDetailsSettingsTest {

        ReflectionHelpers.setField(mFragment, "mUserManager", userManager);
        ReflectionHelpers.setField(mFragment, "mUserCaps", mUserCapabilities);
        ReflectionHelpers.setField(mFragment, "mMetricsFeatureProvider", mMetricsFeatureProvider);
        doReturn(mActivity).when(mFragment).getActivity();
        doReturn(mActivity).when(mFragment).getContext();

@@ -472,6 +478,23 @@ public class UserDetailsSettingsTest {
        mFragment.onPreferenceClick(mSwitchUserPref);

        verify(mFragment).switchUser();
        verify(mMetricsFeatureProvider, never()).action(any(),
                eq(SettingsEnums.ACTION_SWITCH_TO_GUEST));
    }

    @Test
    public void onPreferenceClick_switchToGuestClicked_canSwitch_shouldSwitch() {
        setupSelectedGuest();
        mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_OK);
        mFragment.mSwitchUserPref = mSwitchUserPref;
        mFragment.mRemoveUserPref = mRemoveUserPref;
        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
        mFragment.mUserInfo = mUserInfo;

        mFragment.onPreferenceClick(mSwitchUserPref);

        verify(mFragment).switchUser();
        verify(mMetricsFeatureProvider).action(any(), eq(SettingsEnums.ACTION_SWITCH_TO_GUEST));
    }

    @Test
+16 −0
Original line number Diff line number Diff line
@@ -176,6 +176,22 @@ public class UserSettingsTest {
        assertThat(UserSettings.assignDefaultPhoto(null, ACTIVE_USER_ID)).isFalse();
    }

    @Test
    public void testExitGuest_ShouldLogAction() {
        mUserCapabilities.mIsGuest = true;
        mFragment.exitGuest();
        verify(mMetricsFeatureProvider).action(any(),
                eq(SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED));
    }

    @Test
    public void testExitGuestWhenNotGuest_ShouldNotLogAction() {
        mUserCapabilities.mIsGuest = false;
        mFragment.exitGuest();
        verify(mMetricsFeatureProvider, never()).action(any(),
                eq(SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED));
    }

    @Test
    public void withDisallowRemoveUser_ShouldDisableRemoveUser() {
        // TODO(b/115781615): Tidy robolectric tests