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:
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)