[fenix] For https://github.com/mozilla-mobile/fenix/issues/12980 - Clear icons when deleting browsing data

pull/600/head
Mugurell 4 years ago committed by Mihai Adrian Carare
parent 6a06883e22
commit b6d41cc860

@ -26,6 +26,7 @@ fun deleteAndQuit(activity: Activity, coroutineScope: CoroutineScope, snackbar:
activity.components.useCases.tabsUseCases.removeAllTabs, activity.components.useCases.tabsUseCases.removeAllTabs,
activity.components.core.historyStorage, activity.components.core.historyStorage,
activity.components.core.permissionStorage, activity.components.core.permissionStorage,
activity.components.core.icons,
activity.components.core.engine, activity.components.core.engine,
coroutineContext coroutineContext
) )

@ -6,6 +6,7 @@ package org.mozilla.fenix.settings.deletebrowsingdata
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import mozilla.components.browser.icons.BrowserIcons
import mozilla.components.concept.engine.Engine import mozilla.components.concept.engine.Engine
import mozilla.components.concept.storage.HistoryStorage import mozilla.components.concept.storage.HistoryStorage
import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.feature.tabs.TabsUseCases
@ -24,6 +25,7 @@ class DefaultDeleteBrowsingDataController(
private val removeAllTabs: TabsUseCases.RemoveAllTabsUseCase, private val removeAllTabs: TabsUseCases.RemoveAllTabsUseCase,
private val historyStorage: HistoryStorage, private val historyStorage: HistoryStorage,
private val permissionStorage: PermissionStorage, private val permissionStorage: PermissionStorage,
private val iconsStorage: BrowserIcons,
private val engine: Engine, private val engine: Engine,
private val coroutineContext: CoroutineContext = Dispatchers.Main private val coroutineContext: CoroutineContext = Dispatchers.Main
) : DeleteBrowsingDataController { ) : DeleteBrowsingDataController {
@ -38,6 +40,7 @@ class DefaultDeleteBrowsingDataController(
withContext(coroutineContext) { withContext(coroutineContext) {
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES)) engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
historyStorage.deleteEverything() historyStorage.deleteEverything()
iconsStorage.clear()
} }
} }

@ -45,6 +45,7 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
requireContext().components.useCases.tabsUseCases.removeAllTabs, requireContext().components.useCases.tabsUseCases.removeAllTabs,
requireContext().components.core.historyStorage, requireContext().components.core.historyStorage,
requireContext().components.core.permissionStorage, requireContext().components.core.permissionStorage,
requireContext().components.core.icons,
requireContext().components.core.engine requireContext().components.core.engine
) )
settings = requireContext().settings() settings = requireContext().settings()

@ -4,13 +4,15 @@
package org.mozilla.fenix.settings.deletebrowsingdata package org.mozilla.fenix.settings.deletebrowsingdata
import io.mockk.coVerify
import io.mockk.mockk import io.mockk.mockk
import io.mockk.spyk
import io.mockk.verify import io.mockk.verify
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.GlobalScope.coroutineContext import kotlinx.coroutines.GlobalScope.coroutineContext
import kotlinx.coroutines.launch
import kotlinx.coroutines.test.TestCoroutineDispatcher import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.runBlockingTest
import mozilla.components.browser.icons.BrowserIcons
import mozilla.components.concept.engine.Engine import mozilla.components.concept.engine.Engine
import mozilla.components.concept.storage.HistoryStorage import mozilla.components.concept.storage.HistoryStorage
import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.feature.tabs.TabsUseCases
@ -29,6 +31,7 @@ class DefaultDeleteBrowsingDataControllerTest {
private var removeAllTabs: TabsUseCases.RemoveAllTabsUseCase = mockk(relaxed = true) private var removeAllTabs: TabsUseCases.RemoveAllTabsUseCase = mockk(relaxed = true)
private var historyStorage: HistoryStorage = mockk(relaxed = true) private var historyStorage: HistoryStorage = mockk(relaxed = true)
private var permissionStorage: PermissionStorage = 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 val engine: Engine = mockk(relaxed = true)
private lateinit var controller: DefaultDeleteBrowsingDataController private lateinit var controller: DefaultDeleteBrowsingDataController
@ -38,6 +41,7 @@ class DefaultDeleteBrowsingDataControllerTest {
removeAllTabs = removeAllTabs, removeAllTabs = removeAllTabs,
historyStorage = historyStorage, historyStorage = historyStorage,
permissionStorage = permissionStorage, permissionStorage = permissionStorage,
iconsStorage = iconsStorage,
engine = engine, engine = engine,
coroutineContext = coroutineContext coroutineContext = coroutineContext
) )
@ -55,12 +59,14 @@ class DefaultDeleteBrowsingDataControllerTest {
@Test @Test
fun deleteBrowsingData() = runBlockingTest { fun deleteBrowsingData() = runBlockingTest {
controller = spyk(controller)
controller.deleteBrowsingData() controller.deleteBrowsingData()
verify { coVerify {
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES)) engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
historyStorage.deleteEverything()
iconsStorage.clear()
} }
verify { launch { historyStorage.deleteEverything() } }
} }
@Test @Test

