@@ -21,9 +21,11 @@ import androidx.lifecycle.MutableLiveData
2121import androidx.room.Room
2222import androidx.test.ext.junit.runners.AndroidJUnit4
2323import androidx.test.platform.app.InstrumentationRegistry
24+ import com.duckduckgo.adclick.api.AdClickManager
2425import com.duckduckgo.app.browser.DuckDuckGoUrlDetector
2526import com.duckduckgo.app.browser.certificates.BypassedSSLCertificatesRepository
2627import com.duckduckgo.app.browser.favicon.FaviconManager
28+ import com.duckduckgo.app.browser.session.WebViewSessionStorage
2729import com.duckduckgo.app.browser.tabpreview.WebViewPreviewPersister
2830import com.duckduckgo.app.global.db.AppDatabase
2931import com.duckduckgo.app.global.model.SiteFactoryImpl
@@ -92,6 +94,10 @@ class TabDataRepositoryTest {
9294
9395 private val tabManagerFeatureFlags = FakeFeatureToggleFactory .create(TabManagerFeatureFlags ::class .java)
9496
97+ private val mockWebViewSessionStorage: WebViewSessionStorage = mock()
98+
99+ private val mockAdClickManager: AdClickManager = mock()
100+
95101 @Before
96102 fun before () {
97103 tabManagerFeatureFlags.multiSelection().setRawStoredState(State (enable = false ))
@@ -635,7 +641,7 @@ class TabDataRepositoryTest {
635641
636642 testee.undoDeletable(tabIds)
637643
638- verify(mockDao).undoDeletableTabs(tabIds)
644+ verify(mockDao).undoDeletableTabs(tabIds, false )
639645 }
640646
641647 @Test
@@ -660,6 +666,24 @@ class TabDataRepositoryTest {
660666 verify(mockDao).deleteTabsAndUpdateSelection(tabIds)
661667 tabIds.forEach { tabId ->
662668 assertNull(testee.retrieveSiteData(tabId).value)
669+ verify(mockWebViewSessionStorage).deleteSession(tabId)
670+ verify(mockAdClickManager).clearTabId(tabId)
671+ }
672+ }
673+
674+ @Test
675+ fun whenPurgeDeletableTabsThenPurgeDeletableTabsAndClearData () = runTest {
676+ val testee = tabDataRepository()
677+ val tabIds = listOf (" tabid1" , " tabid2" )
678+ whenever(mockDao.getDeletableTabIds()).thenReturn(tabIds)
679+
680+ testee.purgeDeletableTabs()
681+
682+ verify(mockDao).purgeDeletableTabsAndUpdateSelection()
683+ tabIds.forEach { tabId ->
684+ assertNull(testee.retrieveSiteData(tabId).value)
685+ verify(mockWebViewSessionStorage).deleteSession(tabId)
686+ verify(mockAdClickManager).clearTabId(tabId)
663687 }
664688 }
665689
@@ -693,7 +717,8 @@ class TabDataRepositoryTest {
693717 timeProvider,
694718 coroutinesTestRule.testScope,
695719 coroutinesTestRule.testDispatcherProvider,
696- tabManagerFeatureFlags,
720+ mockAdClickManager,
721+ mockWebViewSessionStorage,
697722 )
698723 }
699724
0 commit comments