diff options
author | 2025-02-14 18:02:11 +0000 | |
---|---|---|
committer | 2025-02-14 19:33:55 +0000 | |
commit | f76f38418c3aad657f107f1d86d3947308195700 (patch) | |
tree | ba73133fba637d38f5b6acf9791d89f843d110c0 /tests | |
parent | 5e90a052a4341270a7647d75def46e73d3d64047 (diff) |
HSUM fixes for ChooserActivityTest
It's using the instrumentation's personal user ID but then has
hard-coded work and clone profile IDs. On HSUM, those were colliding.
Bug: 396572907
Bug: 396572029
Test: atest ChooserActivityTest (on HSUM and non-HSUM devices)
Flag: EXEMPT test only
Change-Id: If5c5c9ad7f23b057ee18b8931cf9086725b36859
Diffstat (limited to 'tests')
4 files changed, 45 insertions, 27 deletions
diff --git a/tests/activity/src/com/android/intentresolver/ChooserActivityOverrideData.java b/tests/activity/src/com/android/intentresolver/ChooserActivityOverrideData.java index 311201cf..15012a31 100644 --- a/tests/activity/src/com/android/intentresolver/ChooserActivityOverrideData.java +++ b/tests/activity/src/com/android/intentresolver/ChooserActivityOverrideData.java @@ -60,7 +60,7 @@ public class ChooserActivityOverrideData { public Resources resources; public boolean hasCrossProfileIntents; public boolean isQuietModeEnabled; - public Integer myUserId; + public UserHandle personalUserHandle; public CrossProfileIntentsChecker mCrossProfileIntentsChecker; public void reset() { @@ -73,7 +73,7 @@ public class ChooserActivityOverrideData { resources = null; hasCrossProfileIntents = true; isQuietModeEnabled = false; - myUserId = null; + personalUserHandle = null; shortcutLoaderFactory = ((userHandle, resultConsumer) -> null); mCrossProfileIntentsChecker = mock(CrossProfileIntentsChecker.class); when(mCrossProfileIntentsChecker.hasCrossProfileIntents(any(), anyInt(), anyInt())) diff --git a/tests/activity/src/com/android/intentresolver/ChooserActivityTest.java b/tests/activity/src/com/android/intentresolver/ChooserActivityTest.java index e103e57b..1592f1de 100644 --- a/tests/activity/src/com/android/intentresolver/ChooserActivityTest.java +++ b/tests/activity/src/com/android/intentresolver/ChooserActivityTest.java @@ -202,12 +202,14 @@ public class ChooserActivityTest { private static final User PERSONAL_USER = new User(PERSONAL_USER_HANDLE.getIdentifier(), User.Role.PERSONAL); - private static final UserHandle WORK_PROFILE_USER_HANDLE = UserHandle.of(10); + private static final UserHandle WORK_PROFILE_USER_HANDLE = + UserHandle.of(PERSONAL_USER_HANDLE.getIdentifier() + 1); private static final User WORK_USER = new User(WORK_PROFILE_USER_HANDLE.getIdentifier(), User.Role.WORK); - private static final UserHandle CLONE_PROFILE_USER_HANDLE = UserHandle.of(11); + private static final UserHandle CLONE_PROFILE_USER_HANDLE = + UserHandle.of(PERSONAL_USER_HANDLE.getIdentifier() + 2); private static final User CLONE_USER = new User(CLONE_PROFILE_USER_HANDLE.getIdentifier(), User.Role.CLONE); @@ -302,6 +304,7 @@ public class ChooserActivityTest { .adoptShellPermissionIdentity(); cleanOverrideData(); + ChooserActivityOverrideData.getInstance().personalUserHandle = PERSONAL_USER_HANDLE; // Assign @Inject fields mHiltAndroidRule.inject(); @@ -1537,7 +1540,8 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)).updateAppTargets(appTargets.capture()); + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, + times(1)).updateAppTargets(appTargets.capture()); // send shortcuts assertThat( @@ -1557,7 +1561,8 @@ public class ChooserActivityTest { new HashMap<>(), new HashMap<>() ); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); final ChooserListAdapter activeAdapter = activity.getAdapter(); @@ -1611,7 +1616,8 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)).updateAppTargets(appTargets.capture()); + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, + times(1)).updateAppTargets(appTargets.capture()); // send shortcuts assertThat( @@ -1633,7 +1639,8 @@ public class ChooserActivityTest { new HashMap<>(), new HashMap<>() ); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); final ChooserListAdapter activeAdapter = activity.getAdapter(); @@ -1688,7 +1695,8 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)).updateAppTargets(appTargets.capture()); + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, + times(1)).updateAppTargets(appTargets.capture()); // send shortcuts assertThat( @@ -1710,7 +1718,8 @@ public class ChooserActivityTest { new HashMap<>(), new HashMap<>() ); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); final ChooserListAdapter activeAdapter = activity.getAdapter(); @@ -1759,7 +1768,8 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)).updateAppTargets(appTargets.capture()); + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, + times(1)).updateAppTargets(appTargets.capture()); // send shortcuts assertThat( @@ -1781,7 +1791,8 @@ public class ChooserActivityTest { new HashMap<>(), new HashMap<>() ); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); final ChooserListAdapter activeAdapter = activity.getAdapter(); @@ -1848,7 +1859,8 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)).updateAppTargets(appTargets.capture()); + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, + times(1)).updateAppTargets(appTargets.capture()); // send shortcuts assertThat( @@ -1861,7 +1873,8 @@ public class ChooserActivityTest { new ShortcutLoader.ShortcutResultInfo[0], new HashMap<>(), new HashMap<>()); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); final ChooserListAdapter activeAdapter = activity.getAdapter(); @@ -2120,9 +2133,10 @@ public class ChooserActivityTest { mActivityRule.launchActivity(Intent.createChooser(sendIntent, "work tab test")); waitForIdle(); - assertThat(activity.getCurrentUserHandle().getIdentifier(), is(0)); + assertThat(activity.getCurrentUserHandle().getIdentifier(), + is(PERSONAL_USER_HANDLE.getIdentifier())); onView(withText(R.string.resolver_work_tab)).perform(click()); - assertThat(activity.getCurrentUserHandle().getIdentifier(), is(10)); + assertThat(activity.getCurrentUserHandle(), is(WORK_PROFILE_USER_HANDLE)); assertThat(activity.getPersonalListAdapter().getCount(), is(personalProfileTargets)); assertThat(activity.getWorkListAdapter().getCount(), is(workProfileTargets)); } @@ -2389,7 +2403,7 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)) + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, times(1)) .updateAppTargets(appTargets.capture()); // send shortcuts @@ -2412,7 +2426,8 @@ public class ChooserActivityTest { new HashMap<>(), new HashMap<>() ); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); assertThat("Chooser should have 3 targets (2 apps, 1 direct)", @@ -2462,7 +2477,7 @@ public class ChooserActivityTest { // verify that ShortcutLoader was queried ArgumentCaptor<DisplayResolveInfo[]> appTargets = ArgumentCaptor.forClass(DisplayResolveInfo[].class); - verify(shortcutLoaders.get(0).first, times(1)) + verify(shortcutLoaders.get(PERSONAL_USER_HANDLE.getIdentifier()).first, times(1)) .updateAppTargets(appTargets.capture()); // send shortcuts @@ -2482,7 +2497,8 @@ public class ChooserActivityTest { new HashMap<>(), new HashMap<>() ); - activity.getMainExecutor().execute(() -> shortcutLoaders.get(0).second.accept(result)); + activity.getMainExecutor().execute(() -> shortcutLoaders.get( + PERSONAL_USER_HANDLE.getIdentifier()).second.accept(result)); waitForIdle(); // Long-click on the direct target @@ -2709,15 +2725,17 @@ public class ChooserActivityTest { public void test_query_shortcut_loader_for_the_selected_tab() { markOtherProfileAvailability(/* workAvailable= */ true, /* cloneAvailable= */ false); List<ResolvedComponentInfo> personalResolvedComponentInfos = - createResolvedComponentsForTestWithOtherProfile(3, /* userId */ 10); + createResolvedComponentsForTestWithOtherProfile( + 3, + WORK_PROFILE_USER_HANDLE.getIdentifier()); List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(3); setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); ShortcutLoader personalProfileShortcutLoader = mock(ShortcutLoader.class); ShortcutLoader workProfileShortcutLoader = mock(ShortcutLoader.class); final SparseArray<ShortcutLoader> shortcutLoaders = new SparseArray<>(); - shortcutLoaders.put(0, personalProfileShortcutLoader); - shortcutLoaders.put(10, workProfileShortcutLoader); + shortcutLoaders.put(PERSONAL_USER_HANDLE.getIdentifier(), personalProfileShortcutLoader); + shortcutLoaders.put(WORK_PROFILE_USER_HANDLE.getIdentifier(), workProfileShortcutLoader); ChooserActivityOverrideData.getInstance().shortcutLoaderFactory = (userHandle, callback) -> shortcutLoaders.get(userHandle.getIdentifier(), null); Intent sendIntent = createSendTextIntent(); diff --git a/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java b/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java index 6ff7af3f..c279dae8 100644 --- a/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java +++ b/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java @@ -134,7 +134,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW @Override public final ChooserListController createListController(UserHandle userHandle) { - if (userHandle == UserHandle.SYSTEM) { + if (userHandle == sOverrides.personalUserHandle) { return sOverrides.resolverListController; } return sOverrides.workResolverListController; diff --git a/tests/shared/src/com/android/intentresolver/ResolverDataProvider.java b/tests/shared/src/com/android/intentresolver/ResolverDataProvider.java index db109941..3953d89c 100644 --- a/tests/shared/src/com/android/intentresolver/ResolverDataProvider.java +++ b/tests/shared/src/com/android/intentresolver/ResolverDataProvider.java @@ -36,7 +36,7 @@ import androidx.annotation.NonNull; */ public class ResolverDataProvider { - static private int USER_SOMEONE_ELSE = 10; + private static int sUserSomeoneElse = 99; static ResolvedComponentInfo createResolvedComponentInfo(int i) { return new ResolvedComponentInfo( @@ -73,7 +73,7 @@ public class ResolverDataProvider { return new ResolvedComponentInfo( createComponentName(i), createResolverIntent(i), - createResolveInfo(i, USER_SOMEONE_ELSE)); + createResolveInfo(i, sUserSomeoneElse)); } public static ResolvedComponentInfo createResolvedComponentInfoWithOtherId(int i, @@ -81,7 +81,7 @@ public class ResolverDataProvider { return new ResolvedComponentInfo( createComponentName(i), createResolverIntent(i), - createResolveInfo(i, USER_SOMEONE_ELSE, resolvedForUser)); + createResolveInfo(i, sUserSomeoneElse, resolvedForUser)); } static ResolvedComponentInfo createResolvedComponentInfoWithOtherId(int i, int userId) { |