diff --git a/robolectric-resources/src/main/java/org/robolectric/res/StyleResolver.java b/robolectric-resources/src/main/java/org/robolectric/res/StyleResolver.java
index 328680c15fa..332101f69e8 100644
--- a/robolectric-resources/src/main/java/org/robolectric/res/StyleResolver.java
+++ b/robolectric-resources/src/main/java/org/robolectric/res/StyleResolver.java
@@ -75,7 +75,7 @@ private static boolean hasParent(StyleData style) {
private StyleData getParent(StyleData style) {
String parent = getParentStyleName(style);
- if (parent == null) return null;
+ if (parent == null || "Null".equals(parent)) return null;
if (parent.startsWith("@")) parent = parent.substring(1);
diff --git a/robolectric/src/test/java/org/robolectric/R.java b/robolectric/src/test/java/org/robolectric/R.java
index 30e15c679ce..1a997c07368 100644
--- a/robolectric/src/test/java/org/robolectric/R.java
+++ b/robolectric/src/test/java/org/robolectric/R.java
@@ -346,11 +346,12 @@ public static final class style {
public static final int Sized = 0x11007;
public static final int Gastropod = 0x11008;
public static final int Theme_ThirdTheme = 0x11009;
- public static final int Theme_MyTheme = 0x1100a;
- public static final int MyBlackTheme = 0x1100b;
- public static final int MyBlueTheme = 0x1100c;
+ public static final int Theme_MyThemeWithEmptyParent = 0x1100a;
+ public static final int Theme_MyThemeWithNullStringParent = 0x1100b;
+ public static final int MyBlackTheme = 0x1100c;
+ public static final int MyBlueTheme = 0x1100d;
- public static final int IndirectButtonStyle = 0x1100d;
+ public static final int IndirectButtonStyle = 0x1100e;
}
public static final class fraction {
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowThemeTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowThemeTest.java
index b58e00a3bcf..daefc8d051c 100644
--- a/robolectric/src/test/java/org/robolectric/shadows/ShadowThemeTest.java
+++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowThemeTest.java
@@ -132,10 +132,17 @@ public class ShadowThemeTest {
TestActivity activity = Robolectric.setupActivity(TestActivityWithAnotherTheme.class);
Style style = shadowOf(activity.getAssets()).resolveStyle(
null,
- R.style.Theme_MyTheme);
+ R.style.Theme_MyThemeWithEmptyParent);
assertThat(style.getAttrValue(new ResName("android", "attr", "background"))).isNull();
}
+ @Test public void whenAThemeHasNullStringParentAttr_shouldHaveNoParent() throws Exception {
+ TestActivity activity = Robolectric.setupActivity(TestActivityWithAnotherTheme.class);
+ Style style = shadowOf(activity.getAssets()).resolveStyle(
+ null,
+ R.style.Theme_MyThemeWithNullStringParent);
+ assertThat(style.getAttrValue(new ResName("android", "attr", "background"))).isNull();
+ }
@Test public void shouldApplyParentStylesFromAttrs() throws Exception {
TestActivity activity = Robolectric.setupActivity(TestActivityWithAnotherTheme.class);
diff --git a/robolectric/src/test/resources/res/values/themes.xml b/robolectric/src/test/resources/res/values/themes.xml
index 701b86b0603..7d937f636fc 100644
--- a/robolectric/src/test/resources/res/values/themes.xml
+++ b/robolectric/src/test/resources/res/values/themes.xml
@@ -20,7 +20,8 @@
- ?someLayoutOne
-
+
+