Trim whitespace from value in ResName constructor
diff --git a/robolectric-resources/src/main/java/org/robolectric/res/Attribute.java b/robolectric-resources/src/main/java/org/robolectric/res/Attribute.java
index 9fd614c..733db7f 100644
--- a/robolectric-resources/src/main/java/org/robolectric/res/Attribute.java
+++ b/robolectric-resources/src/main/java/org/robolectric/res/Attribute.java
@@ -90,7 +90,7 @@
if (!resName.type.equals("attr")) throw new IllegalStateException("\"" + resName.getFullyQualifiedName() + "\" unexpected");
this.resName = resName;
- this.value = value.trim();
+ this.value = value;
this.contextPackageName = contextPackageName;
}
diff --git a/robolectric-resources/src/main/java/org/robolectric/res/ResName.java b/robolectric-resources/src/main/java/org/robolectric/res/ResName.java
index 49abcc7..4d4f290 100644
--- a/robolectric-resources/src/main/java/org/robolectric/res/ResName.java
+++ b/robolectric-resources/src/main/java/org/robolectric/res/ResName.java
@@ -20,7 +20,7 @@
public ResName(@NotNull String packageName, @NotNull String type, @NotNull String name) {
this.packageName = packageName;
- this.type = type;
+ this.type = type.trim();
this.name = name.indexOf('.') != -1 ? name.replace('.', '_').trim() : name.trim();
hashCode = computeHashCode();
@@ -32,7 +32,7 @@
throw new IllegalStateException("\"" + fullyQualifiedName + "\" is not fully qualified");
}
packageName = matcher.group(NAMESPACE);
- type = matcher.group(TYPE);
+ type = matcher.group(TYPE).trim();
String nameStr = matcher.group(NAME);
name = nameStr.indexOf('.') != -1 ? nameStr.replace('.', '_') : nameStr;
diff --git a/robolectric/src/test/java/org/robolectric/res/ResNameTest.java b/robolectric/src/test/java/org/robolectric/res/ResNameTest.java
index 4258007..608c2a4 100644
--- a/robolectric/src/test/java/org/robolectric/res/ResNameTest.java
+++ b/robolectric/src/test/java/org/robolectric/res/ResNameTest.java
@@ -71,4 +71,23 @@
assertThat(resName.type).isEqualTo("style");
assertThat(resName.packageName).isEqualTo("android");
}
+
+ @Test
+ public void fullyQualifiedNameWithWhiteSpaceInTypeShouldBeHandledCorrectly() {
+ String name = "android: string/ok";
+ ResName resName = new ResName(name);
+
+ assertThat(resName.name).isEqualTo("ok");
+ assertThat(resName.type).isEqualTo("string");
+ assertThat(resName.packageName).isEqualTo("android");
+ }
+
+ @Test
+ public void resourceNameWithWhiteSpaceInTypeShouldBeHandledCorrectly() {
+ ResName resName = new ResName("android", " string", "ok");
+
+ assertThat(resName.name).isEqualTo("ok");
+ assertThat(resName.type).isEqualTo("string");
+ assertThat(resName.packageName).isEqualTo("android");
+ }
}