Fix tests in toolbar controller
This commit is contained in:
parent
fed3dfc64b
commit
651b2831fe
|
@ -103,12 +103,12 @@ class DefaultBrowserToolbarController(
|
||||||
|
|
||||||
override fun handleToolbarPasteAndGo(text: String) {
|
override fun handleToolbarPasteAndGo(text: String) {
|
||||||
if (text.isUrl()) {
|
if (text.isUrl()) {
|
||||||
activity.components.core.sessionManager.selectedSession?.searchTerms = ""
|
sessionManager.selectedSession?.searchTerms = ""
|
||||||
activity.components.useCases.sessionUseCases.loadUrl.invoke(text)
|
activity.components.useCases.sessionUseCases.loadUrl.invoke(text)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
activity.components.core.sessionManager.selectedSession?.searchTerms = text
|
sessionManager.selectedSession?.searchTerms = text
|
||||||
activity.components.useCases.searchUseCases.defaultSearch.invoke(text)
|
activity.components.useCases.searchUseCases.defaultSearch.invoke(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,20 +139,17 @@ class DefaultBrowserToolbarController(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun handleTabCounterItemInteraction(item: TabCounterMenuItem) {
|
override fun handleTabCounterItemInteraction(item: TabCounterMenuItem) {
|
||||||
val tabUseCases = activity.components.useCases.tabsUseCases
|
|
||||||
when (item) {
|
when (item) {
|
||||||
is TabCounterMenuItem.CloseTab -> {
|
is TabCounterMenuItem.CloseTab -> {
|
||||||
activity.components.core.sessionManager.selectedSession?.let {
|
sessionManager.selectedSession?.let {
|
||||||
// When closing the last tab we must show the undo snackbar in the home fragment
|
// When closing the last tab we must show the undo snackbar in the home fragment
|
||||||
if (activity.components.core.sessionManager.sessionsOfType(it.private)
|
if (sessionManager.sessionsOfType(it.private).count() == 1) {
|
||||||
.count() == 1
|
|
||||||
) {
|
|
||||||
// The tab tray always returns to normal mode so do that here too
|
// The tab tray always returns to normal mode so do that here too
|
||||||
(activity as HomeActivity).browsingModeManager.mode = BrowsingMode.Normal
|
(activity as HomeActivity).browsingModeManager.mode = BrowsingMode.Normal
|
||||||
navController.navigate(BrowserFragmentDirections.actionGlobalHome(it.id))
|
navController.navigate(BrowserFragmentDirections.actionGlobalHome(it.id))
|
||||||
} else {
|
} else {
|
||||||
onCloseTab.invoke(it)
|
onCloseTab.invoke(it)
|
||||||
tabUseCases.removeTab.invoke(it)
|
activity.components.useCases.tabsUseCases.removeTab.invoke(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -285,7 +282,7 @@ class DefaultBrowserToolbarController(
|
||||||
|
|
||||||
// Strip the CustomTabConfig to turn this Session into a regular tab and then select it
|
// Strip the CustomTabConfig to turn this Session into a regular tab and then select it
|
||||||
customTabSession!!.customTabConfig = null
|
customTabSession!!.customTabConfig = null
|
||||||
activity.components.core.sessionManager.select(customTabSession)
|
sessionManager.select(customTabSession)
|
||||||
|
|
||||||
// Switch to the actual browser which should now display our new selected session
|
// Switch to the actual browser which should now display our new selected session
|
||||||
activity.startActivity(openInFenixIntent)
|
activity.startActivity(openInFenixIntent)
|
||||||
|
|
|
@ -75,6 +75,7 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
private var analytics: Analytics = mockk(relaxed = true)
|
private var analytics: Analytics = mockk(relaxed = true)
|
||||||
private var navController: NavController = mockk(relaxed = true)
|
private var navController: NavController = mockk(relaxed = true)
|
||||||
private var findInPageLauncher: () -> Unit = mockk(relaxed = true)
|
private var findInPageLauncher: () -> Unit = mockk(relaxed = true)
|
||||||
|
private val sessionManager: SessionManager = mockk(relaxed = true)
|
||||||
private val engineView: EngineView = mockk(relaxed = true)
|
private val engineView: EngineView = mockk(relaxed = true)
|
||||||
private val currentSession: Session = mockk(relaxed = true)
|
private val currentSession: Session = mockk(relaxed = true)
|
||||||
private val openInFenixIntent: Intent = mockk(relaxed = true)
|
private val openInFenixIntent: Intent = mockk(relaxed = true)
|
||||||
|
@ -115,7 +116,7 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
topSiteStorage = topSiteStorage,
|
topSiteStorage = topSiteStorage,
|
||||||
bookmarkTapped = mockk(),
|
bookmarkTapped = mockk(),
|
||||||
readerModeController = readerModeController,
|
readerModeController = readerModeController,
|
||||||
sessionManager = mockk(),
|
sessionManager = sessionManager,
|
||||||
sharedViewModel = mockk(),
|
sharedViewModel = mockk(),
|
||||||
onTabCounterClicked = { },
|
onTabCounterClicked = { },
|
||||||
onCloseTab = {}
|
onCloseTab = {}
|
||||||
|
@ -135,8 +136,9 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
every { analytics.metrics } returns metrics
|
every { analytics.metrics } returns metrics
|
||||||
every { activity.components.useCases.sessionUseCases } returns sessionUseCases
|
every { activity.components.useCases.sessionUseCases } returns sessionUseCases
|
||||||
every { activity.components.useCases.searchUseCases } returns searchUseCases
|
every { activity.components.useCases.searchUseCases } returns searchUseCases
|
||||||
every { activity.components.core.sessionManager.selectedSession } returns currentSession
|
every { activity.components.core.sessionManager } returns sessionManager
|
||||||
every { activity.components.core.store } returns store
|
every { activity.components.core.store } returns store
|
||||||
|
every { sessionManager.selectedSession } returns currentSession
|
||||||
|
|
||||||
val onComplete = slot<() -> Unit>()
|
val onComplete = slot<() -> Unit>()
|
||||||
every { browserAnimator.captureEngineViewAndDrawStatically(capture(onComplete)) } answers { onComplete.captured.invoke() }
|
every { browserAnimator.captureEngineViewAndDrawStatically(capture(onComplete)) } answers { onComplete.captured.invoke() }
|
||||||
|
@ -375,7 +377,7 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
topSiteStorage = topSiteStorage,
|
topSiteStorage = topSiteStorage,
|
||||||
bookmarkTapped = mockk(),
|
bookmarkTapped = mockk(),
|
||||||
readerModeController = mockk(),
|
readerModeController = mockk(),
|
||||||
sessionManager = mockk(),
|
sessionManager = sessionManager,
|
||||||
sharedViewModel = mockk(),
|
sharedViewModel = mockk(),
|
||||||
onTabCounterClicked = { },
|
onTabCounterClicked = { },
|
||||||
onCloseTab = { }
|
onCloseTab = { }
|
||||||
|
@ -501,16 +503,14 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
topSiteStorage = topSiteStorage,
|
topSiteStorage = topSiteStorage,
|
||||||
bookmarkTapped = mockk(),
|
bookmarkTapped = mockk(),
|
||||||
readerModeController = mockk(),
|
readerModeController = mockk(),
|
||||||
sessionManager = mockk(),
|
sessionManager = sessionManager,
|
||||||
sharedViewModel = mockk(),
|
sharedViewModel = mockk(),
|
||||||
onTabCounterClicked = { },
|
onTabCounterClicked = { },
|
||||||
onCloseTab = { }
|
onCloseTab = { }
|
||||||
)
|
)
|
||||||
|
|
||||||
val sessionManager: SessionManager = mockk(relaxed = true)
|
|
||||||
val item = ToolbarMenu.Item.OpenInFenix
|
val item = ToolbarMenu.Item.OpenInFenix
|
||||||
|
|
||||||
every { activity.components.core.sessionManager } returns sessionManager
|
|
||||||
every { currentSession.customTabConfig } returns mockk()
|
every { currentSession.customTabConfig } returns mockk()
|
||||||
every { activity.startActivity(any()) } just Runs
|
every { activity.startActivity(any()) } just Runs
|
||||||
|
|
||||||
|
@ -542,7 +542,7 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
topSiteStorage = topSiteStorage,
|
topSiteStorage = topSiteStorage,
|
||||||
bookmarkTapped = mockk(),
|
bookmarkTapped = mockk(),
|
||||||
readerModeController = mockk(),
|
readerModeController = mockk(),
|
||||||
sessionManager = mockk(),
|
sessionManager = sessionManager,
|
||||||
sharedViewModel = mockk(),
|
sharedViewModel = mockk(),
|
||||||
onTabCounterClicked = { },
|
onTabCounterClicked = { },
|
||||||
onCloseTab = { }
|
onCloseTab = { }
|
||||||
|
@ -566,12 +566,35 @@ class DefaultBrowserToolbarControllerTest {
|
||||||
verify { readerModeController.hideReaderView() }
|
verify { readerModeController.hideReaderView() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun handleToolbarCloseTabPressWithLastPrivateSession() {
|
||||||
|
every { currentSession.id } returns "1"
|
||||||
|
val browsingModeManager = object : BrowsingModeManager {
|
||||||
|
override var mode = BrowsingMode.Private
|
||||||
|
}
|
||||||
|
val item = TabCounterMenuItem.CloseTab
|
||||||
|
val sessions = listOf(
|
||||||
|
mockk<Session> {
|
||||||
|
every { private } returns true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
every { currentSession.private } returns true
|
||||||
|
every { sessionManager.sessions } returns sessions
|
||||||
|
every { activity.browsingModeManager } returns browsingModeManager
|
||||||
|
|
||||||
|
controller.handleTabCounterItemInteraction(item)
|
||||||
|
verify { navController.navigate(BrowserFragmentDirections.actionGlobalHome("1")) }
|
||||||
|
assertEquals(BrowsingMode.Normal, browsingModeManager.mode)
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun handleToolbarCloseTabPress() {
|
fun handleToolbarCloseTabPress() {
|
||||||
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
|
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
|
||||||
val removeTabUseCase: TabsUseCases.RemoveTabUseCase = mockk(relaxed = true)
|
val removeTabUseCase: TabsUseCases.RemoveTabUseCase = mockk(relaxed = true)
|
||||||
val item = TabCounterMenuItem.CloseTab
|
val item = TabCounterMenuItem.CloseTab
|
||||||
|
|
||||||
|
every { sessionManager.sessions } returns emptyList()
|
||||||
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
|
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
|
||||||
every { tabsUseCases.removeTab } returns removeTabUseCase
|
every { tabsUseCases.removeTab } returns removeTabUseCase
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user