For #25980: Use new extension function to get fragment's NavController.

pull/543/head
mcarare 2 years ago committed by mergify[bot]
parent a4696c8fba
commit 4e481f4f3e

@ -11,7 +11,6 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.navigation.NavDirections
import androidx.navigation.NavOptions
import androidx.navigation.fragment.NavHostFragment.findNavController
import androidx.navigation.fragment.findNavController
import mozilla.components.concept.base.crash.Breadcrumb
import org.mozilla.fenix.NavHostActivity
@ -25,7 +24,7 @@ val Fragment.requireComponents: Components
get() = requireContext().components
fun Fragment.nav(@IdRes id: Int?, directions: NavDirections, options: NavOptions? = null) {
findNavController(this).nav(id, directions, options)
findNavController().nav(id, directions, options)
}
fun Fragment.getPreferenceKey(@StringRes resourceId: Int): String = getString(resourceId)

@ -10,7 +10,7 @@ import androidx.navigation.NavDestination
import androidx.navigation.NavDirections
import androidx.navigation.NavOptions
import androidx.navigation.Navigator.Extras
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import io.mockk.Runs
import io.mockk.confirmVerified
import io.mockk.every
@ -38,31 +38,31 @@ class FragmentTest {
@Before
fun setup() {
mockkStatic(NavHostFragment::class)
every { (NavHostFragment.findNavController(mockFragment)) } returns navController
every { (NavHostFragment.findNavController(mockFragment).currentDestination) } returns mockDestination
mockkStatic("androidx.navigation.fragment.FragmentKt")
every { (mockFragment.findNavController()) } returns navController
every { (mockFragment.findNavController().currentDestination) } returns mockDestination
every { (mockDestination.id) } returns mockId
every { (navController.currentDestination) } returns mockDestination
every { (NavHostFragment.findNavController(mockFragment).currentDestination?.id) } answers { (mockDestination.id) }
every { (mockFragment.findNavController().currentDestination?.id) } answers { (mockDestination.id) }
}
@Test
fun `Test nav fun with ID and directions`() {
every { (NavHostFragment.findNavController(mockFragment).navigate(navDirections, null)) } just Runs
every { (mockFragment.findNavController().navigate(navDirections, null)) } just Runs
mockFragment.nav(mockId, navDirections)
verify { (NavHostFragment.findNavController(mockFragment).currentDestination) }
verify { (NavHostFragment.findNavController(mockFragment).navigate(navDirections, null)) }
verify { (mockFragment.findNavController().currentDestination) }
verify { (mockFragment.findNavController().navigate(navDirections, null)) }
confirmVerified(mockFragment)
}
@Test
fun `Test nav fun with ID, directions, and options`() {
every { (NavHostFragment.findNavController(mockFragment).navigate(navDirections, mockOptions)) } just Runs
every { (mockFragment.findNavController().navigate(navDirections, mockOptions)) } just Runs
mockFragment.nav(mockId, navDirections, mockOptions)
verify { (NavHostFragment.findNavController(mockFragment).currentDestination) }
verify { (NavHostFragment.findNavController(mockFragment).navigate(navDirections, mockOptions)) }
verify { (mockFragment.findNavController().currentDestination) }
verify { (mockFragment.findNavController().navigate(navDirections, mockOptions)) }
confirmVerified(mockFragment)
}
}

Loading…
Cancel
Save