@@ -19,6 +19,7 @@ package androidx.navigation
1919import android.content.pm.ActivityInfo
2020import android.graphics.Bitmap
2121import android.os.Bundle
22+ import androidx.navigation.common.test.R
2223import androidx.test.filters.SmallTest
2324import com.google.common.truth.Truth.assertThat
2425import org.junit.Test
@@ -42,6 +43,8 @@ class NavTypeTest {
4243 private val booleans = booleanArrayOf(b, false )
4344 private val s = " a_string"
4445 private val strings = arrayOf(" aa" , " bb" )
46+ private val reference = R .id.nav_id_reference
47+ private val referenceHex = " 0x" + R .id.nav_id_reference.toString(16 )
4548 private val parcelable = ActivityInfo ()
4649 private val parcelables = arrayOf(parcelable)
4750 private val en = Bitmap .Config .ALPHA_8
@@ -78,6 +81,8 @@ class NavTypeTest {
7881 .isEqualTo(NavType .StringType )
7982 assertThat(NavType .fromArgType(" string[]" , null ))
8083 .isEqualTo(NavType .StringArrayType )
84+ assertThat(NavType .fromArgType(" reference" , null ))
85+ .isEqualTo(NavType .ReferenceType )
8186 assertThat(NavType .fromArgType(" android.content.pm.ActivityInfo" , null ))
8287 .isEqualTo(parcelableNavType)
8388 assertThat(NavType .fromArgType(" android.content.pm.ActivityInfo[]" , null ))
@@ -98,6 +103,8 @@ class NavTypeTest {
98103 .isEqualTo(NavType .StringType )
99104 assertThat(NavType .inferFromValue(" 123" ))
100105 .isEqualTo(NavType .IntType )
106+ assertThat(NavType .inferFromValue(" 0xFF" ))
107+ .isEqualTo(NavType .IntType )
101108 assertThat(NavType .inferFromValue(" 123L" ))
102109 .isEqualTo(NavType .LongType )
103110 assertThat(NavType .inferFromValue(" 1.5" ))
@@ -196,6 +203,11 @@ class NavTypeTest {
196203 .isEqualTo(strings)
197204 bundle.clear()
198205
206+ NavType .ReferenceType .put(bundle, key, reference)
207+ assertThat(NavType .ReferenceType .get(bundle, key))
208+ .isEqualTo(reference)
209+ bundle.clear()
210+
199211 parcelableNavType.put(bundle, key, parcelable)
200212 assertThat(parcelableNavType.get(bundle, key))
201213 .isEqualTo(parcelable)
@@ -221,4 +233,13 @@ class NavTypeTest {
221233 .isEqualTo(serializables)
222234 bundle.clear()
223235 }
236+
237+ @Test
238+ fun parseValueWithHex () {
239+ assertThat(NavType .IntType .parseValue(referenceHex))
240+ .isEqualTo(reference)
241+
242+ assertThat(NavType .ReferenceType .parseValue(referenceHex))
243+ .isEqualTo(reference)
244+ }
224245}
0 commit comments