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