aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Boekenoogen <jboekeno@google.com>2013-10-22 19:07:30 -0700
committerJon Boekenoogen <jboekeno@google.com>2013-10-22 19:08:18 -0700
commit54d1df48cfb8fcdfb42494c39fef9768cb81f7c7 (patch)
treeb79a22cf7df7cd0d0742702d09a4ca65eb79bfb8
parent9abe7c6023747c53cc164be5a9fff660f7e7902e (diff)
downloadrobolectric-54d1df48cfb8fcdfb42494c39fef9768cb81f7c7.tar.gz
Add support for PackageManager.queryBroadcastReceivers
Used as an intermediate step to reduce the pain when switching to Robolectric v2. Change-Id: I7f98734896e030ed7b343f3bd0f05d263aa5b8a4
-rw-r--r--src/main/java/com/xtremelabs/robolectric/res/RobolectricPackageManager.java18
-rw-r--r--src/test/java/com/xtremelabs/robolectric/res/RobolectricPackageManagerTest.java24
2 files changed, 40 insertions, 2 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/res/RobolectricPackageManager.java b/src/main/java/com/xtremelabs/robolectric/res/RobolectricPackageManager.java
index b15e89d9a..9beb75447 100644
--- a/src/main/java/com/xtremelabs/robolectric/res/RobolectricPackageManager.java
+++ b/src/main/java/com/xtremelabs/robolectric/res/RobolectricPackageManager.java
@@ -1,6 +1,7 @@
package com.xtremelabs.robolectric.res;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -73,8 +74,12 @@ public class RobolectricPackageManager extends StubPackageManager {
@Override
public List<ResolveInfo> queryIntentActivities( Intent intent, int flags ) {
- List<ResolveInfo> result = resolveList.get( intent );
- return (result == null) ? new ArrayList<ResolveInfo>() : result;
+ return queryIntent(intent, flags);
+ }
+
+ @Override
+ public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) {
+ return queryIntent(intent, flags);
}
@Override
@@ -179,6 +184,15 @@ public class RobolectricPackageManager extends StubPackageManager {
systemFeatureList.put(name, supported);
}
+ private List<ResolveInfo> queryIntent(Intent intent, int flags) {
+ List<ResolveInfo> result = resolveList.get(intent);
+ if (result == null) {
+ return Collections.emptyList();
+ } else {
+ return result;
+ }
+ }
+
private void initializePackageInfo() {
if (packageList != null) { return; }
diff --git a/src/test/java/com/xtremelabs/robolectric/res/RobolectricPackageManagerTest.java b/src/test/java/com/xtremelabs/robolectric/res/RobolectricPackageManagerTest.java
index ed4d8731e..1a7678309 100644
--- a/src/test/java/com/xtremelabs/robolectric/res/RobolectricPackageManagerTest.java
+++ b/src/test/java/com/xtremelabs/robolectric/res/RobolectricPackageManagerTest.java
@@ -87,6 +87,30 @@ public class RobolectricPackageManagerTest {
}
@Test
+ public void queryBroadcastReceivers__EmptyResult() throws Exception {
+ Intent i = new Intent(Intent.ACTION_MAIN, null);
+ i.addCategory(Intent.CATEGORY_LAUNCHER);
+
+ List<ResolveInfo> broadCastReceivers = rpm.queryBroadcastReceivers(i, 0);
+ assertThat(broadCastReceivers.size(), equalTo(0));
+ }
+
+ @Test
+ public void queryBroadcastReceivers__Match() throws Exception {
+ Intent i = new Intent(Intent.ACTION_MAIN, null);
+
+ ResolveInfo info = new ResolveInfo();
+ info.nonLocalizedLabel = TEST_PACKAGE_LABEL;
+
+ rpm.addResolveInfoForIntent(i, info);
+
+ List<ResolveInfo> broadCastReceivers = rpm.queryBroadcastReceivers(i, 0);
+ assertThat(broadCastReceivers.size(), equalTo(1));
+ assertThat(broadCastReceivers.get(0).nonLocalizedLabel.toString(),
+ equalTo(TEST_PACKAGE_LABEL));
+ }
+
+ @Test
public void resolveActivity__Match() throws Exception {
Intent i = new Intent(Intent.ACTION_MAIN, null).addCategory(Intent.CATEGORY_LAUNCHER);
ResolveInfo info = new ResolveInfo();