aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gerrish <jonathan@indiekid.org>2017-11-01 02:09:04 -0400
committerGitHub <noreply@github.com>2017-11-01 02:09:04 -0400
commit155232a18121d1138db3606613dcae5f5eb7e214 (patch)
treefde1947c1b5d16b72eeec5e22f2a666c848a2613
parentd1aeb98a6fe478462dfcc487240d7920c7a0896c (diff)
parente8617343f4be825fe8e696136f29d40b1fcec286 (diff)
downloadrobolectric-shadows-155232a18121d1138db3606613dcae5f5eb7e214.tar.gz
Merge pull request #3495 from robolectric/patch174102663
Support Mipmap resource reference resolution.
-rw-r--r--resources/src/main/java/org/robolectric/res/ResourceTableFactory.java5
-rw-r--r--robolectric/src/test/java/org/robolectric/R.java1
-rw-r--r--robolectric/src/test/java/org/robolectric/res/ResourceTableFactoryTest.java5
-rw-r--r--robolectric/src/test/java/org/robolectric/shadows/ShadowResourcesTest.java15
-rw-r--r--robolectric/src/test/resources/res/values/mipmaps.xml4
5 files changed, 28 insertions, 2 deletions
diff --git a/resources/src/main/java/org/robolectric/res/ResourceTableFactory.java b/resources/src/main/java/org/robolectric/res/ResourceTableFactory.java
index 87d726e4a..07018957e 100644
--- a/resources/src/main/java/org/robolectric/res/ResourceTableFactory.java
+++ b/resources/src/main/java/org/robolectric/res/ResourceTableFactory.java
@@ -113,9 +113,10 @@ public class ResourceTableFactory {
.addHandler("bool", new StaxValueLoader(resourceTable, "bool", ResType.BOOLEAN))
.addHandler("item[@type='bool']", new StaxValueLoader(resourceTable, "bool", ResType.BOOLEAN))
.addHandler("color", new StaxValueLoader(resourceTable, "color", ResType.COLOR))
- .addHandler("drawable", new StaxValueLoader(resourceTable, "drawable", ResType.DRAWABLE))
.addHandler("item[@type='color']", new StaxValueLoader(resourceTable, "color", ResType.COLOR))
+ .addHandler("drawable", new StaxValueLoader(resourceTable, "drawable", ResType.DRAWABLE))
.addHandler("item[@type='drawable']", new StaxValueLoader(resourceTable, "drawable", ResType.DRAWABLE))
+ .addHandler("item[@type='mipmap']", new StaxValueLoader(resourceTable, "mipmap", ResType.DRAWABLE))
.addHandler("dimen", new StaxValueLoader(resourceTable, "dimen", ResType.DIMEN))
.addHandler("item[@type='dimen']", new StaxValueLoader(resourceTable, "dimen", ResType.DIMEN))
.addHandler("integer", new StaxValueLoader(resourceTable, "integer", ResType.INTEGER))
@@ -164,4 +165,4 @@ public class ResourceTableFactory {
}
}.load(type);
}
-} \ No newline at end of file
+}
diff --git a/robolectric/src/test/java/org/robolectric/R.java b/robolectric/src/test/java/org/robolectric/R.java
index 0dfeb547b..ed80c75bb 100644
--- a/robolectric/src/test/java/org/robolectric/R.java
+++ b/robolectric/src/test/java/org/robolectric/R.java
@@ -424,5 +424,6 @@ public final class R {
public static final class mipmap {
public static final int robolectric = 0x7f140000;
+ public static final int mipmap_reference = 0x7f140001;
}
}
diff --git a/robolectric/src/test/java/org/robolectric/res/ResourceTableFactoryTest.java b/robolectric/src/test/java/org/robolectric/res/ResourceTableFactoryTest.java
index c1ad9ff52..a60091180 100644
--- a/robolectric/src/test/java/org/robolectric/res/ResourceTableFactoryTest.java
+++ b/robolectric/src/test/java/org/robolectric/res/ResourceTableFactoryTest.java
@@ -38,6 +38,11 @@ public class ResourceTableFactoryTest {
}
@Test
+ public void shouldHandleMipmapReferences() {
+ assertThat(appResourceTable.getResourceId(new ResName("org.robolectric:mipmap/mipmap_reference"))).isEqualTo(R.mipmap.mipmap_reference);
+ }
+
+ @Test
public void shouldHandleStyleable() throws Exception {
assertThat(appResourceTable.getResourceId(new ResName("org.robolectric:id/textStyle"))).isEqualTo(R.id.textStyle);
assertThat(appResourceTable.getResourceId(new ResName("org.robolectric:styleable/TitleBar_textStyle"))).isEqualTo(0);
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowResourcesTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowResourcesTest.java
index e68789169..c83a1e51a 100644
--- a/robolectric/src/test/java/org/robolectric/shadows/ShadowResourcesTest.java
+++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowResourcesTest.java
@@ -883,6 +883,21 @@ public class ShadowResourcesTest {
.isEqualTo("Up to 25 USD");
}
+ @Test
+ public void getResourceTypeName_mipmap() {
+ assertThat(resources.getResourceTypeName(R.mipmap.mipmap_reference)).isEqualTo("mipmap");
+ assertThat(resources.getResourceTypeName(R.mipmap.robolectric)).isEqualTo("mipmap");
+ }
+
+ @Test
+ public void getDrawable_mipmapReferencesResolve() {
+ Drawable reference = resources.getDrawable(R.mipmap.mipmap_reference);
+ Drawable original = resources.getDrawable(R.mipmap.robolectric);
+
+ assertThat(reference.getMinimumHeight()).isEqualTo(original.getMinimumHeight());
+ assertThat(reference.getMinimumWidth()).isEqualTo(original.getMinimumWidth());
+ }
+
private static String findRootTag(XmlResourceParser parser) throws Exception {
int event;
do {
diff --git a/robolectric/src/test/resources/res/values/mipmaps.xml b/robolectric/src/test/resources/res/values/mipmaps.xml
new file mode 100644
index 000000000..41999cc2b
--- /dev/null
+++ b/robolectric/src/test/resources/res/values/mipmaps.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <item name="mipmap_reference" type="mipmap">@mipmap/robolectric</item>
+</resources>