diff options
author | Jon Boekenoogen <jboekeno@google.com> | 2013-10-22 19:07:30 -0700 |
---|---|---|
committer | Jon Boekenoogen <jboekeno@google.com> | 2013-10-22 19:08:18 -0700 |
commit | 54d1df48cfb8fcdfb42494c39fef9768cb81f7c7 (patch) | |
tree | b79a22cf7df7cd0d0742702d09a4ca65eb79bfb8 | |
parent | 9abe7c6023747c53cc164be5a9fff660f7e7902e (diff) | |
download | robolectric-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.java | 18 | ||||
-rw-r--r-- | src/test/java/com/xtremelabs/robolectric/res/RobolectricPackageManagerTest.java | 24 |
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(); |