From b1a8c0f483c780acd7fd925a15765d3f31ce9c65 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Thu, 25 Jun 2020 15:25:57 -0700 Subject: [PATCH] For #9935 - Use the searchengine deferred --- .../searchengine/FenixSearchEngineProvider.kt | 9 +++++++-- .../searchengine/FenixSearchEngineProviderTest.kt | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) 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(