Bug 1831107 - Allow bookmarks containing mobile subdomains to be searched when the corresponding search engine is selected

(cherry picked from commit da13b622a1c4d670cb0e4968cf4c3c2e5f6a0233)
fenix/115.2.0
Alexandru2909 1 year ago committed by mergify[bot]
parent 609bda0f73
commit 9286cc5590

@ -525,7 +525,7 @@ class AwesomeBarView(
filterByCurrentEngine: Boolean = false, filterByCurrentEngine: Boolean = false,
): BookmarksStorageSuggestionProvider { ): BookmarksStorageSuggestionProvider {
val searchEngineHostFilter = when (filterByCurrentEngine) { val searchEngineHostFilter = when (filterByCurrentEngine) {
true -> searchEngineSource.searchEngine?.resultsUrl?.host true -> searchEngineSource.searchEngine?.resultsUrl
false -> null false -> null
} }
@ -537,7 +537,7 @@ class AwesomeBarView(
engine = engineForSpeculativeConnects, engine = engineForSpeculativeConnects,
showEditSuggestion = false, showEditSuggestion = false,
suggestionsHeader = activity.getString(R.string.firefox_suggest_header), suggestionsHeader = activity.getString(R.string.firefox_suggest_header),
resultsHostFilter = searchEngineHostFilter, resultsUriFilter = searchEngineHostFilter,
) )
} }

