summaryrefslogtreecommitdiff
path: root/tests/activity
diff options
context:
space:
mode:
author Mark Renouf <mrenouf@google.com> 2023-12-16 13:36:17 -0500
committer Mark Renouf <mrenouf@google.com> 2023-12-18 14:51:12 -0500
commitc5d2a0a21d5fb04440c7c759a193cbc6fad854cd (patch)
tree3a1211bbc3302629a15d6339c922ad935a71b3b7 /tests/activity
parentcfd972848d9a4bd873c3740d28673db8edb2fb88 (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')
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ChooserActivityOverrideData.java4
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java8
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/UnbundledChooserActivityTest.java43
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,