1
0
Fork 0

For #5308: Display search shortcuts when going from browser to search

master
Sawyer Blatz 2020-03-02 16:11:40 -08:00
parent 063a3b268a
commit e38bff8597
2 changed files with 21 additions and 5 deletions

View File

@ -79,18 +79,21 @@ class DefaultSearchController(
} }
override fun handleTextChanged(text: String) { override fun handleTextChanged(text: String) {
// Display the search shortcuts on each entry of the search fragment (see #5308)
val textMatchesCurrentUrl = store.state.session?.url ?: "" == text
store.dispatch(SearchFragmentAction.UpdateQuery(text)) store.dispatch(SearchFragmentAction.UpdateQuery(text))
store.dispatch( store.dispatch(
SearchFragmentAction.ShowSearchShortcutEnginePicker( SearchFragmentAction.ShowSearchShortcutEnginePicker(
text.isEmpty() && context.settings().shouldShowSearchShortcuts (textMatchesCurrentUrl || text.isEmpty()) && context.settings().shouldShowSearchShortcuts
) )
) )
store.dispatch( store.dispatch(
SearchFragmentAction.AllowSearchSuggestionsInPrivateModePrompt( SearchFragmentAction.AllowSearchSuggestionsInPrivateModePrompt(
text.isNotEmpty() && text.isNotEmpty() &&
(context as HomeActivity).browsingModeManager.mode.isPrivate && (context as HomeActivity).browsingModeManager.mode.isPrivate &&
!context.settings().shouldShowSearchSuggestionsInPrivate && !context.settings().shouldShowSearchSuggestionsInPrivate &&
!context.settings().showSearchSuggestionsInPrivateOnboardingFinished !context.settings().showSearchSuggestionsInPrivateOnboardingFinished
) )
) )
} }

View File

@ -14,6 +14,7 @@ import mozilla.components.browser.search.SearchEngine
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.support.test.robolectric.testContext import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse import org.junit.Assert.assertFalse
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
@ -116,6 +117,18 @@ class DefaultSearchControllerTest {
verify { store.dispatch(SearchFragmentAction.ShowSearchShortcutEnginePicker(true)) } verify { store.dispatch(SearchFragmentAction.ShowSearchShortcutEnginePicker(true)) }
} }
@Test
fun `show search shortcuts when setting enabled AND query equals url`() {
val text = "mozilla.org"
every { session?.url } returns "mozilla.org"
assertEquals(text, session?.url)
controller.handleTextChanged(text)
verify { store.dispatch(SearchFragmentAction.ShowSearchShortcutEnginePicker(true)) }
}
@Test @Test
fun `do not show search shortcuts when setting enabled AND query non-empty`() { fun `do not show search shortcuts when setting enabled AND query non-empty`() {
val text = "mozilla" val text = "mozilla"
@ -126,7 +139,7 @@ class DefaultSearchControllerTest {
} }
@Test @Test
fun `do not show search shortcuts when setting disabled AND query empty`() { fun `do not show search shortcuts when setting disabled AND query empty AND url not matching query`() {
testContext.settings().preferences testContext.settings().preferences
.edit() .edit()
.putBoolean(testContext.getString(R.string.pref_key_show_search_shortcuts), false) .putBoolean(testContext.getString(R.string.pref_key_show_search_shortcuts), false)