From 21c466ff5b0a508fe11253c9915f84deeee2dda7 Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Thu, 21 Nov 2019 00:57:05 +0800 Subject: [PATCH] Fix testcase error Fixes: 144832138 Fixes: 144831580 Test: robolectric Change-Id: I01efc467cf75b5beb2d2dd23188a8fa7d67f32ed --- .../storage/SecondaryUserController.java | 4 +-- .../settings/SettingsActivityTest.java | 4 +++ .../storage/SecondaryUserControllerTest.java | 26 ++++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java b/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java index f6a989fe512..6e471e48fc7 100644 --- a/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java +++ b/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java @@ -190,7 +190,8 @@ public class SecondaryUserController extends AbstractPreferenceController implem } } - private static class NoSecondaryUserController extends AbstractPreferenceController implements + @VisibleForTesting + static class NoSecondaryUserController extends AbstractPreferenceController implements PreferenceControllerMixin { public NoSecondaryUserController(Context context) { super(context); @@ -214,6 +215,5 @@ public class SecondaryUserController extends AbstractPreferenceController implem public String getPreferenceKey() { return null; } - } } diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java index 7906803f3bd..d2b47338a0e 100644 --- a/tests/robotests/src/com/android/settings/SettingsActivityTest.java +++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java @@ -30,11 +30,13 @@ import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; +import android.util.FeatureFlagUtils; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; +import com.android.settings.core.FeatureFlags; import com.android.settings.core.OnActivityResultListener; import com.android.settings.testutils.FakeFeatureFactory; @@ -65,6 +67,8 @@ public class SettingsActivityTest { mContext = RuntimeEnvironment.application; mActivity = spy(new SettingsActivity()); + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.PERSONAL_WORK_PROFILE, false); + } @Test diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java index 0b56cda2c60..65dc621a9a7 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java @@ -29,12 +29,14 @@ import android.content.Context; import android.content.pm.UserInfo; import android.graphics.drawable.Drawable; import android.os.UserManager; +import android.util.FeatureFlagUtils; import android.util.SparseArray; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; +import com.android.settings.core.FeatureFlags; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.drawable.UserIconDrawable; @@ -78,6 +80,8 @@ public class SecondaryUserControllerTest { when(mScreen.getContext()).thenReturn(mContext); when(mScreen.findPreference(anyString())).thenReturn(mGroup); when(mGroup.getKey()).thenReturn(TARGET_PREFERENCE_GROUP_KEY); + + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.PERSONAL_WORK_PROFILE, false); } @Test @@ -119,7 +123,8 @@ public class SecondaryUserControllerTest { } @Test - public void secondaryUserAddedIfHasDistinctId() { + public void getSecondaryUserControllers_notWorkProfile_addSecondaryUserController() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.PERSONAL_WORK_PROFILE, false); final ArrayList userInfos = new ArrayList<>(); final UserInfo secondaryUser = new UserInfo(); secondaryUser.id = 10; @@ -135,6 +140,25 @@ public class SecondaryUserControllerTest { assertThat(controllers.get(0) instanceof SecondaryUserController).isTrue(); } + @Test + public void getSecondaryUserControllers_workProfile_addNoSecondaryUserController() { + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.PERSONAL_WORK_PROFILE, true); + final ArrayList 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); + final List controllers = + SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); + + assertThat(controllers).hasSize(1); + assertThat(controllers.get( + 0) instanceof SecondaryUserController.NoSecondaryUserController).isTrue(); + } + @Test public void profilesOfPrimaryUserAreNotIgnored() { final ArrayList userInfos = new ArrayList<>();