Merge "Change user setup prompt dialog showing logic" into rvc-dev am: f8754b4deb
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11686951 Change-Id: Ie3c8012398740f0629ef89fce1574cb21f91667d
This commit is contained in:
@@ -34,6 +34,7 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -53,6 +54,8 @@ import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.SubSettings;
|
||||
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 org.junit.After;
|
||||
import org.junit.Before;
|
||||
@@ -91,7 +94,7 @@ public class UserDetailsSettingsTest {
|
||||
private ShadowUserManager mUserManager;
|
||||
|
||||
@Mock
|
||||
private Preference mSwitchUserPref;
|
||||
private RestrictedPreference mSwitchUserPref;
|
||||
@Mock
|
||||
private SwitchPreference mPhonePref;
|
||||
@Mock
|
||||
@@ -101,6 +104,7 @@ public class UserDetailsSettingsTest {
|
||||
|
||||
private FragmentActivity mActivity;
|
||||
private Context mContext;
|
||||
private UserCapabilities mUserCapabilities;
|
||||
private UserDetailsSettings mFragment;
|
||||
private Bundle mArguments;
|
||||
private UserInfo mUserInfo;
|
||||
@@ -111,6 +115,8 @@ public class UserDetailsSettingsTest {
|
||||
|
||||
mActivity = spy(ActivityController.of(new FragmentActivity()).get());
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mUserCapabilities = UserCapabilities.create(mContext);
|
||||
mUserCapabilities.mUserSwitcherEnabled = true;
|
||||
mFragment = spy(new UserDetailsSettings());
|
||||
mArguments = new Bundle();
|
||||
|
||||
@@ -121,6 +127,7 @@ public class UserDetailsSettingsTest {
|
||||
doReturn(mTelephonyManager).when(mActivity).getSystemService(Context.TELEPHONY_SERVICE);
|
||||
|
||||
ReflectionHelpers.setField(mFragment, "mUserManager", userManager);
|
||||
ReflectionHelpers.setField(mFragment, "mUserCaps", mUserCapabilities);
|
||||
doReturn(mActivity).when(mFragment).getActivity();
|
||||
doReturn(mActivity).when(mFragment).getContext();
|
||||
|
||||
@@ -426,6 +433,33 @@ public class UserDetailsSettingsTest {
|
||||
verify(mPhonePref).setChecked(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initialize_switchUserDisallowed_shouldSetAdminDisabledOnSwitchPreference() {
|
||||
setupSelectedUser();
|
||||
mUserCapabilities.mDisallowSwitchUser = true;
|
||||
DevicePolicyManager devicePolicyManager = mock(DevicePolicyManager.class);
|
||||
doReturn(devicePolicyManager).when(mActivity)
|
||||
.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
doReturn(mock(ComponentName.class)).when(devicePolicyManager)
|
||||
.getDeviceOwnerComponentOnAnyUser();
|
||||
|
||||
mFragment.initialize(mActivity, mArguments);
|
||||
|
||||
verify(mSwitchUserPref).setDisabledByAdmin(any(RestrictedLockUtils.EnforcedAdmin.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initialize_switchUserAllowed_shouldSetSwitchPreferenceEnabled() {
|
||||
setupSelectedUser();
|
||||
mUserCapabilities.mDisallowSwitchUser = false;
|
||||
|
||||
mFragment.initialize(mActivity, mArguments);
|
||||
|
||||
verify(mSwitchUserPref).setDisabledByAdmin(null);
|
||||
verify(mSwitchUserPref).setSelectable(true);
|
||||
verify(mSwitchUserPref).setOnPreferenceClickListener(mFragment);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceClick_switchClicked_canSwitch_shouldSwitch() {
|
||||
setupSelectedUser();
|
||||
|
@@ -33,13 +33,16 @@ import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
@@ -53,6 +56,8 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.SubSettings;
|
||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
@@ -70,6 +75,7 @@ import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.android.controller.ActivityController;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowIntent;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -589,6 +595,30 @@ public class UserSettingsTest {
|
||||
verify(mUserManager, times(2)).getUsers(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceClick_addGuestClicked_createGuestAndOpenDetails() {
|
||||
UserInfo createdGuest = getGuest(false);
|
||||
removeFlag(createdGuest, UserInfo.FLAG_INITIALIZED);
|
||||
doReturn(createdGuest).when(mUserManager).createGuest(mActivity, "Guest");
|
||||
doReturn(mActivity).when(mFragment).getContext();
|
||||
|
||||
mFragment.onPreferenceClick(mAddGuestPreference);
|
||||
|
||||
verify(mUserManager).createGuest(mActivity, "Guest");
|
||||
Intent startedIntent = shadowOf(mActivity).getNextStartedActivity();
|
||||
ShadowIntent shadowIntent = shadowOf(startedIntent);
|
||||
assertThat(shadowIntent.getIntentClass()).isEqualTo(SubSettings.class);
|
||||
assertThat(startedIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
|
||||
.isEqualTo(UserDetailsSettings.class.getName());
|
||||
Bundle arguments = startedIntent.getBundleExtra(
|
||||
SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
|
||||
assertThat(arguments).isNotNull();
|
||||
assertThat(arguments.getInt(UserDetailsSettings.EXTRA_USER_ID, 0))
|
||||
.isEqualTo(createdGuest.id);
|
||||
assertThat(arguments.getBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, false))
|
||||
.isEqualTo(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getRealUsersCount_onlyAdmin_shouldCount() {
|
||||
givenUsers(getAdminUser(true));
|
||||
|
Reference in New Issue
Block a user