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