diff --git a/tests/test-home/.androidide/init/model.jar b/tests/test-home/.androidide/init/model.jar
index 1799175c8..ffc72594a 100644
Binary files a/tests/test-home/.androidide/init/model.jar and b/tests/test-home/.androidide/init/model.jar differ
diff --git a/tests/test-project/app/src/main/res/values/bools.xml b/tests/test-project/app/src/main/res/values/bools.xml
deleted file mode 100644
index 368abe418..000000000
--- a/tests/test-project/app/src/main/res/values/bools.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
- true
- false
- @bool/test_bool_true
- @bool/test_bool_false
-
diff --git a/tests/test-project/app/src/main/res/values/integers.xml b/tests/test-project/app/src/main/res/values/integers.xml
deleted file mode 100644
index c9a4655c3..000000000
--- a/tests/test-project/app/src/main/res/values/integers.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
- 1
- 0
- @integer/test_integer_1
- @integer/test_integer_0
-
diff --git a/tests/test-project/app/src/main/res/values/parser_test.xml b/tests/test-project/app/src/main/res/values/parser_test.xml
new file mode 100644
index 000000000..971834395
--- /dev/null
+++ b/tests/test-project/app/src/main/res/values/parser_test.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ 0dp
+ 1dp
+ @dimen/test_dimen_0dp
+ @dimen/test_dimen_1dp
+ 0dp
+ 1dp
+ @dimen/test_dimen_0pt
+ @dimen/test_dimen_1pt
+
+ true
+ false
+ @bool/test_bool_true
+ @bool/test_bool_false
+
+ 1
+ 0
+ @integer/test_integer_1
+ @integer/test_integer_0
+
diff --git a/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt
index 527fe2d98..d521dab01 100644
--- a/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt
+++ b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt
@@ -38,30 +38,41 @@ class ValueParsersTest {
inflaterTest { module ->
requiresActivity { activity ->
startParse(module)
+
+ // Hardcoded dimensions
val units = arrayOf("dp", "sp", "pt", "px", "in", "mm")
val results = intArrayOf(1, 1, 2, 1, 160, 6)
for (i in units.indices) {
assertThat(parseDimension(activity, "1" + units[i], -1)).isEqualTo(results[i])
}
- endParse()
- }
- }
- }
-
- @Test
- fun `reference dimension parser test`() {
- inflaterTest { module ->
- requiresActivity { activity ->
- startParse(module)
+
+ // Dimensions from platform resources
assertThat(parseDimension(activity, "@android:dimen/app_icon_size")).isEqualTo(12289)
assertThat(parseDimension(activity, "@android:dimen/status_bar_height_portrait"))
.isEqualTo(6145)
-
- // The app module here targets android 31 and the dimension resource below was added in
- // android 31. So, the resource should not be resolved and
- // ViewGroup.LayoutParams.WRAP_CONTENT must be returned instead.
- assertThat(parseDimension(activity, "@android:dimen/status_bar_height_default"))
- .isEqualTo(-2)
+
+ val exists = try {
+ // The app module here targets android 31 and the dimension resource below was added in
+ // android 31. So, the resource should not be resolved and
+ // ViewGroup.LayoutParams.WRAP_CONTENT must be returned instead.
+ assertThat(parseDimension(activity, "@android:dimen/status_bar_height_default"))
+ .isEqualTo(-2)
+ true
+ } catch (err: IllegalArgumentException) {
+ false
+ }
+
+ assertThat(exists).isFalse()
+
+ assertThat(parseDimension(activity, "@dimen/test_dimen_0dp", def = 1)).isEqualTo(0)
+ assertThat(parseDimension(activity, "@dimen/test_dimen_1dp", def = 0)).isEqualTo(1)
+ assertThat(parseDimension(activity, "@dimen/test_dimen_1dp_ref", def = 0)).isEqualTo(1)
+ assertThat(parseDimension(activity, "@dimen/test_dimen_0dp_ref", def = 0)).isEqualTo(0)
+
+ assertThat(parseDimension(activity, "@dimen/test_dimen_0pt", def = 1)).isEqualTo(0)
+ assertThat(parseDimension(activity, "@dimen/test_dimen_1pt", def = 0)).isEqualTo(2)
+ assertThat(parseDimension(activity, "@dimen/test_dimen_1pt_ref", def = 0)).isEqualTo(2)
+ assertThat(parseDimension(activity, "@dimen/test_dimen_0pt_ref", def = 0)).isEqualTo(0)
endParse()
}
}