diff options
author | Jonathan Gerrish <jonathan@indiekid.org> | 2017-11-01 02:09:04 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-01 02:09:04 -0400 |
commit | 155232a18121d1138db3606613dcae5f5eb7e214 (patch) | |
tree | fde1947c1b5d16b72eeec5e22f2a666c848a2613 | |
parent | d1aeb98a6fe478462dfcc487240d7920c7a0896c (diff) | |
parent | e8617343f4be825fe8e696136f29d40b1fcec286 (diff) | |
download | robolectric-shadows-155232a18121d1138db3606613dcae5f5eb7e214.tar.gz |
Merge pull request #3495 from robolectric/patch174102663
Support Mipmap resource reference resolution.
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> |