@ -13,6 +13,7 @@ import io.mockk.spyk
import io.mockk.verify
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.runBlockingTest
import mozilla.appservices.places.BookmarkRoot
import mozilla.components.concept.storage.BookmarkNode
import mozilla.components.concept.storage.BookmarkNodeType
@ -24,6 +25,9 @@ import org.junit.Test
import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.home.HomeFragmentDirections
import org.mozilla.fenix.home.recentbookmarks.controller.DefaultRecentBookmarksController
@ -37,12 +41,18 @@ class DefaultRecentBookmarksControllerTest {
private val activity : HomeActivity = mockk ( relaxed = true )
private val navController : NavController = mockk ( relaxUnitFun = true )
private val metrics : MetricController = mockk ( relaxed = true )
private lateinit var controller : DefaultRecentBookmarksController
@Before
fun setup ( ) {
every { activity . openToBrowserAndLoad ( any ( ) , any ( ) , any ( ) ) } just Runs
every { activity . components . core . metrics } returns metrics
every { navController . currentDestination } returns mockk {
every { id } returns R . id . homeFragment
}
every { navController . navigateUp ( ) } returns true
controller = spyk (
@ -85,13 +95,14 @@ class DefaultRecentBookmarksControllerTest {
from = BrowserDirection . FromHome
)
}
verify { metrics . track ( Event . BookmarkClicked ) }
verify ( exactly = 0 ) {
navController . navigateUp ( )
}
}
@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` ( ) = runBlockingTest {
every { navController . currentDestination } returns mockk {
every { id } returns R . id . homeFragment
}
@ -100,8 +111,8 @@ class DefaultRecentBookmarksControllerTest {
val directions = HomeFragmentDirections . actionGlobalBookmarkFragment ( BookmarkRoot . Mobile . id )
verify {
controller . dismissSearchDialogIfDisplayed ( )
navController . navigate ( directions )
metrics . track ( Event . ShowAllBookmarks )
}
verify ( exactly = 0 ) {
navController . navigateUp ( )
@ -117,10 +128,12 @@ class DefaultRecentBookmarksControllerTest {
controller . handleShowAllBookmarksClicked ( )
val directions = HomeFragmentDirections . actionGlobalBookmarkFragment ( BookmarkRoot . Mobile . id )
verify {
controller . dismissSearchDialogIfDisplayed ( )
navController . navigateUp ( )
navController . navigate ( directions )
metrics . track ( Event . ShowAllBookmarks )
}
}
}