tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit e2c73604ede5f93421b83319592d7b716856592e
parent bf4841e5a17c3d8851ad7597dbbe3be623ecc268
Author: mcarare <48995920+mcarare@users.noreply.github.com>
Date:   Tue, 30 Dec 2025 15:05:35 +0000

Bug 2007999 - Refactor TabsRemovedMiddlewareTest to use standard kotlinx-coroutines-test runTest. r=android-reviewers,giorga

Differential Revision: https://phabricator.services.mozilla.com/D277652

Diffstat:
Mmobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/engine/middleware/TabsRemovedMiddlewareTest.kt | 50++++++++++++++++++++++----------------------------
1 file changed, 22 insertions(+), 28 deletions(-)

diff --git a/mobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/engine/middleware/TabsRemovedMiddlewareTest.kt b/mobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/engine/middleware/TabsRemovedMiddlewareTest.kt @@ -4,6 +4,7 @@ package mozilla.components.browser.state.engine.middleware +import kotlinx.coroutines.test.runTest import mozilla.components.browser.state.action.BrowserAction import mozilla.components.browser.state.action.CustomTabListAction import mozilla.components.browser.state.action.EngineAction @@ -19,24 +20,17 @@ import mozilla.components.concept.engine.EngineSession import mozilla.components.lib.state.Middleware import mozilla.components.lib.state.Store import mozilla.components.support.test.mock -import mozilla.components.support.test.rule.MainCoroutineRule -import mozilla.components.support.test.rule.runTestOnMain import org.junit.Assert.assertNotNull import org.junit.Assert.assertNull -import org.junit.Rule import org.junit.Test import org.mockito.Mockito.never import org.mockito.Mockito.verify class TabsRemovedMiddlewareTest { - @get:Rule - val coroutinesTestRule = MainCoroutineRule() - private val dispatcher = coroutinesTestRule.testDispatcher - private val scope = coroutinesTestRule.scope @Test - fun `closes and unlinks engine session when tab is removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when tab is removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab = createTab("https://www.mozilla.org", id = "1") val store = BrowserStore( @@ -46,15 +40,15 @@ class TabsRemovedMiddlewareTest { val engineSession = linkEngineSession(store, tab.id) store.dispatch(TabListAction.RemoveTabAction(tab.id)) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findTab(tab.id)?.engineState?.engineSession) verify(engineSession).close() } @Test - fun `closes and unlinks engine session when list of tabs are removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when list of tabs are removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab1 = createTab("https://www.mozilla.org", id = "1", private = false) val tab2 = createTab("https://www.firefox.com", id = "2", private = false) @@ -70,7 +64,7 @@ class TabsRemovedMiddlewareTest { val engineSession3 = linkEngineSession(store, tab3.id) store.dispatch(TabListAction.RemoveTabsAction(listOf(tab1.id, tab2.id))) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findTab(tab1.id)?.engineState?.engineSession) assertNull(store.state.findTab(tab2.id)?.engineState?.engineSession) @@ -81,8 +75,8 @@ class TabsRemovedMiddlewareTest { } @Test - fun `closes and unlinks engine session when all normal tabs are removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when all normal tabs are removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab1 = createTab("https://www.mozilla.org", id = "1", private = false) val tab2 = createTab("https://www.firefox.com", id = "2", private = false) @@ -97,7 +91,7 @@ class TabsRemovedMiddlewareTest { val engineSession3 = linkEngineSession(store, tab3.id) store.dispatch(TabListAction.RemoveAllNormalTabsAction) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findTab(tab1.id)?.engineState?.engineSession) assertNull(store.state.findTab(tab2.id)?.engineState?.engineSession) @@ -108,8 +102,8 @@ class TabsRemovedMiddlewareTest { } @Test - fun `closes and unlinks engine session when all private tabs are removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when all private tabs are removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab1 = createTab("https://www.mozilla.org", id = "1", private = true) val tab2 = createTab("https://www.firefox.com", id = "2", private = true) @@ -124,7 +118,7 @@ class TabsRemovedMiddlewareTest { val engineSession3 = linkEngineSession(store, tab3.id) store.dispatch(TabListAction.RemoveAllPrivateTabsAction) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findTab(tab1.id)?.engineState?.engineSession) assertNull(store.state.findTab(tab2.id)?.engineState?.engineSession) @@ -135,8 +129,8 @@ class TabsRemovedMiddlewareTest { } @Test - fun `closes and unlinks engine session when all tabs are removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when all tabs are removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab1 = createTab("https://www.mozilla.org", id = "1", private = true) val tab2 = createTab("https://www.firefox.com", id = "2", private = false) @@ -151,7 +145,7 @@ class TabsRemovedMiddlewareTest { val engineSession3 = linkEngineSession(store, tab3.id) store.dispatch(TabListAction.RemoveAllTabsAction()) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findTab(tab1.id)?.engineState?.engineSession) assertNull(store.state.findTab(tab2.id)?.engineState?.engineSession) @@ -162,8 +156,8 @@ class TabsRemovedMiddlewareTest { } @Test - fun `closes and unlinks engine session when custom tab is removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when custom tab is removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab = createCustomTab("https://www.mozilla.org", id = "1") val store = BrowserStore( @@ -173,15 +167,15 @@ class TabsRemovedMiddlewareTest { val engineSession = linkEngineSession(store, tab.id) store.dispatch(CustomTabListAction.RemoveCustomTabAction(tab.id)) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findTab(tab.id)?.engineState?.engineSession) verify(engineSession).close() } @Test - fun `closes and unlinks engine session when all custom tabs are removed`() = runTestOnMain { - val middleware = TabsRemovedMiddleware(scope) + fun `closes and unlinks engine session when all custom tabs are removed`() = runTest { + val middleware = TabsRemovedMiddleware(this) val tab1 = createCustomTab("https://www.mozilla.org", id = "1") val tab2 = createCustomTab("https://www.firefox.com", id = "2") @@ -196,7 +190,7 @@ class TabsRemovedMiddlewareTest { val engineSession3 = linkEngineSession(store, tab3.id) store.dispatch(CustomTabListAction.RemoveAllCustomTabsAction) - dispatcher.scheduler.advanceUntilIdle() + testScheduler.advanceUntilIdle() assertNull(store.state.findCustomTab(tab1.id)?.engineState?.engineSession) assertNull(store.state.findCustomTab(tab2.id)?.engineState?.engineSession)