Skip to content

Commit

Permalink
Closes mozilla-mobile#3344: Add getProvidedDefaultSearchEngine to Sea…
Browse files Browse the repository at this point in the history
…rchEngineManager to get the provided default search engine.
  • Loading branch information
gabrielluong committed Jun 11, 2019
1 parent 53d00ac commit 2085b99
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,16 @@ class SearchEngineManager(
}
}

/**
* Returns the provided default search engine or the first search engine if the default
* is not set.
*/
@Synchronized
fun getProvidedDefaultSearchEngine(context: Context): SearchEngine {
val searchEngineList = getSearchEngineList(context)
return searchEngineList.default ?: searchEngineList.list[0]
}

/**
* Registers for ACTION_LOCALE_CHANGED broadcasts and automatically reloads the search engines
* whenever the locale changes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,37 @@ class SearchEngineManagerTest {
assertEquals("google", default.identifier)
}

@Test
fun `manager returns first engine as provided default if default cannot be found`() = runBlockingTest {
val provider = mockProvider(listOf(
mockSearchEngine("mozsearch"),
mockSearchEngine("google"),
mockSearchEngine("bing")))

val manager = SearchEngineManager(listOf(provider))

val default = manager.getProvidedDefaultSearchEngine(testContext)
assertEquals("mozsearch", default.identifier)
}

@Test
fun `manager returns default engine as provided default from the provider`() = runBlockingTest {
val mozSearchEngine = mockSearchEngine("mozsearch")
val provider = mockProvider(
engines = listOf(
mockSearchEngine("google"),
mozSearchEngine,
mockSearchEngine("bing")
),
default = mozSearchEngine
)

val manager = SearchEngineManager(listOf(provider))

val default = manager.getProvidedDefaultSearchEngine(testContext)
assertEquals("mozsearch", default.identifier)
}

@Test
fun `manager registers for locale changes`() = runBlockingTest {
val provider = spy(mockProvider(listOf(
Expand Down
4 changes: 4 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ permalink: /changelog/
* Added `endOfMenuAlwaysVisible` property/parameter to `BrowserMenuBuilder` constructor and to `BrowserMenu.show` function.
When is set to true makes sure the bottom of the menu is always visible, this allows use cases like [#3211](https://github.com/mozilla-mobile/android-components/issues/3211).

* **browser-search**
* Added `getProvidedDefaultSearchEngine` to `SearchEngineManager` to return the provided default search engine or the first
search engine if the default is not set.

# 0.56.1
* [Commits](https://github.com/mozilla-mobile/android-components/compare/v0.56.0...v0.56.1)
* [Dependencies](https://github.com/mozilla-mobile/android-components/blob/v0.56.1/buildSrc/src/main/java/Dependencies.kt)
Expand Down

0 comments on commit 2085b99

Please sign in to comment.