1
0
Fork 0

Fix tests in toolbar controller

master
Tiger Oakes 2020-06-11 14:14:17 -07:00 committed by Emily Kager
parent fed3dfc64b
commit 651b2831fe
2 changed files with 36 additions and 16 deletions

View File

@ -103,12 +103,12 @@ class DefaultBrowserToolbarController(
override fun handleToolbarPasteAndGo(text: String) {
if (text.isUrl()) {
activity.components.core.sessionManager.selectedSession?.searchTerms = ""
sessionManager.selectedSession?.searchTerms = ""
activity.components.useCases.sessionUseCases.loadUrl.invoke(text)
return
}
activity.components.core.sessionManager.selectedSession?.searchTerms = text
sessionManager.selectedSession?.searchTerms = text
activity.components.useCases.searchUseCases.defaultSearch.invoke(text)
}
@ -139,20 +139,17 @@ class DefaultBrowserToolbarController(
}
override fun handleTabCounterItemInteraction(item: TabCounterMenuItem) {
val tabUseCases = activity.components.useCases.tabsUseCases
when (item) {
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
if (activity.components.core.sessionManager.sessionsOfType(it.private)
.count() == 1
) {
if (sessionManager.sessionsOfType(it.private).count() == 1) {
// The tab tray always returns to normal mode so do that here too
(activity as HomeActivity).browsingModeManager.mode = BrowsingMode.Normal
navController.navigate(BrowserFragmentDirections.actionGlobalHome(it.id))
} else {
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
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
activity.startActivity(openInFenixIntent)

View File

@ -75,6 +75,7 @@ class DefaultBrowserToolbarControllerTest {
private var analytics: Analytics = mockk(relaxed = true)
private var navController: NavController = 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 currentSession: Session = mockk(relaxed = true)
private val openInFenixIntent: Intent = mockk(relaxed = true)
@ -115,7 +116,7 @@ class DefaultBrowserToolbarControllerTest {
topSiteStorage = topSiteStorage,
bookmarkTapped = mockk(),
readerModeController = readerModeController,
sessionManager = mockk(),
sessionManager = sessionManager,
sharedViewModel = mockk(),
onTabCounterClicked = { },
onCloseTab = {}
@ -135,8 +136,9 @@ class DefaultBrowserToolbarControllerTest {
every { analytics.metrics } returns metrics
every { activity.components.useCases.sessionUseCases } returns sessionUseCases
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 { sessionManager.selectedSession } returns currentSession
val onComplete = slot<() -> Unit>()
every { browserAnimator.captureEngineViewAndDrawStatically(capture(onComplete)) } answers { onComplete.captured.invoke() }
@ -375,7 +377,7 @@ class DefaultBrowserToolbarControllerTest {
topSiteStorage = topSiteStorage,
bookmarkTapped = mockk(),
readerModeController = mockk(),
sessionManager = mockk(),
sessionManager = sessionManager,
sharedViewModel = mockk(),
onTabCounterClicked = { },
onCloseTab = { }
@ -501,16 +503,14 @@ class DefaultBrowserToolbarControllerTest {
topSiteStorage = topSiteStorage,
bookmarkTapped = mockk(),
readerModeController = mockk(),
sessionManager = mockk(),
sessionManager = sessionManager,
sharedViewModel = mockk(),
onTabCounterClicked = { },
onCloseTab = { }
)
val sessionManager: SessionManager = mockk(relaxed = true)
val item = ToolbarMenu.Item.OpenInFenix
every { activity.components.core.sessionManager } returns sessionManager
every { currentSession.customTabConfig } returns mockk()
every { activity.startActivity(any()) } just Runs
@ -542,7 +542,7 @@ class DefaultBrowserToolbarControllerTest {
topSiteStorage = topSiteStorage,
bookmarkTapped = mockk(),
readerModeController = mockk(),
sessionManager = mockk(),
sessionManager = sessionManager,
sharedViewModel = mockk(),
onTabCounterClicked = { },
onCloseTab = { }
@ -566,12 +566,35 @@ class DefaultBrowserToolbarControllerTest {
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
fun handleToolbarCloseTabPress() {
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
val removeTabUseCase: TabsUseCases.RemoveTabUseCase = mockk(relaxed = true)
val item = TabCounterMenuItem.CloseTab
every { sessionManager.sessions } returns emptyList()
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
every { tabsUseCases.removeTab } returns removeTabUseCase