|
|
|
@ -15,14 +15,21 @@ import io.mockk.just
|
|
|
|
|
import io.mockk.mockk
|
|
|
|
|
import io.mockk.slot
|
|
|
|
|
import io.mockk.verify
|
|
|
|
|
import io.mockk.verifyOrder
|
|
|
|
|
import mozilla.components.browser.session.Session
|
|
|
|
|
import mozilla.components.browser.session.SessionManager
|
|
|
|
|
import mozilla.components.browser.state.action.BrowserAction
|
|
|
|
|
import mozilla.components.browser.state.action.ContentAction
|
|
|
|
|
import mozilla.components.browser.state.state.BrowserState
|
|
|
|
|
import mozilla.components.browser.state.state.createTab
|
|
|
|
|
import mozilla.components.browser.state.store.BrowserStore
|
|
|
|
|
import mozilla.components.concept.engine.EngineView
|
|
|
|
|
import mozilla.components.feature.search.SearchUseCases
|
|
|
|
|
import mozilla.components.feature.session.SessionUseCases
|
|
|
|
|
import mozilla.components.feature.top.sites.TopSitesUseCases
|
|
|
|
|
import mozilla.components.support.test.libstate.ext.waitUntilIdle
|
|
|
|
|
import mozilla.components.support.test.middleware.CaptureActionsMiddleware
|
|
|
|
|
import mozilla.components.ui.tabcounter.TabCounterMenu
|
|
|
|
|
import org.junit.After
|
|
|
|
|
import org.junit.Assert.assertEquals
|
|
|
|
|
import org.junit.Before
|
|
|
|
|
import org.junit.Test
|
|
|
|
@ -86,6 +93,9 @@ class DefaultBrowserToolbarControllerTest {
|
|
|
|
|
@RelaxedMockK
|
|
|
|
|
private lateinit var homeViewModel: HomeScreenViewModel
|
|
|
|
|
|
|
|
|
|
private lateinit var store: BrowserStore
|
|
|
|
|
private val captureMiddleware = CaptureActionsMiddleware<BrowserState, BrowserAction>()
|
|
|
|
|
|
|
|
|
|
@Before
|
|
|
|
|
fun setUp() {
|
|
|
|
|
MockKAnnotations.init(this)
|
|
|
|
@ -99,10 +109,24 @@ class DefaultBrowserToolbarControllerTest {
|
|
|
|
|
}
|
|
|
|
|
every { currentSession.id } returns "1"
|
|
|
|
|
every { currentSession.private } returns false
|
|
|
|
|
every { currentSession.searchTerms = any() } just Runs
|
|
|
|
|
|
|
|
|
|
val onComplete = slot<() -> Unit>()
|
|
|
|
|
every { browserAnimator.captureEngineViewAndDrawStatically(capture(onComplete)) } answers { onComplete.captured.invoke() }
|
|
|
|
|
|
|
|
|
|
store = BrowserStore(
|
|
|
|
|
initialState = BrowserState(
|
|
|
|
|
tabs = listOf(
|
|
|
|
|
createTab("https://www.mozilla.org", id = "1")
|
|
|
|
|
),
|
|
|
|
|
selectedTabId = "1"
|
|
|
|
|
),
|
|
|
|
|
middleware = listOf(captureMiddleware)
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@After
|
|
|
|
|
fun tearDown() {
|
|
|
|
|
captureMiddleware.reset()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@ -139,9 +163,16 @@ class DefaultBrowserToolbarControllerTest {
|
|
|
|
|
|
|
|
|
|
val controller = createController()
|
|
|
|
|
controller.handleToolbarPasteAndGo(pastedText)
|
|
|
|
|
verifyOrder {
|
|
|
|
|
currentSession.searchTerms = "Mozilla"
|
|
|
|
|
searchUseCases.defaultSearch.invoke(pastedText, currentSession)
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
|
searchUseCases.defaultSearch.invoke(pastedText, "1")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
store.waitUntilIdle()
|
|
|
|
|
|
|
|
|
|
captureMiddleware.assertFirstAction(ContentAction.UpdateSearchTermsAction::class) { action ->
|
|
|
|
|
assertEquals("1", action.sessionId)
|
|
|
|
|
assertEquals(pastedText, action.searchTerms)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -151,10 +182,17 @@ class DefaultBrowserToolbarControllerTest {
|
|
|
|
|
|
|
|
|
|
val controller = createController()
|
|
|
|
|
controller.handleToolbarPasteAndGo(pastedText)
|
|
|
|
|
verifyOrder {
|
|
|
|
|
currentSession.searchTerms = ""
|
|
|
|
|
|
|
|
|
|
verify {
|
|
|
|
|
sessionUseCases.loadUrl(pastedText)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
store.waitUntilIdle()
|
|
|
|
|
|
|
|
|
|
captureMiddleware.assertFirstAction(ContentAction.UpdateSearchTermsAction::class) { action ->
|
|
|
|
|
assertEquals("1", action.sessionId)
|
|
|
|
|
assertEquals("", action.searchTerms)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@ -288,6 +326,7 @@ class DefaultBrowserToolbarControllerTest {
|
|
|
|
|
activity: HomeActivity = this.activity,
|
|
|
|
|
customTabSession: Session? = null
|
|
|
|
|
) = DefaultBrowserToolbarController(
|
|
|
|
|
store = store,
|
|
|
|
|
activity = activity,
|
|
|
|
|
navController = navController,
|
|
|
|
|
metrics = metrics,
|
|
|
|
|