diff --git a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuit.kt b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuit.kt index 63b7e14c9..6f87de29d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuit.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuit.kt @@ -26,6 +26,7 @@ fun deleteAndQuit(activity: Activity, coroutineScope: CoroutineScope, snackbar: activity.components.useCases.tabsUseCases.removeAllTabs, activity.components.core.historyStorage, activity.components.core.permissionStorage, + activity.components.core.icons, activity.components.core.engine, coroutineContext ) diff --git a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataController.kt b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataController.kt index 200244cb8..575e8e969 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataController.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataController.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.settings.deletebrowsingdata import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import mozilla.components.browser.icons.BrowserIcons import mozilla.components.concept.engine.Engine import mozilla.components.concept.storage.HistoryStorage import mozilla.components.feature.tabs.TabsUseCases @@ -24,6 +25,7 @@ class DefaultDeleteBrowsingDataController( private val removeAllTabs: TabsUseCases.RemoveAllTabsUseCase, private val historyStorage: HistoryStorage, private val permissionStorage: PermissionStorage, + private val iconsStorage: BrowserIcons, private val engine: Engine, private val coroutineContext: CoroutineContext = Dispatchers.Main ) : DeleteBrowsingDataController { @@ -38,6 +40,7 @@ class DefaultDeleteBrowsingDataController( withContext(coroutineContext) { engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES)) historyStorage.deleteEverything() + iconsStorage.clear() } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt index 551341144..36081afcc 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt @@ -45,6 +45,7 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da requireContext().components.useCases.tabsUseCases.removeAllTabs, requireContext().components.core.historyStorage, requireContext().components.core.permissionStorage, + requireContext().components.core.icons, requireContext().components.core.engine ) settings = requireContext().settings() diff --git a/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DefaultDeleteBrowsingDataControllerTest.kt b/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DefaultDeleteBrowsingDataControllerTest.kt index 50be4f470..038d4be4f 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DefaultDeleteBrowsingDataControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DefaultDeleteBrowsingDataControllerTest.kt @@ -4,13 +4,15 @@ package org.mozilla.fenix.settings.deletebrowsingdata +import io.mockk.coVerify import io.mockk.mockk +import io.mockk.spyk import io.mockk.verify import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.GlobalScope.coroutineContext -import kotlinx.coroutines.launch import kotlinx.coroutines.test.TestCoroutineDispatcher import kotlinx.coroutines.test.runBlockingTest +import mozilla.components.browser.icons.BrowserIcons import mozilla.components.concept.engine.Engine import mozilla.components.concept.storage.HistoryStorage import mozilla.components.feature.tabs.TabsUseCases @@ -29,6 +31,7 @@ class DefaultDeleteBrowsingDataControllerTest { private var removeAllTabs: TabsUseCases.RemoveAllTabsUseCase = mockk(relaxed = true) private var historyStorage: HistoryStorage = mockk(relaxed = true) private var permissionStorage: PermissionStorage = mockk(relaxed = true) + private var iconsStorage: BrowserIcons = mockk(relaxed = true) private val engine: Engine = mockk(relaxed = true) private lateinit var controller: DefaultDeleteBrowsingDataController @@ -38,6 +41,7 @@ class DefaultDeleteBrowsingDataControllerTest { removeAllTabs = removeAllTabs, historyStorage = historyStorage, permissionStorage = permissionStorage, + iconsStorage = iconsStorage, engine = engine, coroutineContext = coroutineContext ) @@ -55,12 +59,14 @@ class DefaultDeleteBrowsingDataControllerTest { @Test fun deleteBrowsingData() = runBlockingTest { + controller = spyk(controller) controller.deleteBrowsingData() - verify { + coVerify { engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES)) + historyStorage.deleteEverything() + iconsStorage.clear() } - verify { launch { historyStorage.deleteEverything() } } } @Test diff --git a/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt b/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt index 3e3caad62..5ae94620c 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteAndQuitTest.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.settings.deletebrowsingdata +import io.mockk.coVerify import io.mockk.every import io.mockk.mockk import io.mockk.verify @@ -13,6 +14,7 @@ import io.mockk.verifyOrder import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestCoroutineDispatcher import kotlinx.coroutines.test.runBlockingTest +import mozilla.components.browser.icons.BrowserIcons import mozilla.components.browser.storage.sync.PlacesHistoryStorage import mozilla.components.concept.engine.Engine import mozilla.components.feature.tabs.TabsUseCases @@ -41,6 +43,7 @@ class DeleteAndQuitTest { private val tabUseCases: TabsUseCases = mockk(relaxed = true) private val historyStorage: PlacesHistoryStorage = mockk(relaxed = true) private val permissionStorage: PermissionStorage = mockk(relaxed = true) + private val iconsStorage: BrowserIcons = mockk() private val engine: Engine = mockk(relaxed = true) private val removeAllTabsUseCases: TabsUseCases.RemoveAllTabsUseCase = mockk(relaxed = true) private val snackbar = mockk(relaxed = true) @@ -53,6 +56,7 @@ class DeleteAndQuitTest { every { tabUseCases.removeAllTabs } returns removeAllTabsUseCases every { activity.components.core.engine } returns engine every { activity.components.settings } returns settings + every { activity.components.core.icons } returns iconsStorage } @Test @@ -69,8 +73,6 @@ class DeleteAndQuitTest { } verify(exactly = 0) { - historyStorage - engine.clearData( Engine.BrowsingData.select( Engine.BrowsingData.COOKIES @@ -81,6 +83,11 @@ class DeleteAndQuitTest { engine.clearData(Engine.BrowsingData.allCaches()) } + + coVerify(exactly = 0) { + historyStorage.deleteEverything() + iconsStorage.clear() + } } @Ignore("Intermittently failing; will be fixed with #5406.") @@ -115,9 +122,12 @@ class DeleteAndQuitTest { engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES)) - historyStorage - activity.finish() } + + coVerify { + historyStorage.deleteEverything() + iconsStorage.clear() + } } }