From be7c336497c341b9b5882a6ec9bd3fb92f3a05c2 Mon Sep 17 00:00:00 2001 From: Mugurell Date: Wed, 25 May 2022 15:44:10 +0300 Subject: [PATCH] [components] For https://github.com/mozilla-mobile/android-components/issues/12184 - Stop refreshing sponsored stories if profile is deleted This also allows to easily start a "new" Worker to download stories again when `startPeriodicStoriesRefresh` whereas we'd just enqueue the existing one which may be set to only refresh the stories after a few hours still. --- .../components/service/pocket/PocketStoriesService.kt | 1 + .../components/service/pocket/PocketStoriesServiceTest.kt | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/PocketStoriesService.kt b/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/PocketStoriesService.kt index 5dccbf049650..603483346b65 100644 --- a/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/PocketStoriesService.kt +++ b/android-components/components/service/pocket/src/main/java/mozilla/components/service/pocket/PocketStoriesService.kt @@ -128,6 +128,7 @@ class PocketStoriesService( * Delete all stored user data used for downloading personalized sponsored stories. */ suspend fun deleteProfile(): Boolean { + stopPeriodicSponsoredStoriesRefresh() return spocsUseCases?.deleteProfile?.invoke() ?: false } diff --git a/android-components/components/service/pocket/src/test/java/mozilla/components/service/pocket/PocketStoriesServiceTest.kt b/android-components/components/service/pocket/src/test/java/mozilla/components/service/pocket/PocketStoriesServiceTest.kt index 72f381f1be9b..c0bccafa652c 100644 --- a/android-components/components/service/pocket/src/test/java/mozilla/components/service/pocket/PocketStoriesServiceTest.kt +++ b/android-components/components/service/pocket/src/test/java/mozilla/components/service/pocket/PocketStoriesServiceTest.kt @@ -31,6 +31,8 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito.doReturn import org.mockito.Mockito.never +import org.mockito.Mockito.spy +import org.mockito.Mockito.times import org.mockito.Mockito.verify import java.util.UUID import kotlin.reflect.KVisibility @@ -167,14 +169,16 @@ class PocketStoriesServiceTest { @Test fun `GIVEN PocketStoriesService WHEN deleteProfile THEN delegate to spocs useCases`() = runTest { - val noProfileResponse = service.deleteProfile() + val mockedService = spy(service) + val noProfileResponse = mockedService.deleteProfile() assertFalse(noProfileResponse) val deleteProfileUseCase: DeleteProfile = mock() doReturn(deleteProfileUseCase).`when`(spocsUseCases).deleteProfile doReturn(true).`when`(deleteProfileUseCase).invoke() - val existingProfileResponse = service.deleteProfile() + val existingProfileResponse = mockedService.deleteProfile() assertTrue(existingProfileResponse) + verify(mockedService, times(2)).stopPeriodicSponsoredStoriesRefresh() } @Test