From a7e25063858a2ff9f1410d040a3547875120669b Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Thu, 5 Nov 2020 11:26:49 +0100 Subject: [PATCH 01/10] Bump kotlin and coroutine libraries --- app/build.gradle | 3 ++- build.gradle | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 893c09a46b96..42ea7d8096fc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -110,7 +110,7 @@ ext { legacySupport = "1.0.0" coreTesting = "2.1.0" testRunner = "1.2.0" - coroutines = "1.3.5" + coroutines = "1.4.1" retrofitCoroutinesAdapter = "0.9.2" webkit = "1.2.0" referrerLibrary = "1.1.2" @@ -141,6 +141,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines" androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines" implementation "androidx.appcompat:appcompat:$androidX" diff --git a/build.gradle b/build.gradle index f649bbc7f2f2..7f8707cd03d6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.71' + ext.kotlin_version = '1.4.0' ext.jetifier = "1.0.0-beta02" repositories { From eff241dd4bc2ed78996c693ba43ab1efe51691c8 Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Thu, 5 Nov 2020 11:52:10 +0100 Subject: [PATCH 02/10] Bump retrofit version Remove retrofit-coroutine adapter library (deprecated: https://github.com/JakeWharton/retrofit2-kotlin-coroutines-adapter#kotlin-coroutine-adapter-deprecated) Adapt code to introduce suspend operator --- app/build.gradle | 4 +--- app/src/main/java/com/duckduckgo/app/di/NetworkModule.kt | 2 -- .../java/com/duckduckgo/app/feedback/api/FeedbackService.kt | 4 ++-- .../java/com/duckduckgo/app/feedback/api/FeedbackSubmitter.kt | 4 ++-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 42ea7d8096fc..d05012268e79 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -111,13 +111,12 @@ ext { coreTesting = "2.1.0" testRunner = "1.2.0" coroutines = "1.4.1" - retrofitCoroutinesAdapter = "0.9.2" webkit = "1.2.0" referrerLibrary = "1.1.2" junit = "4.12" dagger = "2.27" - retrofit = "2.8.1" + retrofit = "2.9.0" ankoVersion = "0.10.4" glide = "4.11.0" lottieVersion = "3.4.0" @@ -154,7 +153,6 @@ dependencies { implementation "com.squareup.retrofit2:converter-moshi:$retrofit" implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit" implementation "com.squareup.retrofit2:converter-scalars:$retrofit" - implementation "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:$retrofitCoroutinesAdapter" implementation "io.reactivex.rxjava2:rxjava:$rxJava" implementation "io.reactivex.rxjava2:rxandroid:$rxAndroid" implementation "com.jakewharton.timber:timber:$timber" diff --git a/app/src/main/java/com/duckduckgo/app/di/NetworkModule.kt b/app/src/main/java/com/duckduckgo/app/di/NetworkModule.kt index b110777d8cf8..a5d2983f9125 100644 --- a/app/src/main/java/com/duckduckgo/app/di/NetworkModule.kt +++ b/app/src/main/java/com/duckduckgo/app/di/NetworkModule.kt @@ -39,7 +39,6 @@ import com.duckduckgo.app.surrogates.api.ResourceSurrogateListService import com.duckduckgo.app.survey.api.SurveyService import com.duckduckgo.app.trackerdetection.api.TrackerListService import com.duckduckgo.app.trackerdetection.db.TdsMetadataDao -import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory import com.squareup.moshi.Moshi import dagger.Module import dagger.Provides @@ -86,7 +85,6 @@ class NetworkModule { .client(okHttpClient) .addConverterFactory(ScalarsConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) - .addCallAdapterFactory(CoroutineCallAdapterFactory()) .addConverterFactory(MoshiConverterFactory.create(moshi)) .build() } diff --git a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt index e54ffd5a894a..ac8450111014 100644 --- a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt +++ b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt @@ -25,7 +25,7 @@ interface FeedbackService { @FormUrlEncoded @POST("/feedback.js?type=app-feedback") - fun submitFeedback( + suspend fun submitFeedback( @Field("reason") reason: String = REASON_GENERAL, @Field("rating") rating: String, @Field("category") category: String?, @@ -38,7 +38,7 @@ interface FeedbackService { @Field("manufacturer") manufacturer: String, @Field("model") model: String, @Field("atb") atb: String - ): Call + ) companion object { const val REASON_GENERAL = "general" diff --git a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSubmitter.kt b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSubmitter.kt index e3a04abcb480..22562f6dfd83 100644 --- a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSubmitter.kt +++ b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSubmitter.kt @@ -112,7 +112,7 @@ class FireAndForgetFeedbackSubmitter( pixel.fire(pixelName) } - private fun submitFeedback( + private suspend fun submitFeedback( openEnded: String, rating: String, category: String? = null, @@ -132,7 +132,7 @@ class FireAndForgetFeedbackSubmitter( model = Build.MODEL, api = Build.VERSION.SDK_INT, atb = atbWithVariant() - ).execute() + ) } private fun categoryFromMainReason(mainReason: MainReason): String { From 209265ce3889dc53ed6074671007a08549e0d967 Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Fri, 6 Nov 2020 17:43:32 +0100 Subject: [PATCH 03/10] fix spotless issue --- .../main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt index ac8450111014..792896cbe89f 100644 --- a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt +++ b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt @@ -16,7 +16,6 @@ package com.duckduckgo.app.feedback.api -import retrofit2.Call import retrofit2.http.Field import retrofit2.http.FormUrlEncoded import retrofit2.http.POST From bff73a260b22dcd7ee69fa24694a810d8e3080fa Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Wed, 2 Dec 2020 23:37:19 +0100 Subject: [PATCH 04/10] bump coroutines version! --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 1abed6bb3745..f4cf538c8091 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -110,7 +110,7 @@ ext { legacySupport = "1.0.0" coreTesting = "2.1.0" testRunner = "1.3.0" - coroutines = "1.3.5" + coroutines = "1.4.1" webkit = "1.3.0" referrerLibrary = "1.1.2" From ecb949338b06369c228653a66ab2ed0793256d9a Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Wed, 2 Dec 2020 23:55:38 +0100 Subject: [PATCH 05/10] remove unnecessary annotations --- .../java/com/duckduckgo/app/browser/BrowserTabViewModel.kt | 2 -- app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt | 3 --- 2 files changed, 5 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt index 53174cdc99ad..7384c12172cd 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt @@ -325,7 +325,6 @@ class BrowserTabViewModel( browserViewState.value = currentBrowserViewState().copy(isFireproofWebsite = isFireproofWebsite()) } - @ExperimentalCoroutinesApi private val fireButtonAnimation = Observer { shouldShowAnimation -> Timber.i("shouldShowAnimation $shouldShowAnimation") if (currentBrowserViewState().fireButton is FireButton.Visible) { @@ -337,7 +336,6 @@ class BrowserTabViewModel( } } - @ExperimentalCoroutinesApi private fun registerAndScheduleDismissAction() { viewModelScope.launch(dispatchers.io()) { val fireButtonHighlightedEvent = userEventsStore.getUserEvent(UserEventKey.FIRE_BUTTON_HIGHLIGHTED) diff --git a/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt b/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt index 4e73a7425846..4a0d15909db0 100644 --- a/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt @@ -100,7 +100,6 @@ class CtaViewModel @Inject constructor( ) } - @ExperimentalCoroutinesApi suspend fun dismissPulseAnimation() { withContext(dispatchers.io()) { dismissedCtaDao.insert(DismissedCta(CtaId.DAX_FIRE_BUTTON)) @@ -357,7 +356,6 @@ class CtaViewModel @Inject constructor( } } - @ExperimentalCoroutinesApi private fun forceStopFireButtonPulseAnimationFlow() = tabRepository.flowTabs.distinctUntilChanged() .map { tabs -> if (tabs.size >= MAX_TABS_OPEN_FIRE_EDUCATION) return@map true @@ -378,7 +376,6 @@ class CtaViewModel @Inject constructor( } }.shouldShowPulseAnimation() - @ExperimentalCoroutinesApi private fun Flow, Boolean>>.shouldShowPulseAnimation(): Flow { return this.map { (dismissedCtaDao, forceStopAnimation) -> withContext(dispatchers.io()) { From 761204a8626351a671f9c6840cdd1ce3888eeb65 Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Thu, 3 Dec 2020 00:24:53 +0100 Subject: [PATCH 06/10] Fixes compilation error due to DuplicateRelativeFileException --- app/build.gradle | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index f367689fd196..cb26df2683a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -141,7 +141,11 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines" - androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines" + androidTestImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines") { + // https://github.com/Kotlin/kotlinx.coroutines/issues/2023 + // conflicts with mockito due to direct inclusion of byte buddy + exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug" + } implementation "androidx.appcompat:appcompat:$androidX" implementation "com.google.android.material:material:$materialDesign" From 6bce4423129b377e718a01c925b1ce25aecfd39e Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Tue, 19 Jan 2021 12:31:29 +0100 Subject: [PATCH 07/10] Fix failing test --- .../java/com/duckduckgo/app/cta/ui/CtaViewModelTest.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/androidTest/java/com/duckduckgo/app/cta/ui/CtaViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/cta/ui/CtaViewModelTest.kt index d876380bf387..ed1b2fae75ea 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/cta/ui/CtaViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/cta/ui/CtaViewModelTest.kt @@ -616,14 +616,13 @@ class CtaViewModelTest { givenOnboardingActive() db.tabsDao().insertTab(TabEntity(tabId = "0", position = 0)) db.dismissedCtaDao().insert(DismissedCta(CtaId.DAX_DIALOG_TRACKERS_FOUND)) + db.tabsDao().insertTab(TabEntity(tabId = "1", position = 1)) + val collector = launch { testee.showFireButtonPulseAnimation.collect { - values.add(it) + assertFalse(it) } } - db.tabsDao().insertTab(TabEntity(tabId = "1", position = 1)) - - assertEquals(listOf(true, false), values) collector.cancel() } From 2f5394557bb3a40abda829d5ab675dc560c1d1f0 Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Tue, 19 Jan 2021 15:36:05 +0100 Subject: [PATCH 08/10] fix failing test related to withTimeoutOrNull (Job has not completed yet) --- app/build.gradle | 2 +- .../app/launch/LaunchViewModelTest.kt | 15 +--------- .../StubAppReferrerFoundStateListener.kt | 30 +++++++++++++++++++ .../app/statistics/AtbInitializerTest.kt | 27 ++++++++--------- 4 files changed, 44 insertions(+), 30 deletions(-) create mode 100644 app/src/androidTest/java/com/duckduckgo/app/referral/StubAppReferrerFoundStateListener.kt diff --git a/app/build.gradle b/app/build.gradle index 429ce079ab94..36003ecd0e26 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -110,7 +110,7 @@ ext { legacySupport = "1.0.0" coreTesting = "2.1.0" testRunner = "1.3.0" - coroutines = "1.4.1" + coroutines = "1.4.2" webkit = "1.3.0" referrerLibrary = "1.1.2" diff --git a/app/src/androidTest/java/com/duckduckgo/app/launch/LaunchViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/launch/LaunchViewModelTest.kt index c2b711234848..b779c07e89cb 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/launch/LaunchViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/launch/LaunchViewModelTest.kt @@ -23,13 +23,11 @@ import com.duckduckgo.app.launch.LaunchViewModel.Command.Home import com.duckduckgo.app.launch.LaunchViewModel.Command.Onboarding import com.duckduckgo.app.onboarding.store.AppStage import com.duckduckgo.app.onboarding.store.UserStageStore -import com.duckduckgo.app.referral.AppInstallationReferrerStateListener -import com.duckduckgo.app.referral.ParsedReferrerResult +import com.duckduckgo.app.referral.StubAppReferrerFoundStateListener import com.nhaarman.mockitokotlin2.mock import com.nhaarman.mockitokotlin2.verify import com.nhaarman.mockitokotlin2.whenever import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.delay import kotlinx.coroutines.test.runBlockingTest import org.junit.After import org.junit.Rule @@ -115,15 +113,4 @@ class LaunchViewModelTest { testee.determineViewToShow() verify(mockCommandObserver).onChanged(any(Home::class.java)) } - - class StubAppReferrerFoundStateListener(private val referrer: String, private val mockDelayMs: Long = 0) : AppInstallationReferrerStateListener { - override suspend fun waitForReferrerCode(): ParsedReferrerResult { - if (mockDelayMs > 0) delay(mockDelayMs) - - return ParsedReferrerResult.CampaignReferrerFound(referrer) - } - - override fun initialiseReferralRetrieval() { - } - } } diff --git a/app/src/androidTest/java/com/duckduckgo/app/referral/StubAppReferrerFoundStateListener.kt b/app/src/androidTest/java/com/duckduckgo/app/referral/StubAppReferrerFoundStateListener.kt new file mode 100644 index 000000000000..dc7dc804e4ae --- /dev/null +++ b/app/src/androidTest/java/com/duckduckgo/app/referral/StubAppReferrerFoundStateListener.kt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2021 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.app.referral + +import kotlinx.coroutines.delay + +class StubAppReferrerFoundStateListener(private val referrer: String, private val mockDelayMs: Long = 0) : AppInstallationReferrerStateListener { + override suspend fun waitForReferrerCode(): ParsedReferrerResult { + if (mockDelayMs > 0) delay(mockDelayMs) + + return ParsedReferrerResult.CampaignReferrerFound(referrer) + } + + override fun initialiseReferralRetrieval() { + } +} diff --git a/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt b/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt index 9f4155bb565c..10ab3a2c4b50 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt @@ -17,18 +17,16 @@ package com.duckduckgo.app.statistics import com.duckduckgo.app.referral.AppInstallationReferrerStateListener -import com.duckduckgo.app.referral.ParsedReferrerResult +import com.duckduckgo.app.referral.StubAppReferrerFoundStateListener import com.duckduckgo.app.statistics.api.StatisticsUpdater import com.duckduckgo.app.statistics.store.StatisticsDataStore import com.nhaarman.mockitokotlin2.mock import com.nhaarman.mockitokotlin2.verify import com.nhaarman.mockitokotlin2.whenever import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.delay import kotlinx.coroutines.test.runBlockingTest import org.junit.Before import org.junit.Test -import org.mockito.stubbing.Answer @ExperimentalCoroutinesApi class AtbInitializerTest { @@ -37,17 +35,17 @@ class AtbInitializerTest { private val statisticsDataStore: StatisticsDataStore = mock() private val statisticsUpdater: StatisticsUpdater = mock() - private val appReferrerStateListener: AppInstallationReferrerStateListener = mock() + private lateinit var appReferrerStateListener: AppInstallationReferrerStateListener @Before fun setup() { - testee = AtbInitializer(statisticsDataStore, statisticsUpdater, appReferrerStateListener) } @Test fun whenReferrerInformationInstantlyAvailableThenAtbInitialized() = runBlockingTest { whenever(statisticsDataStore.hasInstallationStatistics).thenReturn(false) - whenever(appReferrerStateListener.waitForReferrerCode()).thenAnswer(referrerAnswer(0)) + appReferrerStateListener = StubAppReferrerFoundStateListener(referrer = "xx") + testee = AtbInitializer(statisticsDataStore, statisticsUpdater, appReferrerStateListener) testee.initializeAfterReferrerAvailable() @@ -57,7 +55,8 @@ class AtbInitializerTest { @Test fun whenReferrerInformationQuicklyAvailableThenAtbInitialized() = runBlockingTest { whenever(statisticsDataStore.hasInstallationStatistics).thenReturn(false) - whenever(appReferrerStateListener.waitForReferrerCode()).thenAnswer(referrerAnswer(1000)) + appReferrerStateListener = StubAppReferrerFoundStateListener(referrer = "xx", mockDelayMs = 1000L) + testee = AtbInitializer(statisticsDataStore, statisticsUpdater, appReferrerStateListener) testee.initializeAfterReferrerAvailable() @@ -67,7 +66,8 @@ class AtbInitializerTest { @Test fun whenReferrerInformationTimesOutThenAtbInitialized() = runBlockingTest { whenever(statisticsDataStore.hasInstallationStatistics).thenReturn(false) - whenever(appReferrerStateListener.waitForReferrerCode()).thenAnswer(referrerAnswer(Long.MAX_VALUE)) + appReferrerStateListener = StubAppReferrerFoundStateListener(referrer = "xx", mockDelayMs = Long.MAX_VALUE) + testee = AtbInitializer(statisticsDataStore, statisticsUpdater, appReferrerStateListener) testee.initializeAfterReferrerAvailable() @@ -77,17 +77,14 @@ class AtbInitializerTest { @Test fun whenAlreadyInitializedThenRefreshCalled() = runBlockingTest { configureAlreadyInitialized() + testee = AtbInitializer(statisticsDataStore, statisticsUpdater, appReferrerStateListener) + testee.initializeAfterReferrerAvailable() verify(statisticsUpdater).refreshAppRetentionAtb() } - private suspend fun configureAlreadyInitialized() { + private fun configureAlreadyInitialized() { whenever(statisticsDataStore.hasInstallationStatistics).thenReturn(true) - whenever(appReferrerStateListener.waitForReferrerCode()).thenAnswer(referrerAnswer(0)) - } - - private suspend fun referrerAnswer(delayMs: Long): Answer { - delay(delayMs) - return Answer { ParsedReferrerResult.CampaignReferrerFound("") } + appReferrerStateListener = StubAppReferrerFoundStateListener(referrer = "xx") } } From dc1bacd2b15677598c62616f22da8c10878cff50 Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Fri, 5 Feb 2021 13:38:28 +0100 Subject: [PATCH 09/10] remove empty method --- .../java/com/duckduckgo/app/statistics/AtbInitializerTest.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt b/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt index 10ab3a2c4b50..69d87c239fa2 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt @@ -37,10 +37,6 @@ class AtbInitializerTest { private val statisticsUpdater: StatisticsUpdater = mock() private lateinit var appReferrerStateListener: AppInstallationReferrerStateListener - @Before - fun setup() { - } - @Test fun whenReferrerInformationInstantlyAvailableThenAtbInitialized() = runBlockingTest { whenever(statisticsDataStore.hasInstallationStatistics).thenReturn(false) From 6402119d6daeaa17c8bc2b75a3aa425b622b8fc3 Mon Sep 17 00:00:00 2001 From: Cristian Monforte Date: Fri, 5 Feb 2021 16:35:04 +0100 Subject: [PATCH 10/10] remove import --- .../java/com/duckduckgo/app/statistics/AtbInitializerTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt b/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt index 69d87c239fa2..188a7cd3f3dc 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/statistics/AtbInitializerTest.kt @@ -25,7 +25,6 @@ import com.nhaarman.mockitokotlin2.verify import com.nhaarman.mockitokotlin2.whenever import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runBlockingTest -import org.junit.Before import org.junit.Test @ExperimentalCoroutinesApi