@ -6,6 +6,7 @@ package org.mozilla.fenix.search.awesomebar
import android.app.Activity import android.app.Activity
import android.graphics.drawable.VectorDrawable import android.graphics.drawable.VectorDrawable
import android.net.Uri
import io.mockk.every import io.mockk.every
import io.mockk.mockk import io.mockk.mockk
import io.mockk.mockkObject import io.mockk.mockkObject
@ -735,19 +736,20 @@ class AwesomeBarViewTest {
val localSessionsProviders = result.filterIsInstance<BookmarksStorageSuggestionProvider>() val localSessionsProviders = result.filterIsInstance<BookmarksStorageSuggestionProvider>()
assertEquals(1, localSessionsProviders.size) assertEquals(1, localSessionsProviders.size)
assertNull(localSessionsProviders[0].resultsHostFilter) assertNull(localSessionsProviders[0].resultsUriFilter)
} }
@Test @Test
fun `GIVEN needing to show filtered bookmarks suggestions WHEN configuring providers THEN add the bookmarks provider with an engine filter`() { fun `GIVEN needing to show filtered bookmarks suggestions WHEN configuring providers THEN add the bookmarks provider with an engine filter`() {
val settings: Settings = mockk(relaxed = true) val settings: Settings = mockk(relaxed = true)
val url = Uri.parse("https://www.test.com")
every { activity.settings() } returns settings every { activity.settings() } returns settings
every { activity.browsingModeManager.mode } returns BrowsingMode.Normal every { activity.browsingModeManager.mode } returns BrowsingMode.Normal
val state = getSearchProviderState( val state = getSearchProviderState(
showAllBookmarkSuggestions = false, showAllBookmarkSuggestions = false,
searchEngineSource = SearchEngineSource.Shortcut( searchEngineSource = SearchEngineSource.Shortcut(
mockk(relaxed = true) { mockk(relaxed = true) {
every { resultsUrl.host } returns "test" every { resultsUrl } returns url
}, },
), ),
) )
@ -756,7 +758,7 @@ class AwesomeBarViewTest {
val localSessionsProviders = result.filterIsInstance<BookmarksStorageSuggestionProvider>() val localSessionsProviders = result.filterIsInstance<BookmarksStorageSuggestionProvider>()
assertEquals(1, localSessionsProviders.size) assertEquals(1, localSessionsProviders.size)
assertEquals("test", localSessionsProviders[0].resultsHostFilter) assertEquals(url, localSessionsProviders[0].resultsUriFilter)
} }
@Test @Test
@ -794,12 +796,13 @@ class AwesomeBarViewTest {
val settings: Settings = mockk(relaxed = true) { val settings: Settings = mockk(relaxed = true) {
every { showUnifiedSearchFeature } returns false every { showUnifiedSearchFeature } returns false
} }
val url = Uri.parse("https://www.test.com")
every { activity.settings() } returns settings every { activity.settings() } returns settings
every { activity.browsingModeManager.mode } returns BrowsingMode.Normal every { activity.browsingModeManager.mode } returns BrowsingMode.Normal
val state = getSearchProviderState( val state = getSearchProviderState(
searchEngineSource = SearchEngineSource.Default( searchEngineSource = SearchEngineSource.Default(
mockk(relaxed = true) { mockk(relaxed = true) {
every { resultsUrl.host } returns "test" every { resultsUrl } returns url
}, },
), ),
) )
@ -812,18 +815,18 @@ class AwesomeBarViewTest {
assertNotNull(historyProviders[1].resultsHostFilter) // the filtered history provider assertNotNull(historyProviders[1].resultsHostFilter) // the filtered history provider
val bookmarksProviders: List<BookmarksStorageSuggestionProvider> = result.filterIsInstance<BookmarksStorageSuggestionProvider>() val bookmarksProviders: List<BookmarksStorageSuggestionProvider> = result.filterIsInstance<BookmarksStorageSuggestionProvider>()
assertEquals(2, bookmarksProviders.size) assertEquals(2, bookmarksProviders.size)
assertNull(bookmarksProviders[0].resultsHostFilter) // the general bookmarks provider assertNull(bookmarksProviders[0].resultsUriFilter) // the general bookmarks provider
assertEquals("test", bookmarksProviders[1].resultsHostFilter) // the filtered bookmarks provider assertEquals(url, bookmarksProviders[1].resultsUriFilter) // the filtered bookmarks provider
assertEquals(1, result.filterIsInstance<SearchActionProvider>().size) assertEquals(1, result.filterIsInstance<SearchActionProvider>().size)
assertEquals(1, result.filterIsInstance<SearchSuggestionProvider>().size) assertEquals(1, result.filterIsInstance<SearchSuggestionProvider>().size)
val syncedTabsProviders: List<SyncedTabsStorageSuggestionProvider> = result.filterIsInstance<SyncedTabsStorageSuggestionProvider>() val syncedTabsProviders: List<SyncedTabsStorageSuggestionProvider> = result.filterIsInstance<SyncedTabsStorageSuggestionProvider>()
assertEquals(2, syncedTabsProviders.size) assertEquals(2, syncedTabsProviders.size)
assertNull(syncedTabsProviders[0].resultsHostFilter) // the general synced tabs provider assertNull(syncedTabsProviders[0].resultsHostFilter) // the general synced tabs provider
assertEquals("test", syncedTabsProviders[1].resultsHostFilter) // the filtered synced tabs provider assertEquals("www.test.com", syncedTabsProviders[1].resultsHostFilter) // the filtered synced tabs provider
val localTabsProviders: List<SessionSuggestionProvider> = result.filterIsInstance<SessionSuggestionProvider>() val localTabsProviders: List<SessionSuggestionProvider> = result.filterIsInstance<SessionSuggestionProvider>()
assertEquals(2, localTabsProviders.size) assertEquals(2, localTabsProviders.size)
assertNull(localTabsProviders[0].resultsHostFilter) // the general tabs provider assertNull(localTabsProviders[0].resultsHostFilter) // the general tabs provider
assertEquals("test", localTabsProviders[1].resultsHostFilter) // the filtered tabs provider assertEquals("www.test.com", localTabsProviders[1].resultsHostFilter) // the filtered tabs provider
assertEquals(1, result.filterIsInstance<SearchEngineSuggestionProvider>().size) assertEquals(1, result.filterIsInstance<SearchEngineSuggestionProvider>().size)
} }

Loading…
Cancel
Save