mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Refactored dimension value parser test
This commit is contained in:
Binary file not shown.
@@ -1,6 +0,0 @@
|
||||
<resources>
|
||||
<bool name="test_bool_true">true</bool>
|
||||
<bool name="test_bool_false">false</bool>
|
||||
<bool name="test_bool_true_ref">@bool/test_bool_true</bool>
|
||||
<bool name="test_bool_false_ref">@bool/test_bool_false</bool>
|
||||
</resources>
|
||||
@@ -1,6 +0,0 @@
|
||||
<resources>
|
||||
<integer name="test_integer_1">1</integer>
|
||||
<integer name="test_integer_0">0</integer>
|
||||
<integer name="test_integer_1_ref">@integer/test_integer_1</integer>
|
||||
<integer name="test_integer_0_ref">@integer/test_integer_0</integer>
|
||||
</resources>
|
||||
@@ -0,0 +1,23 @@
|
||||
<!-- These resources are used to test to layout inflater's value parser/resolver -->
|
||||
|
||||
<resources>
|
||||
|
||||
<dimen name="test_dimen_0dp">0dp</dimen>
|
||||
<dimen name="test_dimen_1dp">1dp</dimen>
|
||||
<dimen name="test_dimen_0dp_ref">@dimen/test_dimen_0dp</dimen>
|
||||
<dimen name="test_dimen_1dp_ref">@dimen/test_dimen_1dp</dimen>
|
||||
<dimen name="test_dimen_0pt">0dp</dimen>
|
||||
<dimen name="test_dimen_1pt">1dp</dimen>
|
||||
<dimen name="test_dimen_0pt_ref">@dimen/test_dimen_0pt</dimen>
|
||||
<dimen name="test_dimen_1pt_ref">@dimen/test_dimen_1pt</dimen>
|
||||
|
||||
<bool name="test_bool_true">true</bool>
|
||||
<bool name="test_bool_false">false</bool>
|
||||
<bool name="test_bool_true_ref">@bool/test_bool_true</bool>
|
||||
<bool name="test_bool_false_ref">@bool/test_bool_false</bool>
|
||||
|
||||
<integer name="test_integer_1">1</integer>
|
||||
<integer name="test_integer_0">0</integer>
|
||||
<integer name="test_integer_1_ref">@integer/test_integer_1</integer>
|
||||
<integer name="test_integer_0_ref">@integer/test_integer_0</integer>
|
||||
</resources>
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user