@@ -23,6 +23,7 @@ import android.os.Bundle
2323import android.os.Parcel
2424import androidx.activity.OnBackPressedDispatcher
2525import androidx.activity.addCallback
26+ import androidx.core.os.bundleOf
2627import androidx.lifecycle.Lifecycle
2728import androidx.lifecycle.ViewModelStore
2829import androidx.lifecycle.testing.TestLifecycleOwner
@@ -65,14 +66,14 @@ class NavControllerRouteTest {
6566 test(" start_test_with_default_arg" ) {
6667 argument(" defaultArg" ) { defaultValue = true }
6768 }
68- test(" second_test" ) {
69+ test(" second_test/{arg2} " ) {
6970 argument(" arg2" ) { type = NavType .StringType }
7071 argument(" defaultArg" ) {
7172 type = NavType .StringType
7273 defaultValue = " defaultValue"
7374 }
7475 deepLink {
75- uriPattern = " android-app://androidx.navigation.test/test"
76+ uriPattern = " android-app://androidx.navigation.test/test/{arg2} "
7677 action = " test.action"
7778 mimeType = " type/test"
7879 }
@@ -185,7 +186,7 @@ class NavControllerRouteTest {
185186 fun testGetPreviousBackStackEntry () {
186187 val navController = createNavController()
187188 navController.graph = nav_simple_route_graph
188- navController.navigate(" second_test" )
189+ navController.navigate(" second_test/arg2 " )
189190 assertThat(navController.previousBackStackEntry?.destination?.route).isEqualTo(" start_test" )
190191 }
191192
@@ -319,8 +320,8 @@ class NavControllerRouteTest {
319320 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
320321 assertThat(navigator.backStack.size).isEqualTo(1 )
321322
322- navController.navigate(" second_test" )
323- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
323+ navController.navigate(" second_test/arg2 " )
324+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
324325 assertThat(navigator.backStack.size).isEqualTo(2 )
325326 }
326327
@@ -330,10 +331,10 @@ class NavControllerRouteTest {
330331 val navController = createNavController()
331332 navController.graph = nav_simple_route_graph
332333 val navigator = navController.navigatorProvider.getNavigator(TestNavigator ::class .java)
333- val deepLink = Uri .parse(" android-app://androidx.navigation.test/test" )
334+ val deepLink = Uri .parse(" android-app://androidx.navigation.test/test/arg2 " )
334335
335336 navController.navigate(deepLink)
336- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
337+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
337338 assertThat(navigator.backStack.size).isEqualTo(2 )
338339 val intent = navigator.current.arguments?.getParcelable<Intent >(
339340 NavController .KEY_DEEP_LINK_INTENT
@@ -347,12 +348,12 @@ class NavControllerRouteTest {
347348 val navController = createNavController()
348349 navController.graph = nav_simple_route_graph
349350 val navigator = navController.navigatorProvider.getNavigator(TestNavigator ::class .java)
350- val deepLink = Uri .parse(" android-app://androidx.navigation.test/test" )
351+ val deepLink = Uri .parse(" android-app://androidx.navigation.test/test/arg2 " )
351352
352353 navController.navigate(deepLink)
353354
354355 val destination = navController.currentDestination
355- assertThat(destination?.route).isEqualTo(" second_test" )
356+ assertThat(destination?.route).isEqualTo(" second_test/{arg2} " )
356357 assertThat(navigator.backStack.size).isEqualTo(2 )
357358 assertThat(destination?.arguments?.get(" defaultArg" )?.defaultValue.toString())
358359 .isEqualTo(" defaultValue" )
@@ -367,7 +368,7 @@ class NavControllerRouteTest {
367368 val deepLink = NavDeepLinkRequest (Uri .parse(" invalidDeepLink.com" ), " test.action" , null )
368369
369370 navController.navigate(deepLink)
370- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
371+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
371372 assertThat(navigator.backStack.size).isEqualTo(2 )
372373 }
373374
@@ -380,7 +381,7 @@ class NavControllerRouteTest {
380381 val deepLink = NavDeepLinkRequest (Uri .parse(" invalidDeepLink.com" ), null , " type/test" )
381382
382383 navController.navigate(deepLink)
383- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
384+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
384385 assertThat(navigator.backStack.size).isEqualTo(2 )
385386 }
386387
@@ -447,15 +448,15 @@ class NavControllerRouteTest {
447448 val navController = createNavController()
448449 navController.graph = nav_simple_route_graph
449450 val navigator = navController.navigatorProvider.getNavigator(TestNavigator ::class .java)
450- val deepLink = Uri .parse(" android-app://androidx.navigation.test/test" )
451+ val deepLink = Uri .parse(" android-app://androidx.navigation.test/test/arg2 " )
451452
452453 navController.navigate(
453454 deepLink,
454455 navOptions {
455456 popUpTo(" nav_root" ) { inclusive = true }
456457 }
457458 )
458- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
459+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
459460 assertThat(navigator.backStack.size).isEqualTo(1 )
460461 }
461462
@@ -570,7 +571,8 @@ class NavControllerRouteTest {
570571 val navigator =
571572 navController.navigatorProvider.getNavigator(TestNavigator ::class .java)
572573
573- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
574+ assertThat(navController.currentDestination?.route)
575+ .isEqualTo(" second_test/{arg2}" )
574576
575577 // Only the leaf destination should be on the stack.
576578 assertThat(navigator.backStack.size).isEqualTo(1 )
@@ -619,7 +621,7 @@ class NavControllerRouteTest {
619621 var navigator = SaveStateTestNavigator ()
620622 navController.navigatorProvider.addNavigator(navigator)
621623 navController.graph = nav_simple_route_graph
622- navController.navigate(" second_test" )
624+ navController.navigate(" second_test/arg2 " )
623625
624626 val savedState = navController.saveState()
625627 navController = NavController (context)
@@ -632,7 +634,7 @@ class NavControllerRouteTest {
632634
633635 // Explicitly setting a graph then restores the state
634636 navController.graph = nav_simple_route_graph
635- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
637+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
636638 assertThat(navigator.backStack.size).isEqualTo(2 )
637639 // Save state should be called on the navigator exactly once
638640 assertThat(navigator.saveStateCount).isEqualTo(1 )
@@ -679,7 +681,7 @@ class NavControllerRouteTest {
679681 var navigator = TestNavigator ()
680682 navController.navigatorProvider.addNavigator(navigator)
681683 navController.graph = nav_simple_route_graph
682- navController.navigate(" second_test" )
684+ navController.navigate(" second_test/arg2 " )
683685
684686 val savedState = navController.saveState()
685687 navController = NavController (context)
@@ -692,7 +694,7 @@ class NavControllerRouteTest {
692694
693695 // Explicitly setting a graph then restores the state
694696 navController.graph = nav_simple_route_graph
695- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
697+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
696698 assertThat(navigator.backStack.size).isEqualTo(2 )
697699 }
698700
@@ -926,8 +928,8 @@ class NavControllerRouteTest {
926928 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
927929 assertThat(navigator.backStack.size).isEqualTo(1 )
928930
929- navController.navigate(" second_test" )
930- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
931+ navController.navigate(" second_test/arg2 " )
932+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
931933 assertThat(navigator.backStack.size).isEqualTo(2 )
932934
933935 val popped = navController.popBackStack()
@@ -947,15 +949,15 @@ class NavControllerRouteTest {
947949 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
948950 assertThat(navigator.backStack.size).isEqualTo(1 )
949951
950- navController.navigate(" second_test" )
951- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
952+ navController.navigate(" second_test/arg2 " )
953+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
952954 assertThat(navigator.backStack.size).isEqualTo(2 )
953955
954956 val popped = navController.popBackStack(UNKNOWN_DESTINATION_ID , false )
955957 assertWithMessage(" Popping to an invalid destination should return false" )
956958 .that(popped)
957959 .isFalse()
958- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
960+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
959961 assertThat(navigator.backStack.size).isEqualTo(2 )
960962 }
961963
@@ -968,10 +970,10 @@ class NavControllerRouteTest {
968970 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
969971 assertThat(navigator.backStack.size).isEqualTo(1 )
970972
971- navController.navigate(" second_test" ) {
973+ navController.navigate(" second_test/arg2 " ) {
972974 popUpTo(" start_test" ) { inclusive = true }
973975 }
974- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
976+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
975977 assertThat(navigator.backStack.size).isEqualTo(1 )
976978 }
977979
@@ -984,10 +986,10 @@ class NavControllerRouteTest {
984986 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
985987 assertThat(navigator.backStack.size).isEqualTo(1 )
986988
987- navController.navigate(" second_test" ) {
989+ navController.navigate(" second_test/arg2 " ) {
988990 popUpTo(" nav_root" ) { inclusive = true }
989991 }
990- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
992+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
991993 assertThat(navigator.backStack.size).isEqualTo(1 )
992994 }
993995
@@ -1000,8 +1002,8 @@ class NavControllerRouteTest {
10001002 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
10011003 assertThat(navigator.backStack.size).isEqualTo(1 )
10021004
1003- navController.navigate(" second_test" )
1004- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
1005+ navController.navigate(" second_test/arg2 " )
1006+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
10051007 assertThat(navigator.backStack.size).isEqualTo(2 )
10061008
10071009 // This should function identically to popBackStack()
@@ -1021,8 +1023,8 @@ class NavControllerRouteTest {
10211023 assertThat(navController.currentDestination?.route).isEqualTo(" start_test" )
10221024 assertThat(navigator.backStack.size).isEqualTo(1 )
10231025
1024- navController.navigate(" second_test" )
1025- assertThat(navController.currentDestination?.route).isEqualTo(" second_test" )
1026+ navController.navigate(" second_test/arg2 " )
1027+ assertThat(navController.currentDestination?.route).isEqualTo(" second_test/{arg2} " )
10261028 assertThat(navigator.backStack.size).isEqualTo(2 )
10271029
10281030 navController.navigate(" start_test_with_default_arg" )
@@ -1033,7 +1035,7 @@ class NavControllerRouteTest {
10331035 val success = navController.navigateUp()
10341036 assertThat(success).isTrue()
10351037 val destination = navController.currentDestination
1036- assertThat(destination?.route).isEqualTo(" second_test" )
1038+ assertThat(destination?.route).isEqualTo(" second_test/{arg2} " )
10371039 assertThat(navigator.backStack.size).isEqualTo(2 )
10381040 assertThat(destination?.arguments?.get(" defaultArg" )?.defaultValue.toString())
10391041 .isEqualTo(" defaultValue" )
@@ -1046,7 +1048,8 @@ class NavControllerRouteTest {
10461048 navController.graph = nav_simple_route_graph
10471049
10481050 val taskStackBuilder = navController.createDeepLink()
1049- .setDestination(" second_test" )
1051+ .setDestination(" second_test/{arg2}" )
1052+ .setArguments(bundleOf(" arg2" to " value" ))
10501053 .createTaskStackBuilder()
10511054 assertThat(taskStackBuilder).isNotNull()
10521055 assertThat(taskStackBuilder.intentCount).isEqualTo(1 )
@@ -1058,10 +1061,12 @@ class NavControllerRouteTest {
10581061 val navController = createNavController()
10591062 navController.graph = nav_simple_route_graph
10601063
1061- val args = Bundle ()
1062- args.putString(" test" , " test" )
1064+ val args = bundleOf(
1065+ " test" to " test" ,
1066+ " arg2" to " value" ,
1067+ )
10631068 val taskStackBuilder = navController.createDeepLink()
1064- .setDestination(" second_test" )
1069+ .setDestination(" second_test/{arg2} " )
10651070 .setArguments(args)
10661071 .createTaskStackBuilder()
10671072
@@ -1081,7 +1086,8 @@ class NavControllerRouteTest {
10811086 navController.graph = nav_simple_route_graph
10821087
10831088 val taskStackBuilder = navController.createDeepLink()
1084- .setDestination(" second_test" )
1089+ .setDestination(" second_test/{arg2}" )
1090+ .setArguments(bundleOf(" arg2" to " value" ))
10851091 .createTaskStackBuilder()
10861092
10871093 val intent = taskStackBuilder.editIntentAt(0 )
@@ -1093,7 +1099,7 @@ class NavControllerRouteTest {
10931099 intent!! .writeToParcel(p, 0 )
10941100
10951101 val destination = navController.currentDestination
1096- assertThat(destination?.route).isEqualTo(" second_test" )
1102+ assertThat(destination?.route).isEqualTo(" second_test/{arg2} " )
10971103 assertThat(destination?.arguments?.get(" defaultArg" )?.defaultValue.toString())
10981104 .isEqualTo(" defaultValue" )
10991105 }
@@ -1109,7 +1115,8 @@ class NavControllerRouteTest {
11091115 }
11101116
11111117 val taskStackBuilder = navController.createDeepLink()
1112- .setDestination(" second_test" )
1118+ .setDestination(" second_test/{arg2}" )
1119+ .setArguments(bundleOf(" arg2" to " value" ))
11131120 .createTaskStackBuilder()
11141121
11151122 val intent = taskStackBuilder.editIntentAt(0 )
@@ -1119,7 +1126,7 @@ class NavControllerRouteTest {
11191126 .isTrue()
11201127 // Verify that we navigated down to the deep link
11211128 assertThat(collectedDestinationIds)
1122- .containsExactly(" start_test" , " start_test" , " second_test" )
1129+ .containsExactly(" start_test" , " start_test" , " second_test/{arg2} " )
11231130 .inOrder()
11241131 }
11251132
@@ -1311,7 +1318,7 @@ class NavControllerRouteTest {
13111318 navController.setOnBackPressedDispatcher(dispatcher)
13121319
13131320 navController.graph = nav_simple_route_graph
1314- navController.navigate(" second_test" )
1321+ navController.navigate(" second_test/arg2 " )
13151322 assertThat(navController.previousBackStackEntry?.destination?.route)
13161323 .isEqualTo(" start_test" )
13171324
0 commit comments