@ -6,6 +6,7 @@
package org.mozilla.fenix.settings.deletebrowsingdata package org.mozilla.fenix.settings.deletebrowsingdata
import io.mockk.coVerify
import io.mockk.every import io.mockk.every
import io.mockk.mockk import io.mockk.mockk
import io.mockk.verify import io.mockk.verify
@ -13,6 +14,7 @@ import io.mockk.verifyOrder
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestCoroutineDispatcher import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.runBlockingTest
import mozilla.components.browser.icons.BrowserIcons
import mozilla.components.browser.storage.sync.PlacesHistoryStorage import mozilla.components.browser.storage.sync.PlacesHistoryStorage
import mozilla.components.concept.engine.Engine import mozilla.components.concept.engine.Engine
import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.feature.tabs.TabsUseCases
@ -41,6 +43,7 @@ class DeleteAndQuitTest {
private val tabUseCases: TabsUseCases = mockk(relaxed = true) private val tabUseCases: TabsUseCases = mockk(relaxed = true)
private val historyStorage: PlacesHistoryStorage = mockk(relaxed = true) private val historyStorage: PlacesHistoryStorage = mockk(relaxed = true)
private val permissionStorage: PermissionStorage = mockk(relaxed = true) private val permissionStorage: PermissionStorage = mockk(relaxed = true)
private val iconsStorage: BrowserIcons = mockk()
private val engine: Engine = mockk(relaxed = true) private val engine: Engine = mockk(relaxed = true)
private val removeAllTabsUseCases: TabsUseCases.RemoveAllTabsUseCase = mockk(relaxed = true) private val removeAllTabsUseCases: TabsUseCases.RemoveAllTabsUseCase = mockk(relaxed = true)
private val snackbar = mockk<FenixSnackbar>(relaxed = true) private val snackbar = mockk<FenixSnackbar>(relaxed = true)
@ -53,6 +56,7 @@ class DeleteAndQuitTest {
every { tabUseCases.removeAllTabs } returns removeAllTabsUseCases every { tabUseCases.removeAllTabs } returns removeAllTabsUseCases
every { activity.components.core.engine } returns engine every { activity.components.core.engine } returns engine
every { activity.components.settings } returns settings every { activity.components.settings } returns settings
every { activity.components.core.icons } returns iconsStorage
} }
@Test @Test
@ -69,8 +73,6 @@ class DeleteAndQuitTest {
} }
verify(exactly = 0) { verify(exactly = 0) {
historyStorage
engine.clearData( engine.clearData(
Engine.BrowsingData.select( Engine.BrowsingData.select(
Engine.BrowsingData.COOKIES Engine.BrowsingData.COOKIES
@ -81,6 +83,11 @@ class DeleteAndQuitTest {
engine.clearData(Engine.BrowsingData.allCaches()) engine.clearData(Engine.BrowsingData.allCaches())
} }
coVerify(exactly = 0) {
historyStorage.deleteEverything()
iconsStorage.clear()
}
} }
@Ignore("Intermittently failing; will be fixed with #5406.") @Ignore("Intermittently failing; will be fixed with #5406.")
@ -115,9 +122,12 @@ class DeleteAndQuitTest {
engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES)) engine.clearData(Engine.BrowsingData.select(Engine.BrowsingData.DOM_STORAGES))
historyStorage
activity.finish() activity.finish()
} }
coVerify {
historyStorage.deleteEverything()
iconsStorage.clear()
}
} }
} }

Loading…
Cancel
Save