Bug 1856434 - Only show new Firefox Suggest suggestions for the default search engine.

This commit hides sponsored and non-sponsored search suggestions from
Firefox Suggest when a non-default search engine is selected, matching
Desktop's behavior.
fenix/120.0
Lina Butler 9 months ago committed by mergify[bot]
parent ac92245d62
commit baa1958b0f

@ -100,6 +100,10 @@ sealed class SearchEngineSource {
* @property showSessionSuggestionsForCurrentEngine Whether or not to show local tabs suggestions for only
* the current search engine.
* @property showAllSessionSuggestions Whether or not to show the session suggestion in the AwesomeBar.
* @property showSponsoredSuggestions Whether or not to show sponsored Firefox Suggest search suggestions in the
* AwesomeBar. Always `false` when a non-default engine is selected.
* @property showNonSponsoredSuggestions Whether or not to show Firefox Suggest search suggestions for web content
* in the AwesomeBar. Always `false` when a non-default engine is selected.
* @property tabId The ID of the current tab.
* @property pastedText The text pasted from the long press toolbar menu.
* @property searchAccessPoint The source of the performed search.
@ -126,6 +130,8 @@ data class SearchFragmentState(
val showAllSyncedTabsSuggestions: Boolean,
val showSessionSuggestionsForCurrentEngine: Boolean,
val showAllSessionSuggestions: Boolean,
val showSponsoredSuggestions: Boolean,
val showNonSponsoredSuggestions: Boolean,
val tabId: String?,
val pastedText: String? = null,
val searchAccessPoint: MetricsUtils.Source,
@ -178,6 +184,8 @@ fun createInitialSearchFragmentState(
showAllSyncedTabsSuggestions = settings.shouldShowSyncedTabsSuggestions,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = true,
showSponsoredSuggestions = settings.showSponsoredSuggestions,
showNonSponsoredSuggestions = settings.showNonSponsoredSuggestions,
tabId = tabId,
pastedText = pastedText,
searchAccessPoint = searchAccessPoint,
@ -275,6 +283,8 @@ private fun searchStateReducer(state: SearchFragmentState, action: SearchFragmen
showSyncedTabsSuggestionsForCurrentEngine = false, // we'll show all synced tabs
showAllSyncedTabsSuggestions = action.settings.shouldShowSyncedTabsSuggestions,
showSessionSuggestionsForCurrentEngine = false, // we'll show all local tabs
showSponsoredSuggestions = action.settings.showSponsoredSuggestions,
showNonSponsoredSuggestions = action.settings.showNonSponsoredSuggestions,
showAllSessionSuggestions = true,
)
is SearchFragmentAction.SearchShortcutEngineSelected ->
@ -312,6 +322,8 @@ private fun searchStateReducer(state: SearchFragmentState, action: SearchFragmen
true -> false
false -> true
},
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
)
is SearchFragmentAction.SearchHistoryEngineSelected ->
state.copy(
@ -328,6 +340,8 @@ private fun searchStateReducer(state: SearchFragmentState, action: SearchFragmen
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = false,
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
)
is SearchFragmentAction.SearchBookmarksEngineSelected ->
state.copy(
@ -344,6 +358,8 @@ private fun searchStateReducer(state: SearchFragmentState, action: SearchFragmen
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = false,
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
)
is SearchFragmentAction.SearchTabsEngineSelected ->
state.copy(
@ -360,6 +376,8 @@ private fun searchStateReducer(state: SearchFragmentState, action: SearchFragmen
showAllSyncedTabsSuggestions = true,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = true,
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
)
is SearchFragmentAction.ShowSearchShortcutEnginePicker ->
state.copy(showSearchShortcuts = action.show && state.areShortcutsAvailable)

@ -57,7 +57,6 @@ class AwesomeBarView(
private val engineForSpeculativeConnects: Engine?
private val defaultHistoryStorageProvider: HistoryStorageSuggestionProvider
private val defaultCombinedHistoryProvider: CombinedHistorySuggestionProvider
private val fxSuggestProvider: FxSuggestSuggestionProvider?
private val shortcutsEnginePickerProvider: ShortcutsSuggestionProvider
private val defaultSearchSuggestionProvider: SearchSuggestionProvider
private val defaultSearchActionProvider: SearchActionProvider
@ -140,18 +139,6 @@ class AwesomeBarView(
suggestionsHeader = activity.getString(R.string.firefox_suggest_header),
)
fxSuggestProvider = if (activity.settings().enableFxSuggest) {
FxSuggestSuggestionProvider(
resources = activity.resources,
loadUrlUseCase = loadUrlUseCase,
includeSponsoredSuggestions = activity.settings().showSponsoredSuggestions,
includeNonSponsoredSuggestions = activity.settings().showNonSponsoredSuggestions,
suggestionsHeader = activity.getString(R.string.firefox_suggest_header),
)
} else {
null
}
val searchBitmap = getDrawable(activity, R.drawable.ic_search)!!.apply {
colorFilter = createBlendModeColorFilterCompat(primaryTextColor, SRC_IN)
}.toBitmap()
@ -332,9 +319,19 @@ class AwesomeBarView(
providersToAdd.add(getLocalTabsProvider(state.searchEngineSource, true))
}
providersToAdd.add(searchEngineSuggestionProvider)
if (state.showSponsoredSuggestions || state.showNonSponsoredSuggestions) {
providersToAdd.add(
FxSuggestSuggestionProvider(
resources = activity.resources,
loadUrlUseCase = loadUrlUseCase,
includeSponsoredSuggestions = state.showSponsoredSuggestions,
includeNonSponsoredSuggestions = state.showNonSponsoredSuggestions,
suggestionsHeader = activity.getString(R.string.firefox_suggest_header),
),
)
}
fxSuggestProvider?.let { providersToAdd.add(it) }
providersToAdd.add(searchEngineSuggestionProvider)
return providersToAdd
}
@ -567,6 +564,8 @@ class AwesomeBarView(
val showAllSyncedTabsSuggestions: Boolean,
val showSessionSuggestionsForCurrentEngine: Boolean,
val showAllSessionSuggestions: Boolean,
val showSponsoredSuggestions: Boolean,
val showNonSponsoredSuggestions: Boolean,
val searchEngineSource: SearchEngineSource,
)
@ -600,5 +599,7 @@ fun SearchFragmentState.toSearchProviderState() = AwesomeBarView.SearchProviderS
showAllSyncedTabsSuggestions = showAllSyncedTabsSuggestions,
showSessionSuggestionsForCurrentEngine = showSessionSuggestionsForCurrentEngine,
showAllSessionSuggestions = showAllSessionSuggestions,
showSponsoredSuggestions = showSponsoredSuggestions,
showNonSponsoredSuggestions = showNonSponsoredSuggestions,
searchEngineSource = searchEngineSource,
)

@ -62,6 +62,8 @@ class SearchFragmentStoreTest {
every { settings.shouldShowSearchShortcuts } returns true
every { settings.showUnifiedSearchFeature } returns true
every { settings.shouldShowHistorySuggestions } returns true
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
mockkStatic("org.mozilla.fenix.search.SearchFragmentStoreKt") {
val expected = SearchFragmentState(
@ -85,6 +87,8 @@ class SearchFragmentStoreTest {
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = true,
showSponsoredSuggestions = true,
showNonSponsoredSuggestions = true,
tabId = null,
pastedText = "pastedText",
searchAccessPoint = MetricsUtils.Source.ACTION,
@ -152,6 +156,8 @@ class SearchFragmentStoreTest {
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = true,
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
tabId = "tabId",
pastedText = "",
searchAccessPoint = MetricsUtils.Source.SHORTCUT,
@ -351,6 +357,152 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showSearchShortcuts)
}
@Test
fun `GIVEN sponsored suggestions are enabled WHEN the default search engine is selected THEN sponsored suggestions are displayed`() = runTest {
val initialState = emptyDefaultState(showSponsoredSuggestions = false, showNonSponsoredSuggestions = false)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns false
store.dispatch(
SearchFragmentAction.SearchDefaultEngineSelected(
engine = searchEngine,
browsingMode = BrowsingMode.Normal,
settings = settings,
),
).join()
assertNotSame(initialState, store.state)
assertTrue(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN non-sponsored suggestions are enabled WHEN the default search engine is selected THEN non-sponsored suggestions are displayed`() = runTest {
val initialState = emptyDefaultState(showSponsoredSuggestions = false, showNonSponsoredSuggestions = false)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns false
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(
SearchFragmentAction.SearchDefaultEngineSelected(
engine = searchEngine,
browsingMode = BrowsingMode.Normal,
settings = settings,
),
).join()
assertNotSame(initialState, store.state)
assertFalse(store.state.showSponsoredSuggestions)
assertTrue(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are enabled WHEN the default search engine is selected THEN both are displayed`() = runTest {
val initialState = emptyDefaultState(showSponsoredSuggestions = false, showNonSponsoredSuggestions = false)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(
SearchFragmentAction.SearchDefaultEngineSelected(
engine = searchEngine,
browsingMode = BrowsingMode.Normal,
settings = settings,
),
).join()
assertNotSame(initialState, store.state)
assertTrue(store.state.showSponsoredSuggestions)
assertTrue(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are disabled WHEN the default search engine is selected THEN neither are displayed`() = runTest {
val initialState = emptyDefaultState(showSponsoredSuggestions = true, showNonSponsoredSuggestions = true)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns false
every { settings.showNonSponsoredSuggestions } returns false
store.dispatch(
SearchFragmentAction.SearchDefaultEngineSelected(
engine = searchEngine,
browsingMode = BrowsingMode.Normal,
settings = settings,
),
).join()
assertNotSame(initialState, store.state)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are enabled WHEN a shortcut is selected THEN neither are displayed`() = runTest {
val initialState =
emptyDefaultState(showSponsoredSuggestions = true, showNonSponsoredSuggestions = true)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(
SearchFragmentAction.SearchShortcutEngineSelected(
engine = searchEngine,
browsingMode = BrowsingMode.Normal,
settings = settings,
),
).join()
assertNotSame(initialState, store.state)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are enabled WHEN the history engine is selected THEN neither are displayed`() = runTest {
val initialState =
emptyDefaultState(showSponsoredSuggestions = true, showNonSponsoredSuggestions = true)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(SearchFragmentAction.SearchHistoryEngineSelected(searchEngine)).join()
assertNotSame(initialState, store.state)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are enabled WHEN the bookmarks engine is selected THEN neither are displayed`() = runTest {
val initialState =
emptyDefaultState(showSponsoredSuggestions = true, showNonSponsoredSuggestions = true)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(SearchFragmentAction.SearchBookmarksEngineSelected(searchEngine)).join()
assertNotSame(initialState, store.state)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are enabled WHEN the tabs engine is selected THEN neither are displayed`() = runTest {
val initialState =
emptyDefaultState(showSponsoredSuggestions = true, showNonSponsoredSuggestions = true)
val store = SearchFragmentStore(initialState)
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(SearchFragmentAction.SearchTabsEngineSelected(searchEngine)).join()
assertNotSame(initialState, store.state)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
fun `WHEN the search engine is the default one THEN search suggestions providers are updated`() = runTest {
val initialState = emptyDefaultState(showHistorySuggestionsForCurrentEngine = false)
@ -363,6 +515,8 @@ class SearchFragmentStoreTest {
every { settings.shouldShowSyncedTabsSuggestions } returns false
every { settings.shouldShowSearchSuggestions } returns true
every { settings.shouldShowSearchSuggestionsInPrivate } returns true
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
mockkStatic("org.mozilla.fenix.search.SearchFragmentStoreKt") {
store.dispatch(
@ -385,6 +539,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllBookmarkSuggestions)
assertFalse(store.state.showAllSyncedTabsSuggestions)
assertTrue(store.state.showAllSessionSuggestions)
assertTrue(store.state.showSponsoredSuggestions)
assertTrue(store.state.showNonSponsoredSuggestions)
verify { shouldShowSearchSuggestions(BrowsingMode.Private, settings) }
}
}
@ -403,6 +559,8 @@ class SearchFragmentStoreTest {
every { settings.shouldShowBookmarkSuggestions } returns true
every { settings.shouldShowSyncedTabsSuggestions } returns true
every { settings.shouldShowSearchSuggestions } returns true
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(
SearchFragmentAction.SearchShortcutEngineSelected(
@ -426,6 +584,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllSyncedTabsSuggestions)
assertTrue(store.state.showSessionSuggestionsForCurrentEngine)
assertFalse(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
every { settings.shouldShowSearchSuggestions } returns false
val generalEngine: SearchEngine = mockk {
@ -452,6 +612,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllSyncedTabsSuggestions)
assertFalse(store.state.showSessionSuggestionsForCurrentEngine)
assertFalse(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
@ -466,6 +628,8 @@ class SearchFragmentStoreTest {
every { settings.shouldShowHistorySuggestions } returns true
every { settings.shouldShowBookmarkSuggestions } returns false
every { settings.shouldShowSyncedTabsSuggestions } returns false
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(
SearchFragmentAction.SearchShortcutEngineSelected(
@ -489,6 +653,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllSyncedTabsSuggestions)
assertTrue(store.state.showSessionSuggestionsForCurrentEngine)
assertFalse(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
@ -503,6 +669,8 @@ class SearchFragmentStoreTest {
every { settings.shouldShowSyncedTabsSuggestions } returns true
every { settings.shouldShowSearchSuggestions } returns true
every { settings.shouldShowSearchSuggestionsInPrivate } returns true
every { settings.showSponsoredSuggestions } returns true
every { settings.showNonSponsoredSuggestions } returns true
store.dispatch(
SearchFragmentAction.SearchShortcutEngineSelected(
@ -523,6 +691,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllBookmarkSuggestions)
assertTrue(store.state.showAllSyncedTabsSuggestions)
assertTrue(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
@ -642,6 +812,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllBookmarkSuggestions)
assertFalse(store.state.showAllSyncedTabsSuggestions)
assertFalse(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
@ -662,6 +834,8 @@ class SearchFragmentStoreTest {
assertTrue(store.state.showAllBookmarkSuggestions)
assertFalse(store.state.showAllSyncedTabsSuggestions)
assertFalse(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
@ -682,6 +856,8 @@ class SearchFragmentStoreTest {
assertFalse(store.state.showAllBookmarkSuggestions)
assertTrue(store.state.showAllSyncedTabsSuggestions)
assertTrue(store.state.showAllSessionSuggestions)
assertFalse(store.state.showSponsoredSuggestions)
assertFalse(store.state.showNonSponsoredSuggestions)
}
@Test
@ -943,6 +1119,8 @@ class SearchFragmentStoreTest {
areShortcutsAvailable: Boolean = true,
showSearchShortcutsSetting: Boolean = false,
showHistorySuggestionsForCurrentEngine: Boolean = true,
showSponsoredSuggestions: Boolean = true,
showNonSponsoredSuggestions: Boolean = true,
): SearchFragmentState = SearchFragmentState(
tabId = null,
url = "",
@ -965,6 +1143,8 @@ class SearchFragmentStoreTest {
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = false,
showSponsoredSuggestions = showSponsoredSuggestions,
showNonSponsoredSuggestions = showNonSponsoredSuggestions,
searchAccessPoint = MetricsUtils.Source.NONE,
)
}

@ -65,8 +65,6 @@ class AwesomeBarViewTest {
every { any<Activity>().components.core.client } returns mockk()
every { any<Activity>().components.backgroundServices.syncedTabsStorage } returns mockk()
every { any<Activity>().components.core.store.state.search } returns mockk(relaxed = true)
every { any<Activity>().components.core.store.state.search } returns mockk(relaxed = true)
every { any<Activity>().settings() } returns mockk(relaxed = true)
every { any<Activity>().getColorFromAttr(any()) } returns 0
every { AwesomeBarView.Companion.getDrawable(any(), any()) } returns mockk<VectorDrawable>(relaxed = true) {
every { intrinsicWidth } returns 10
@ -852,6 +850,90 @@ class AwesomeBarViewTest {
assertEquals(1, result.filterIsInstance<SearchEngineSuggestionProvider>().size)
}
@Test
fun `GIVEN sponsored suggestions are enabled WHEN configuring providers THEN add the Firefox Suggest suggestion provider`() {
val settings: Settings = mockk(relaxed = true)
every { activity.settings() } returns settings
val awesomeBarView = AwesomeBarView(
activity = activity,
interactor = mockk(),
view = mockk(),
fromHomeFragment = false,
)
val state = getSearchProviderState(
showSponsoredSuggestions = true,
showNonSponsoredSuggestions = false,
)
val result = awesomeBarView.getProvidersToAdd(state)
val fxSuggestProvider = result.firstOrNull { it is FxSuggestSuggestionProvider }
assertNotNull(fxSuggestProvider)
}
@Test
fun `GIVEN non-sponsored suggestions are enabled WHEN configuring providers THEN add the Firefox Suggest suggestion provider`() {
val settings: Settings = mockk(relaxed = true)
every { activity.settings() } returns settings
val awesomeBarView = AwesomeBarView(
activity = activity,
interactor = mockk(),
view = mockk(),
fromHomeFragment = false,
)
val state = getSearchProviderState(
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = true,
)
val result = awesomeBarView.getProvidersToAdd(state)
val fxSuggestProvider = result.firstOrNull { it is FxSuggestSuggestionProvider }
assertNotNull(fxSuggestProvider)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are enabled WHEN configuring providers THEN add the Firefox Suggest suggestion provider`() {
val settings: Settings = mockk(relaxed = true)
every { activity.settings() } returns settings
val awesomeBarView = AwesomeBarView(
activity = activity,
interactor = mockk(),
view = mockk(),
fromHomeFragment = false,
)
val state = getSearchProviderState(
showSponsoredSuggestions = true,
showNonSponsoredSuggestions = true,
)
val result = awesomeBarView.getProvidersToAdd(state)
val fxSuggestProvider = result.firstOrNull { it is FxSuggestSuggestionProvider }
assertNotNull(fxSuggestProvider)
}
@Test
fun `GIVEN sponsored and non-sponsored suggestions are disabled WHEN configuring providers THEN don't add the Firefox Suggest suggestion provider`() {
val settings: Settings = mockk(relaxed = true)
every { activity.settings() } returns settings
val awesomeBarView = AwesomeBarView(
activity = activity,
interactor = mockk(),
view = mockk(),
fromHomeFragment = false,
)
val state = getSearchProviderState(
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
)
val result = awesomeBarView.getProvidersToAdd(state)
val fxSuggestProvider = result.firstOrNull { it is FxSuggestSuggestionProvider }
assertNull(fxSuggestProvider)
}
@Test
fun `GIVEN the current search engine's url is not known WHEN creating a history provider for that engine THEN return null`() {
val engineSource = SearchEngineSource.None
@ -1046,46 +1128,6 @@ class AwesomeBarViewTest {
assertEquals(1, result.filterIsInstance<SearchTermSuggestionsProvider>().size)
}
@Test
fun `GIVEN Firefox Suggest is enabled WHEN the view is created THEN configure the Firefox Suggest suggestion provider`() {
val settings: Settings = mockk(relaxed = true) {
every { enableFxSuggest } returns true
}
every { activity.settings() } returns settings
val awesomeBarView = AwesomeBarView(
activity = activity,
interactor = mockk(),
view = mockk(),
fromHomeFragment = false,
)
val state = getSearchProviderState()
val result = awesomeBarView.getProvidersToAdd(state)
val fxSuggestProvider = result.firstOrNull { it is FxSuggestSuggestionProvider }
assertNotNull(fxSuggestProvider)
}
@Test
fun `GIVEN Firefox Suggest is disabled WHEN the view is created THEN don't configure the Firefox Suggest suggestion provider`() {
val settings: Settings = mockk(relaxed = true) {
every { enableFxSuggest } returns false
}
every { activity.settings() } returns settings
val awesomeBarView = AwesomeBarView(
activity = activity,
interactor = mockk(),
view = mockk(),
fromHomeFragment = false,
)
val state = getSearchProviderState()
val result = awesomeBarView.getProvidersToAdd(state)
val fxSuggestProvider = result.firstOrNull { it is FxSuggestSuggestionProvider }
assertNull(fxSuggestProvider)
}
}
/**
@ -1104,6 +1146,8 @@ private fun getSearchProviderState(
showSessionSuggestionsForCurrentEngine: Boolean = true,
showAllSessionSuggestions: Boolean = true,
searchEngineSource: SearchEngineSource = SearchEngineSource.None,
showSponsoredSuggestions: Boolean = true,
showNonSponsoredSuggestions: Boolean = true,
) = SearchProviderState(
showSearchShortcuts = showSearchShortcuts,
showSearchTermHistory = showSearchTermHistory,
@ -1116,5 +1160,7 @@ private fun getSearchProviderState(
showAllSyncedTabsSuggestions = showAllSyncedTabsSuggestions,
showSessionSuggestionsForCurrentEngine = showSessionSuggestionsForCurrentEngine,
showAllSessionSuggestions = showAllSessionSuggestions,
showSponsoredSuggestions = showSponsoredSuggestions,
showNonSponsoredSuggestions = showNonSponsoredSuggestions,
searchEngineSource = searchEngineSource,
)

@ -275,6 +275,8 @@ private val testSearchFragmentState = SearchFragmentState(
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = true,
showSponsoredSuggestions = true,
showNonSponsoredSuggestions = true,
tabId = "tabId",
pastedText = "",
searchAccessPoint = MetricsUtils.Source.SHORTCUT,

@ -88,6 +88,8 @@ class ToolbarViewTest {
showAllSyncedTabsSuggestions = false,
showSessionSuggestionsForCurrentEngine = false,
showAllSessionSuggestions = false,
showSponsoredSuggestions = false,
showNonSponsoredSuggestions = false,
searchAccessPoint = MetricsUtils.Source.NONE,
)

Loading…
Cancel
Save