For #4155: Adds paste & go for search terms
parent
e961a9d63d
commit
fd1fcd8b89
|
@ -16,6 +16,7 @@ import kotlinx.coroutines.ObsoleteCoroutinesApi
|
|||
import kotlinx.coroutines.launch
|
||||
import mozilla.components.browser.session.Session
|
||||
import mozilla.components.concept.engine.EngineView
|
||||
import mozilla.components.support.ktx.kotlin.isUrl
|
||||
import org.mozilla.fenix.NavGraphDirections
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.browser.BrowserFragment
|
||||
|
@ -69,8 +70,14 @@ class DefaultBrowserToolbarController(
|
|||
}
|
||||
|
||||
override fun handleToolbarPasteAndGo(text: String) {
|
||||
activity.components.core.sessionManager.selectedSession?.searchTerms = ""
|
||||
activity.components.useCases.sessionUseCases.loadUrl(text)
|
||||
if (text.isUrl()) {
|
||||
activity.components.core.sessionManager.selectedSession?.searchTerms = ""
|
||||
activity.components.useCases.sessionUseCases.loadUrl.invoke(text)
|
||||
return
|
||||
}
|
||||
|
||||
activity.components.core.sessionManager.selectedSession?.searchTerms = text
|
||||
activity.components.useCases.searchUseCases.defaultSearch.invoke(text)
|
||||
}
|
||||
|
||||
override fun handleToolbarClick() {
|
||||
|
|
|
@ -64,8 +64,8 @@ class BrowserToolbarView(
|
|||
|
||||
popupWindow.elevation = view.context.dimen(R.dimen.mozac_browser_menu_elevation).toFloat()
|
||||
|
||||
customView.paste.isVisible = !clipboard.url.isNullOrEmpty() && !isCustomTabSession
|
||||
customView.paste_and_go.isVisible = !clipboard.url.isNullOrEmpty() && !isCustomTabSession
|
||||
customView.paste.isVisible = !clipboard.text.isNullOrEmpty() && !isCustomTabSession
|
||||
customView.paste_and_go.isVisible = !clipboard.text.isNullOrEmpty() && !isCustomTabSession
|
||||
|
||||
customView.copy.setOnClickListener {
|
||||
popupWindow.dismiss()
|
||||
|
|
|
@ -24,6 +24,7 @@ import kotlinx.coroutines.test.setMain
|
|||
import mozilla.components.browser.session.Session
|
||||
import mozilla.components.browser.session.SessionManager
|
||||
import mozilla.components.concept.engine.EngineView
|
||||
import mozilla.components.feature.search.SearchUseCases
|
||||
import mozilla.components.feature.session.SessionUseCases
|
||||
import mozilla.components.feature.tabs.TabsUseCases
|
||||
import org.junit.After
|
||||
|
@ -65,9 +66,9 @@ class DefaultBrowserToolbarControllerTest {
|
|||
private val getSupportUrl: () -> String = { "https://supportUrl.org" }
|
||||
private val openInFenixIntent: Intent = mockk(relaxed = true)
|
||||
private val currentSessionAsTab: Tab = mockk(relaxed = true)
|
||||
private val bottomSheetBehavior: QuickActionSheetBehavior<NestedScrollView> =
|
||||
mockk(relaxed = true)
|
||||
private val bottomSheetBehavior: QuickActionSheetBehavior<NestedScrollView> = mockk(relaxed = true)
|
||||
private val metrics: MetricController = mockk(relaxed = true)
|
||||
private val searchUseCases: SearchUseCases = mockk(relaxed = true)
|
||||
private val sessionUseCases: SessionUseCases = mockk(relaxed = true)
|
||||
private val scope: LifecycleCoroutineScope = mockk(relaxed = true)
|
||||
|
||||
|
@ -104,6 +105,7 @@ class DefaultBrowserToolbarControllerTest {
|
|||
every { activity.components.analytics } returns analytics
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -126,9 +128,20 @@ class DefaultBrowserToolbarControllerTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
fun handleBrowserToolbarPasteAndGo() {
|
||||
fun handleBrowserToolbarPasteAndGoSearch() {
|
||||
val pastedText = "Mozilla"
|
||||
|
||||
controller.handleToolbarPasteAndGo(pastedText)
|
||||
verifyOrder {
|
||||
currentSession.searchTerms = "Mozilla"
|
||||
searchUseCases.defaultSearch.invoke(pastedText)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun handleBrowserToolbarPasteAndGoUrl() {
|
||||
val pastedText = "https://mozilla.org"
|
||||
|
||||
controller.handleToolbarPasteAndGo(pastedText)
|
||||
verifyOrder {
|
||||
currentSession.searchTerms = ""
|
||||
|
|
Loading…
Reference in New Issue