Loading tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java +26 −30 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.settings.utils.FileSizeFormatter.MEGABYTE_IN_BYTES; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -55,7 +56,7 @@ import java.util.ArrayList; import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class SecondaryUserControllerTest { private static final String TEST_NAME = "Fred"; private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users"; Loading Loading @@ -90,7 +91,7 @@ public class SecondaryUserControllerTest { final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class); verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getTitle()).isEqualTo(TEST_NAME); } Loading @@ -103,17 +104,17 @@ public class SecondaryUserControllerTest { verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getSummary()).isEqualTo("0.01 GB"); } @Test public void noSecondaryUserAddedIfNoneExist() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); userInfos.add(mPrimaryUser); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(1); Loading @@ -123,15 +124,15 @@ public class SecondaryUserControllerTest { @Test public void secondaryUserAddedIfHasDistinctId() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo secondaryUser = new UserInfo(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); final UserInfo secondaryUser = new UserInfo(); secondaryUser.id = 10; secondaryUser.profileGroupId = 101010; // this just has to be something not 0 userInfos.add(mPrimaryUser); userInfos.add(secondaryUser); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(1); Loading @@ -140,15 +141,15 @@ public class SecondaryUserControllerTest { @Test public void profilesOfPrimaryUserAreNotIgnored() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo secondaryUser = new UserInfo(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); final UserInfo secondaryUser = new UserInfo(); secondaryUser.id = mPrimaryUser.id; userInfos.add(mPrimaryUser); userInfos.add(secondaryUser); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(2); Loading @@ -161,9 +162,9 @@ public class SecondaryUserControllerTest { mPrimaryUser.name = TEST_NAME; mPrimaryUser.id = 10; mController.displayPreference(mScreen); StorageAsyncLoader.AppsStorageResult userResult = final StorageAsyncLoader.AppsStorageResult userResult = new StorageAsyncLoader.AppsStorageResult(); SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>(); final SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>(); userResult.externalStats = new StorageStatsSource.ExternalStorageStats( MEGABYTE_IN_BYTES * 30, Loading @@ -175,23 +176,23 @@ public class SecondaryUserControllerTest { mController.handleResult(result); final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class); verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getSummary()).isEqualTo("0.03 GB"); } @Test public void dontAddPrimaryProfileAsASecondaryProfile() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); // The primary UserInfo may be a different object with a different name... but represent the // same user! UserInfo primaryUserRenamed = new UserInfo(); final UserInfo primaryUserRenamed = new UserInfo(); primaryUserRenamed.name = "Owner"; primaryUserRenamed.flags = UserInfo.FLAG_PRIMARY; userInfos.add(primaryUserRenamed); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(1); Loading @@ -201,34 +202,29 @@ public class SecondaryUserControllerTest { @Test public void iconCallbackChangesPreferenceIcon() throws Exception { SparseArray<Drawable> icons = new SparseArray<>(); Bitmap userBitmap = BitmapFactory.decodeResource( RuntimeEnvironment.application.getResources(), R.drawable.home); UserIconDrawable drawable = new UserIconDrawable(100 /* size */).setIcon(userBitmap).bake(); icons.put(10, drawable); final SparseArray<Drawable> icons = new SparseArray<>(); final UserIconDrawable drawable = mock(UserIconDrawable.class); when(drawable.mutate()).thenReturn(drawable); mPrimaryUser.name = TEST_NAME; mPrimaryUser.id = 10; icons.put(mPrimaryUser.id, drawable); mController.displayPreference(mScreen); mController.handleUserIcons(icons); final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class); verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getIcon()).isEqualTo(drawable); } @Test public void setIcon_doesntNpeOnNullPreference() throws Exception { SparseArray<Drawable> icons = new SparseArray<>(); Bitmap userBitmap = BitmapFactory.decodeResource( RuntimeEnvironment.application.getResources(), R.drawable.home); UserIconDrawable drawable = new UserIconDrawable(100 /* size */).setIcon(userBitmap).bake(); icons.put(10, drawable); final SparseArray<Drawable> icons = new SparseArray<>(); final UserIconDrawable drawable = mock(UserIconDrawable.class); mPrimaryUser.name = TEST_NAME; mPrimaryUser.id = 10; icons.put(mPrimaryUser.id, drawable); mController.handleUserIcons(icons); Loading Loading
tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java +26 −30 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.settings.utils.FileSizeFormatter.MEGABYTE_IN_BYTES; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -55,7 +56,7 @@ import java.util.ArrayList; import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class SecondaryUserControllerTest { private static final String TEST_NAME = "Fred"; private static final String TARGET_PREFERENCE_GROUP_KEY = "pref_secondary_users"; Loading Loading @@ -90,7 +91,7 @@ public class SecondaryUserControllerTest { final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class); verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getTitle()).isEqualTo(TEST_NAME); } Loading @@ -103,17 +104,17 @@ public class SecondaryUserControllerTest { verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getSummary()).isEqualTo("0.01 GB"); } @Test public void noSecondaryUserAddedIfNoneExist() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); userInfos.add(mPrimaryUser); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(1); Loading @@ -123,15 +124,15 @@ public class SecondaryUserControllerTest { @Test public void secondaryUserAddedIfHasDistinctId() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo secondaryUser = new UserInfo(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); final UserInfo secondaryUser = new UserInfo(); secondaryUser.id = 10; secondaryUser.profileGroupId = 101010; // this just has to be something not 0 userInfos.add(mPrimaryUser); userInfos.add(secondaryUser); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(1); Loading @@ -140,15 +141,15 @@ public class SecondaryUserControllerTest { @Test public void profilesOfPrimaryUserAreNotIgnored() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); UserInfo secondaryUser = new UserInfo(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); final UserInfo secondaryUser = new UserInfo(); secondaryUser.id = mPrimaryUser.id; userInfos.add(mPrimaryUser); userInfos.add(secondaryUser); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(2); Loading @@ -161,9 +162,9 @@ public class SecondaryUserControllerTest { mPrimaryUser.name = TEST_NAME; mPrimaryUser.id = 10; mController.displayPreference(mScreen); StorageAsyncLoader.AppsStorageResult userResult = final StorageAsyncLoader.AppsStorageResult userResult = new StorageAsyncLoader.AppsStorageResult(); SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>(); final SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>(); userResult.externalStats = new StorageStatsSource.ExternalStorageStats( MEGABYTE_IN_BYTES * 30, Loading @@ -175,23 +176,23 @@ public class SecondaryUserControllerTest { mController.handleResult(result); final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class); verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getSummary()).isEqualTo("0.03 GB"); } @Test public void dontAddPrimaryProfileAsASecondaryProfile() throws Exception { ArrayList<UserInfo> userInfos = new ArrayList<>(); final ArrayList<UserInfo> userInfos = new ArrayList<>(); // The primary UserInfo may be a different object with a different name... but represent the // same user! UserInfo primaryUserRenamed = new UserInfo(); final UserInfo primaryUserRenamed = new UserInfo(); primaryUserRenamed.name = "Owner"; primaryUserRenamed.flags = UserInfo.FLAG_PRIMARY; userInfos.add(primaryUserRenamed); when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); when(mUserManager.getUsers()).thenReturn(userInfos); List<AbstractPreferenceController> controllers = final List<AbstractPreferenceController> controllers = SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); assertThat(controllers).hasSize(1); Loading @@ -201,34 +202,29 @@ public class SecondaryUserControllerTest { @Test public void iconCallbackChangesPreferenceIcon() throws Exception { SparseArray<Drawable> icons = new SparseArray<>(); Bitmap userBitmap = BitmapFactory.decodeResource( RuntimeEnvironment.application.getResources(), R.drawable.home); UserIconDrawable drawable = new UserIconDrawable(100 /* size */).setIcon(userBitmap).bake(); icons.put(10, drawable); final SparseArray<Drawable> icons = new SparseArray<>(); final UserIconDrawable drawable = mock(UserIconDrawable.class); when(drawable.mutate()).thenReturn(drawable); mPrimaryUser.name = TEST_NAME; mPrimaryUser.id = 10; icons.put(mPrimaryUser.id, drawable); mController.displayPreference(mScreen); mController.handleUserIcons(icons); final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class); verify(mGroup).addPreference(argumentCaptor.capture()); Preference preference = argumentCaptor.getValue(); final Preference preference = argumentCaptor.getValue(); assertThat(preference.getIcon()).isEqualTo(drawable); } @Test public void setIcon_doesntNpeOnNullPreference() throws Exception { SparseArray<Drawable> icons = new SparseArray<>(); Bitmap userBitmap = BitmapFactory.decodeResource( RuntimeEnvironment.application.getResources(), R.drawable.home); UserIconDrawable drawable = new UserIconDrawable(100 /* size */).setIcon(userBitmap).bake(); icons.put(10, drawable); final SparseArray<Drawable> icons = new SparseArray<>(); final UserIconDrawable drawable = mock(UserIconDrawable.class); mPrimaryUser.name = TEST_NAME; mPrimaryUser.id = 10; icons.put(mPrimaryUser.id, drawable); mController.handleUserIcons(icons); Loading