forked from hush/SilentDragonAndroid
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
package cash.z.ecc.android.test
|
|
|
|
import androidx.annotation.IdRes
|
|
import androidx.fragment.app.Fragment
|
|
import androidx.fragment.app.testing.FragmentScenario
|
|
import androidx.navigation.Navigation
|
|
import androidx.navigation.testing.TestNavHostController
|
|
import androidx.test.core.app.ApplicationProvider
|
|
|
|
data class FragmentNavigationScenario<T : Fragment>(
|
|
val fragmentScenario: FragmentScenario<T>,
|
|
val navigationController: TestNavHostController
|
|
) {
|
|
|
|
companion object {
|
|
fun <T : Fragment> new(
|
|
fragmentScenario: FragmentScenario<T>,
|
|
@IdRes currentDestination: Int
|
|
): FragmentNavigationScenario<T> {
|
|
val navController = TestNavHostController(ApplicationProvider.getApplicationContext())
|
|
|
|
fragmentScenario.onFragment {
|
|
navController.setGraph(cash.z.ecc.android.R.navigation.mobile_navigation)
|
|
navController.setCurrentDestination(currentDestination)
|
|
|
|
Navigation.setViewNavController(it.requireView(), navController)
|
|
}
|
|
|
|
return FragmentNavigationScenario(fragmentScenario, navController)
|
|
}
|
|
}
|
|
}
|
|
|