Skip to content

Commit 3d87ba0

Browse files
committed
Enable testNavHostAnimations with custom enter/exit transitions
1 parent a340368 commit 3d87ba0

1 file changed

Lines changed: 33 additions & 2 deletions

File tree

navigation/navigation-compose/src/commonTest/kotlin/androidx/navigation/compose/NavHostTest.kt

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,16 @@
1616

1717
package androidx.navigation.compose
1818

19+
import androidx.compose.animation.AnimatedContentTransitionScope
20+
import androidx.compose.animation.EnterTransition
21+
import androidx.compose.animation.ExitTransition
22+
import androidx.compose.animation.SizeTransform
1923
import androidx.compose.animation.core.AnimationConstants.DefaultDurationMillis
24+
import androidx.compose.animation.core.spring
25+
import androidx.compose.animation.core.tween
26+
import androidx.compose.animation.fadeIn
27+
import androidx.compose.animation.fadeOut
28+
import androidx.compose.animation.scaleOut
2029
import androidx.compose.foundation.layout.Column
2130
import androidx.compose.foundation.layout.fillMaxSize
2231
import androidx.compose.foundation.text.BasicText
@@ -54,6 +63,7 @@ import androidx.lifecycle.testing.TestLifecycleOwner
5463
import androidx.lifecycle.viewmodel.CreationExtras
5564
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
5665
import androidx.lifecycle.viewmodel.compose.viewModel
66+
import androidx.navigation.NavBackStackEntry
5767
import androidx.navigation.NavGraph
5868
import androidx.navigation.NavGraph.Companion.findStartDestination
5969
import androidx.navigation.NavHostController
@@ -843,15 +853,21 @@ class NavHostTest {
843853
}
844854

845855
@Test
846-
@Ignore //animations are different between platforms
847856
fun testNavHostAnimations() = runComposeUiTestOnUiThread {
848857
lateinit var navController: NavHostController
849858

850859
mainClock.autoAdvance = false
851860

852861
setContent {
853862
navController = rememberNavController()
854-
NavHost(navController, startDestination = first) {
863+
NavHost(
864+
navController = navController,
865+
enterTransition = TestNavTransitions.enterTransition,
866+
exitTransition = TestNavTransitions.exitTransition,
867+
popEnterTransition = TestNavTransitions.enterTransition,
868+
popExitTransition = TestNavTransitions.exitTransition,
869+
startDestination = first
870+
) {
855871
composable(first) { BasicText(first) }
856872
composable(second) { BasicText(second) }
857873
}
@@ -1304,3 +1320,18 @@ private class TestViewModelStoreOwnerWithDefaults(
13041320
override val defaultViewModelProviderFactory: ViewModelProvider.Factory = TestViewModelFactory(),
13051321
override val defaultViewModelCreationExtras: CreationExtras = CreationExtras.Empty,
13061322
) : ViewModelStoreOwner, HasDefaultViewModelProviderFactory
1323+
1324+
private object TestNavTransitions {
1325+
1326+
val enterTransition:
1327+
AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition =
1328+
{
1329+
fadeIn(animationSpec = tween(700))
1330+
}
1331+
1332+
val exitTransition:
1333+
AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition =
1334+
{
1335+
fadeOut(animationSpec = tween(700))
1336+
}
1337+
}

0 commit comments

Comments
 (0)