aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurice Lam <yukl@google.com>2018-10-05 13:00:43 -0700
committerMaurice Lam <yukl@google.com>2018-10-05 16:23:31 -0700
commite130bc814dbc03f9e08489d1df61c1071a5e90cb (patch)
tree0a3c526f3ea8fb2a2d90163a9cfdc34fc109b986
parentee7eb736d69e4f424a1dbe6cfd1b4e1cadad03e5 (diff)
downloadrobolectric-shadows-e130bc814dbc03f9e08489d1df61c1071a5e90cb.tar.gz
Add support for hidden framework resources
@*android resource references are used by bundled apps to reference framework internal resources. Test: atest RunSettingsRoboTests Change-Id: I0da0fa28ea384dd6a6d994345a26fc3f7d0576d4
-rw-r--r--resources/src/main/java/org/robolectric/res/ResName.java9
-rw-r--r--robolectric/src/test/java/org/robolectric/res/ResNameTest.java1
2 files changed, 9 insertions, 1 deletions
diff --git a/resources/src/main/java/org/robolectric/res/ResName.java b/resources/src/main/java/org/robolectric/res/ResName.java
index e5fcd7ac4..42ce2b5c1 100644
--- a/resources/src/main/java/org/robolectric/res/ResName.java
+++ b/resources/src/main/java/org/robolectric/res/ResName.java
@@ -77,7 +77,14 @@ public class ResName {
return null;
}
- return new ResName(packageName == null ? defaultPackageName : packageName,
+ if (packageName == null) {
+ packageName = defaultPackageName;
+ } else if ("*android".equals(packageName)) {
+ packageName = "android";
+ }
+
+ return new ResName(
+ packageName,
type == null ? defaultType : type,
name);
}
diff --git a/robolectric/src/test/java/org/robolectric/res/ResNameTest.java b/robolectric/src/test/java/org/robolectric/res/ResNameTest.java
index bb0443eef..79f5ca969 100644
--- a/robolectric/src/test/java/org/robolectric/res/ResNameTest.java
+++ b/robolectric/src/test/java/org/robolectric/res/ResNameTest.java
@@ -11,6 +11,7 @@ public class ResNameTest {
@Test public void shouldQualify() throws Exception {
assertThat(ResName.qualifyResourceName("some.package:type/name", null, null)).isEqualTo("some.package:type/name");
assertThat(ResName.qualifyResourceName("some.package:type/name", "default.package", "deftype")).isEqualTo("some.package:type/name");
+ assertThat(ResName.qualifyResourceName("*android:type/name", "default.package", "deftype")).isEqualTo("android:type/name");
assertThat(ResName.qualifyResourceName("some.package:name", "default.package", "deftype")).isEqualTo("some.package:deftype/name");
assertThat(ResName.qualifyResourceName("type/name", "default.package", "deftype")).isEqualTo("default.package:type/name");
assertThat(ResName.qualifyResourceName("name", "default.package", "deftype")).isEqualTo("default.package:deftype/name");