diff --git a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt index 51752bf14..0f8b1a9fb 100644 --- a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt @@ -61,7 +61,8 @@ open class FenixSearchEngineProvider( private val fallBackProvider = AssetsSearchEngineProvider(fallbackLocationService) - private val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) } + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + open val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) } private val fallbackRegion = async { fallbackLocationService.determineRegion() } @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) @@ -213,7 +214,11 @@ open class FenixSearchEngineProvider( } if (!prefs.contains(installedEnginesKey)) { - val defaultSet = baseSearchEngines.await() + val searchEngines = + if (baseSearchEngines.isCompleted) baseSearchEngines + else fallbackEngines + + val defaultSet = searchEngines.await() .list .map { it.identifier } .toSet() diff --git a/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt b/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt index 74327dafd..fbdf303a9 100644 --- a/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt @@ -119,6 +119,21 @@ class FakeFenixSearchEngineProvider(context: Context) : FenixSearchEngineProvide ) } + override val fallbackEngines: Deferred + get() { + val google = mockSearchEngine(id = "google-b-1-m", n = "Google") + + return CompletableDeferred( + SearchEngineList( + listOf( + google, + mockSearchEngine("bing", "Bing"), + mockSearchEngine("amazondotcom", "Amazon.com") + ), default = google + ) + ) + } + override val bundledSearchEngines = CompletableDeferred( SearchEngineList( listOf(