diff options
author | 2023-12-16 13:36:17 -0500 | |
---|---|---|
committer | 2023-12-18 14:51:12 -0500 | |
commit | c5d2a0a21d5fb04440c7c759a193cbc6fad854cd (patch) | |
tree | 3a1211bbc3302629a15d6339c922ad935a71b3b7 /tests/activity | |
parent | cfd972848d9a4bd873c3740d28673db8edb2fb88 (diff) |
Inject app prediction service availability directly
Instead of depending on and mocking PackageManager, this change
creates a module to provide the availability signal. This greatly
simplifies test setup when used with Hilt.
This also sets the @Parameter label to a human readable value
shoing the parameter value for a given test (in the test name).
Test: atest IntentResolver-tests-activity
Bug: 300157408
Change-Id: Ief02bf0e51e879916296d5872d1946db43f78ad0
Diffstat (limited to 'tests/activity')
3 files changed, 18 insertions, 37 deletions
diff --git a/tests/activity/src/com/android/intentresolver/v2/ChooserActivityOverrideData.java b/tests/activity/src/com/android/intentresolver/v2/ChooserActivityOverrideData.java index 32eabbed..c84c25e3 100644 --- a/tests/activity/src/com/android/intentresolver/v2/ChooserActivityOverrideData.java +++ b/tests/activity/src/com/android/intentresolver/v2/ChooserActivityOverrideData.java @@ -52,9 +52,6 @@ public class ChooserActivityOverrideData { } return sInstance; } - - @SuppressWarnings("Since15") - public Function<PackageManager, PackageManager> createPackageManager; public Function<TargetInfo, Boolean> onSafelyStartInternalCallback; public Function<TargetInfo, Boolean> onSafelyStartCallback; public Function2<UserHandle, Consumer<ShortcutLoader.Result>, ShortcutLoader> @@ -78,7 +75,6 @@ public class ChooserActivityOverrideData { public void reset() { onSafelyStartInternalCallback = null; isVoiceInteraction = null; - createPackageManager = null; imageLoader = null; resolverCursor = null; resolverForceException = false; diff --git a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java index 8da045dc..cc14202f 100644 --- a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java +++ b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java @@ -172,14 +172,6 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW } @Override - public PackageManager getPackageManager() { - if (sOverrides.createPackageManager != null) { - return sOverrides.createPackageManager.apply(super.getPackageManager()); - } - return super.getPackageManager(); - } - - @Override public Resources getResources() { if (sOverrides.resources != null) { return sOverrides.resources; diff --git a/tests/activity/src/com/android/intentresolver/v2/UnbundledChooserActivityTest.java b/tests/activity/src/com/android/intentresolver/v2/UnbundledChooserActivityTest.java index 5245f655..770cabbc 100644 --- a/tests/activity/src/com/android/intentresolver/v2/UnbundledChooserActivityTest.java +++ b/tests/activity/src/com/android/intentresolver/v2/UnbundledChooserActivityTest.java @@ -131,6 +131,8 @@ import com.android.intentresolver.contentpreview.ImageLoader; import com.android.intentresolver.logging.EventLog; import com.android.intentresolver.logging.FakeEventLog; import com.android.intentresolver.shortcuts.ShortcutLoader; +import com.android.intentresolver.v2.platform.AppPredictionAvailable; +import com.android.intentresolver.v2.platform.AppPredictionModule; import com.android.intentresolver.v2.platform.ImageEditor; import com.android.intentresolver.v2.platform.ImageEditorModule; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; @@ -150,12 +152,12 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -165,16 +167,16 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; -import java.util.function.Function; /** * Instrumentation tests for ChooserActivity. * <p> * Legacy test suite migrated from framework CoreTests. */ +@SuppressWarnings("OptionalUsedAsFieldOrParameterType") @RunWith(Parameterized.class) @HiltAndroidTest -@UninstallModules(ImageEditorModule.class) +@UninstallModules({ImageEditorModule.class, AppPredictionModule.class}) public class UnbundledChooserActivityTest { private static FakeEventLog getEventLog(ChooserWrapperActivity activity) { @@ -186,22 +188,12 @@ public class UnbundledChooserActivityTest { private static final UserHandle WORK_PROFILE_USER_HANDLE = UserHandle.of(10); private static final UserHandle CLONE_PROFILE_USER_HANDLE = UserHandle.of(11); - private static final Function<PackageManager, PackageManager> DEFAULT_PM = pm -> pm; - private static final Function<PackageManager, PackageManager> NO_APP_PREDICTION_SERVICE_PM = - pm -> { - PackageManager mock = Mockito.spy(pm); - when(mock.getAppPredictionServicePackageName()).thenReturn(null); - return mock; - }; - - @Parameterized.Parameters - public static Collection packageManagers() { - return Arrays.asList(new Object[][] { - // Default PackageManager - { DEFAULT_PM }, - // No App Prediction Service - { NO_APP_PREDICTION_SERVICE_PM} - }); + @Parameters(name = "appPrediction={0}") + public static Iterable<?> parameters() { + return Arrays.asList( + /* appPredictionAvailable = */ true, + /* appPredictionAvailable = */ false + ); } private static final String TEST_MIME_TYPE = "application/TestType"; @@ -233,8 +225,6 @@ public class UnbundledChooserActivityTest { mHiltAndroidRule.inject(); } - private final Function<PackageManager, PackageManager> mPackageManagerOverride; - /** An arbitrary pre-installed activity that handles this type of intent. */ @BindValue @ImageEditor @@ -242,9 +232,13 @@ public class UnbundledChooserActivityTest { ComponentName.unflattenFromString("com.google.android.apps.messaging/" + ".ui.conversationlist.ShareIntentActivity")); - public UnbundledChooserActivityTest( - Function<PackageManager, PackageManager> packageManagerOverride) { - mPackageManagerOverride = packageManagerOverride; + /** Whether an AppPredictionService is available for use. */ + @BindValue + @AppPredictionAvailable + final boolean mAppPredictionAvailable; + + public UnbundledChooserActivityTest(boolean appPredictionAvailable) { + mAppPredictionAvailable = appPredictionAvailable; } private void setDeviceConfigProperty( @@ -267,7 +261,6 @@ public class UnbundledChooserActivityTest { public void cleanOverrideData() { ChooserActivityOverrideData.getInstance().reset(); - ChooserActivityOverrideData.getInstance().createPackageManager = mPackageManagerOverride; setDeviceConfigProperty( SystemUiDeviceConfigFlags.APPLY_SHARING_APP_LIMITS_IN_SYSUI, |