@ -5,7 +5,6 @@
package org.mozilla.fenix.home.recentbookmarks
package org.mozilla.fenix.home.recentbookmarks
import androidx.navigation.NavController
import androidx.navigation.NavController
import androidx.navigation.NavOptions
import io.mockk.Runs
import io.mockk.Runs
import io.mockk.every
import io.mockk.every
import io.mockk.just
import io.mockk.just
@ -38,14 +37,13 @@ class DefaultRecentBookmarksControllerTest {
private val activity : HomeActivity = mockk ( relaxed = true )
private val activity : HomeActivity = mockk ( relaxed = true )
private val navController : NavController = mockk ( relaxUnitFun = true )
private val navController : NavController = mockk ( relaxUnitFun = true )
private lateinit var controller : DefaultRecentBookmarksController
private lateinit var controller : DefaultRecentBookmarksController
@Before
@Before
fun setup ( ) {
fun setup ( ) {
every { activity . openToBrowserAndLoad ( any ( ) , any ( ) , any ( ) ) } just Runs
every { activity . openToBrowserAndLoad ( any ( ) , any ( ) , any ( ) ) } just Runs
every { navController . currentDestination } returns mockk {
every { navController . navigateUp ( ) } returns true
every { id } returns R . id . homeFragment
}
controller = spyk (
controller = spyk (
DefaultRecentBookmarksController (
DefaultRecentBookmarksController (
@ -62,6 +60,10 @@ class DefaultRecentBookmarksControllerTest {
@Test
@Test
fun `WHEN a recently saved bookmark is clicked THEN the selected bookmark is opened` ( ) {
fun `WHEN a recently saved bookmark is clicked THEN the selected bookmark is opened` ( ) {
every { navController . currentDestination } returns mockk {
every { id } returns R . id . homeFragment
}
val bookmark = BookmarkNode (
val bookmark = BookmarkNode (
type = BookmarkNodeType . ITEM ,
type = BookmarkNodeType . ITEM ,
guid = " guid# ${Math.random() * 1000} " ,
guid = " guid# ${Math.random() * 1000} " ,
@ -76,19 +78,49 @@ class DefaultRecentBookmarksControllerTest {
controller . handleBookmarkClicked ( bookmark )
controller . handleBookmarkClicked ( bookmark )
verify {
verify {
controller . dismissSearchDialogIfDisplayed ( )
activity . openToBrowserAndLoad (
activity . openToBrowserAndLoad (
searchTermOrURL = bookmark . url !! ,
searchTermOrURL = bookmark . url !! ,
newTab = true ,
newTab = true ,
from = BrowserDirection . FromHome
from = BrowserDirection . FromHome
)
)
}
}
verify ( exactly = 0 ) {
navController . navigateUp ( )
}
}
}
@Test
@Test
fun `WHEN show all recently saved bookmark is clicked THEN the bookmarks root is opened` ( ) {
fun `WHEN show all recently saved bookmark is clicked THEN the bookmarks root is opened` ( ) {
every { navController . currentDestination } returns mockk {
every { id } returns R . id . homeFragment
}
controller . handleShowAllBookmarksClicked ( )
controller . handleShowAllBookmarksClicked ( )
val directions = HomeFragmentDirections . actionGlobalBookmarkFragment ( BookmarkRoot . Mobile . id )
val directions = HomeFragmentDirections . actionGlobalBookmarkFragment ( BookmarkRoot . Mobile . id )
verify { navController . navigate ( directions , any < NavOptions > ( ) ) }
verify {
controller . dismissSearchDialogIfDisplayed ( )
navController . navigate ( directions )
}
verify ( exactly = 0 ) {
navController . navigateUp ( )
}
}
@Test
fun `WHEN show all is clicked from behind search dialog THEN open bookmarks root` ( ) {
every { navController . currentDestination } returns mockk {
every { id } returns R . id . searchDialogFragment
}
controller . handleShowAllBookmarksClicked ( )
val directions = HomeFragmentDirections . actionGlobalBookmarkFragment ( BookmarkRoot . Mobile . id )
verify {
controller . dismissSearchDialogIfDisplayed ( )
navController . navigateUp ( )
navController . navigate ( directions )
}
}
}
}
}