tor-browser

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

commit 0a4af333097db749a73108dcbfdbe062aa1cc2b9
parent 3636c2273492455c8167fc9fc00ba82b7de9569d
Author: Ted Campbell <tcampbell@mozilla.com>
Date:   Thu,  8 Jan 2026 15:38:45 +0000

Bug 2008762 - Avoid mocking data classes in focus-android. r=mcarare,android-reviewers

For the AppReducerTest replace the verify calls with assert{Same,NotSame} checks.

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

Diffstat:
Mmobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt | 8++++----
Mmobile/android/focus-android/app/src/test/java/org/mozilla/focus/state/AppReducerTest.kt | 37++++++++++++++++++-------------------
2 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/cfr/CfrMiddlewareTest.kt @@ -43,7 +43,6 @@ class CfrMiddlewareTest { @Mock private lateinit var appStore: AppStore - @Mock private lateinit var appState: AppState @Mock @@ -63,8 +62,9 @@ class CfrMiddlewareTest { whenever(settings.isCookieBannerEnable).thenReturn(true) whenever(settings.getCurrentCookieBannerOptionFromSharePref()).thenReturn(CookieBannerOption.CookieBannerRejectAll()) - whenever(appStore.state).thenReturn(appState) - whenever(appState.showEraseTabsCfr).thenReturn(false) + val defaultScreen = org.mozilla.focus.state.Screen.Home + appState = AppState(screen = defaultScreen, showEraseTabsCfr = false) + whenever(appStore.state).thenAnswer { appState } cfrMiddleware = spy(CfrMiddleware(appStore, settings) { onboardingExperiment }) @@ -192,7 +192,7 @@ class CfrMiddlewareTest { @Test fun `GIVEN erase tabs CFR is shown WHEN TrackerBlockedAction is intercepted THEN showTrackingProtectionCfr is not dispatched`() { - whenever(appState.showEraseTabsCfr).thenReturn(true) + appState = appState.copy(showEraseTabsCfr = true) doReturn(false).`when`(cfrMiddleware).isMozillaUrl(any()) val tab = createTab(tabId = 1, isSecure = true) diff --git a/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/state/AppReducerTest.kt b/mobile/android/focus-android/app/src/test/java/org/mozilla/focus/state/AppReducerTest.kt @@ -1,84 +1,83 @@ package org.mozilla.focus.state import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotSame +import org.junit.Assert.assertSame import org.junit.Test -import org.mockito.Mockito.never -import org.mockito.Mockito.spy -import org.mockito.Mockito.verify class AppReducerTest { @Test fun `test showFirstRun() should return the correct state when in other screen than FirstRun`() { - val initialState = spy(AppState(screen = Screen.Home)) + val initialState = AppState(screen = Screen.Home) val expectedState = showFirstRun(initialState) - verify(initialState).copy(screen = Screen.FirstRun) + assertNotSame(initialState, expectedState) assertEquals(Screen.FirstRun, expectedState.screen) } @Test fun `test showFirstRun() should return the correct state when already in FirstRun`() { - val initialState = spy(AppState(screen = Screen.FirstRun)) + val initialState = AppState(screen = Screen.FirstRun) val expectedState = showFirstRun(initialState) - verify(initialState, never()).copy(screen = Screen.FirstRun) + assertSame(initialState, expectedState) assertEquals(Screen.FirstRun, expectedState.screen) } @Test fun `test showOnBoardingSecondScreen() should return the correct state when in other screen than OnboardingSecondScreen`() { - val initialState = spy(AppState(screen = Screen.Home)) + val initialState = AppState(screen = Screen.Home) val expectedState = showOnBoardingSecondScreen(initialState) - verify(initialState).copy(screen = Screen.OnboardingSecondScreen) + assertNotSame(initialState, expectedState) assertEquals(Screen.OnboardingSecondScreen, expectedState.screen) } @Test fun `test showOnBoardingSecondScreen() should return the correct state when already in OnboardingSecondScreen`() { - val initialState = spy(AppState(screen = Screen.OnboardingSecondScreen)) + val initialState = AppState(screen = Screen.OnboardingSecondScreen) val expectedState = showOnBoardingSecondScreen(initialState) - verify(initialState, never()).copy(screen = Screen.OnboardingSecondScreen) + assertSame(initialState, expectedState) assertEquals(Screen.OnboardingSecondScreen, expectedState.screen) } @Test fun `test showHomeScreen() should return the correct state when in other screen than Home`() { - val initialState = spy(AppState(screen = Screen.Browser(tabId = "tab1", showTabs = true))) + val initialState = AppState(screen = Screen.Browser(tabId = "tab1", showTabs = true)) val expectedState = showHomeScreen(initialState) - verify(initialState).copy(screen = Screen.Home) + assertNotSame(initialState, expectedState) assertEquals(Screen.Home, expectedState.screen) } @Test fun `test showHomeScreen() should return the correct state when already in Home`() { - val initialState = spy(AppState(screen = Screen.Home)) + val initialState = AppState(screen = Screen.Home) val expectedState = showHomeScreen(initialState) - verify(initialState, never()).copy(screen = Screen.Home) + assertSame(initialState, expectedState) assertEquals(Screen.Home, expectedState.screen) } @Test fun `test lock() should return the correct state when in other screen than Locked`() { - val initialState = spy(AppState(screen = Screen.Home)) + val initialState = AppState(screen = Screen.Home) val action = AppAction.Lock() val expectedState = lock(initialState, action) - verify(initialState).copy(screen = Screen.Locked()) + assertNotSame(initialState, expectedState) assertEquals(Screen.Locked(bundle = null), expectedState.screen) } @Test fun `test lock() should return the correct state when already in Locked`() { - val initialState = spy(AppState(screen = Screen.Locked())) + val initialState = AppState(screen = Screen.Locked()) val action = AppAction.Lock() val expectedState = lock(initialState, action) - verify(initialState, never()).copy(screen = Screen.Locked()) + assertSame(initialState, expectedState) assertEquals(Screen.Locked(), expectedState.screen) } }