brizental pushed to branch tor-browser-153.0esr-16.0-1 at The Tor Project / Applications / Tor Browser
Commits:
-
eac41a90
by Beatriz Rizental at 2026-07-28T16:18:31+02:00
-
94f970fe
by Beatriz Rizental at 2026-07-28T16:18:31+02:00
-
5202d68f
by Beatriz Rizental at 2026-07-28T16:18:31+02:00
-
de1a09f1
by Beatriz Rizental at 2026-07-28T16:18:31+02:00
-
092ce022
by Beatriz Rizental at 2026-07-28T16:18:31+02:00
-
a054fea8
by Beatriz Rizental at 2026-07-28T16:18:31+02:00
7 changed files:
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/bookmarks/BookmarksMiddlewareTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/menu/compose/MainMenuTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/MetricsUtilsTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/setup/store/ChecklistItemTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/DefaultCookieBannerDetailsControllerTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/tabstray/TabManagerCfrControllerTest.kt
Changes:
| ... | ... | @@ -1230,31 +1230,8 @@ class BookmarksMiddlewareTest { |
| 1230 | 1230 | assertFalse(exited)
|
| 1231 | 1231 | }
|
| 1232 | 1232 | |
| 1233 | - @Test
|
|
| 1234 | - fun `GIVEN current screen is an empty list and the top-level is loaded WHEN sign into sync is clicked THEN navigate to sign into sync `() =
|
|
| 1235 | - runTest {
|
|
| 1236 | - coEvery {
|
|
| 1237 | - bookmarksStorage.countBookmarksInTrees(
|
|
| 1238 | - listOf(
|
|
| 1239 | - BookmarkRoot.Menu.id,
|
|
| 1240 | - BookmarkRoot.Toolbar.id,
|
|
| 1241 | - BookmarkRoot.Unfiled.id,
|
|
| 1242 | - ),
|
|
| 1243 | - )
|
|
| 1244 | - } returns 0u
|
|
| 1245 | - coEvery { bookmarksStorage.getTree(BookmarkRoot.Mobile.id) } returns Result.success(
|
|
| 1246 | - generateBookmarkTree(),
|
|
| 1247 | - )
|
|
| 1248 | - var navigated = false
|
|
| 1249 | - navigateToSignIntoSync = { navigated = true }
|
|
| 1250 | - val middleware = buildMiddleware(this)
|
|
| 1251 | - val store = middleware.makeStore()
|
|
| 1252 | - testScheduler.advanceUntilIdle()
|
|
| 1253 | - |
|
| 1254 | - store.dispatch(SignIntoSyncClicked)
|
|
| 1255 | - |
|
| 1256 | - assertTrue(navigated)
|
|
| 1257 | - }
|
|
| 1233 | + // tor-browser#44098: sign-into-sync from bookmarks was removed, along with the
|
|
| 1234 | + // SignIntoSyncClicked action this test used to dispatch.
|
|
| 1258 | 1235 | |
| 1259 | 1236 | @Test
|
| 1260 | 1237 | fun `GIVEN current screen is a subfolder WHEN close is clicked THEN exit bookmarks `() =
|
| ... | ... | @@ -94,6 +94,7 @@ class MainMenuTest { |
| 94 | 94 | onIPProtectionClick = {},
|
| 95 | 95 | onIPProtectionNavigate = {},
|
| 96 | 96 | onShareButtonClick = {},
|
| 97 | + onNewCircuitButtonClick = {},
|
|
| 97 | 98 | extensionsMenuItemDescription = null,
|
| 98 | 99 | moreSettingsSubmenu = {},
|
| 99 | 100 | extensionSubmenu = {},
|
| ... | ... | @@ -4,7 +4,6 @@ |
| 4 | 4 | |
| 5 | 5 | package org.mozilla.fenix.components.metrics
|
| 6 | 6 | |
| 7 | -import com.google.android.gms.ads.identifier.AdvertisingIdClient
|
|
| 8 | 7 | import com.google.android.gms.common.GooglePlayServicesNotAvailableException
|
| 9 | 8 | import com.google.android.gms.common.GooglePlayServicesRepairableException
|
| 10 | 9 | import io.mockk.every
|
| ... | ... | @@ -13,6 +12,7 @@ import kotlinx.coroutines.test.runTest |
| 13 | 12 | import org.junit.Assert.assertArrayEquals
|
| 14 | 13 | import org.junit.Assert.assertEquals
|
| 15 | 14 | import org.junit.Assert.assertNull
|
| 15 | +import org.junit.Ignore
|
|
| 16 | 16 | import org.junit.Test
|
| 17 | 17 | import java.io.IOException
|
| 18 | 18 | |
| ... | ... | @@ -34,21 +34,18 @@ class MetricsUtilsTest { |
| 34 | 34 | |
| 35 | 35 | @Test
|
| 36 | 36 | fun `getAdvertisingID() returns null if the API returns null info`() {
|
| 37 | - val mockInfo: AdvertisingIdClient.Info = mockk()
|
|
| 38 | - every { mockInfo.id } returns null
|
|
| 39 | - |
|
| 40 | - assertNull(MetricsUtils.getAdvertisingID { mockInfo.id })
|
|
| 37 | + assertNull(MetricsUtils.getAdvertisingID { null })
|
|
| 41 | 38 | }
|
| 42 | 39 | |
| 40 | + @Ignore("tor-browser#40014: the Google Advertising ID is neutered, so getAdvertisingID() always returns null")
|
|
| 43 | 41 | @Test
|
| 44 | 42 | fun `getAdvertisingID() returns a valid string if the API returns a valid ID`() {
|
| 45 | 43 | val testId = "test-value-id"
|
| 46 | - val mockInfo: AdvertisingIdClient.Info = mockk()
|
|
| 47 | - every { mockInfo.id } returns testId
|
|
| 48 | 44 | |
| 49 | - assertEquals(testId, MetricsUtils.getAdvertisingID({ mockInfo.id }))
|
|
| 45 | + assertEquals(testId, MetricsUtils.getAdvertisingID({ testId }))
|
|
| 50 | 46 | }
|
| 51 | 47 | |
| 48 | + @Ignore("tor-browser#40014: getHashedIdentifier() derives from getAdvertisingID(), which always returns null")
|
|
| 52 | 49 | @Test
|
| 53 | 50 | fun `getHashedIdentifier() returns a hashed identifier`() = runTest {
|
| 54 | 51 | val testId = "test-value-id"
|
| ... | ... | @@ -224,7 +224,7 @@ class BrowserToolbarMiddlewareTest { |
| 224 | 224 | coEvery { bookmarksStorage.getBookmarksWithUrl(any()) } returns Result.success(listOf(mockk()))
|
| 225 | 225 | settings.shouldUseBottomToolbar = false
|
| 226 | 226 | settings.shouldUseExpandedToolbar = false
|
| 227 | - settings.isTabStripEnabled = false
|
|
| 227 | + // settings.isTabStripEnabled = false
|
|
| 228 | 228 | }
|
| 229 | 229 | |
| 230 | 230 | @Test
|
| ... | ... | @@ -1266,7 +1266,7 @@ class BrowserToolbarMiddlewareTest { |
| 1266 | 1266 | |
| 1267 | 1267 | @Test
|
| 1268 | 1268 | fun `GIVEN on a small screen with tabstrip is disabled and not using the extended layout THEN don't show a share button as page end action`() {
|
| 1269 | - settings.isTabStripEnabled = false
|
|
| 1269 | + // settings.isTabStripEnabled = false
|
|
| 1270 | 1270 | settings.shouldUseExpandedToolbar = false
|
| 1271 | 1271 | |
| 1272 | 1272 | val browserScreenStore = buildBrowserScreenStore()
|
| ... | ... | @@ -1278,7 +1278,7 @@ class BrowserToolbarMiddlewareTest { |
| 1278 | 1278 | |
| 1279 | 1279 | @Test
|
| 1280 | 1280 | fun `GIVEN on a wide screen with tabstrip is disabled THEN show a share button as page end action`() {
|
| 1281 | - settings.isTabStripEnabled = false
|
|
| 1281 | + // settings.isTabStripEnabled = false
|
|
| 1282 | 1282 | val browserScreenStore = buildBrowserScreenStore()
|
| 1283 | 1283 | val middleware = buildMiddleware(
|
| 1284 | 1284 | browserScreenStore = browserScreenStore,
|
| ... | ... | @@ -1292,7 +1292,7 @@ class BrowserToolbarMiddlewareTest { |
| 1292 | 1292 | |
| 1293 | 1293 | @Test
|
| 1294 | 1294 | fun `GIVEN on a large screen with tabstrip is enabled THEN don't show a share button as page end action`() {
|
| 1295 | - settings.isTabStripEnabled = true
|
|
| 1295 | + // settings.isTabStripEnabled = true
|
|
| 1296 | 1296 | val browserScreenStore = buildBrowserScreenStore()
|
| 1297 | 1297 | val middleware = buildMiddleware(appStore, browserScreenStore)
|
| 1298 | 1298 | val toolbarStore = buildStore(middleware)
|
| ... | ... | @@ -1302,7 +1302,7 @@ class BrowserToolbarMiddlewareTest { |
| 1302 | 1302 | |
| 1303 | 1303 | @Test
|
| 1304 | 1304 | fun `GIVEN the current tab shows a content page WHEN the share shortcut is clicked THEN record telemetry and start sharing the local resource`() = runTest(testDispatcher) {
|
| 1305 | - settings.isTabStripEnabled = true
|
|
| 1305 | + // settings.isTabStripEnabled = true
|
|
| 1306 | 1306 | settings.shouldUseExpandedToolbar = false
|
| 1307 | 1307 | settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value
|
| 1308 | 1308 | val browserScreenStore = buildBrowserScreenStore()
|
| ... | ... | @@ -1337,7 +1337,7 @@ class BrowserToolbarMiddlewareTest { |
| 1337 | 1337 | |
| 1338 | 1338 | @Test
|
| 1339 | 1339 | fun `GIVEN the current tab shows a remote PDF WHEN the share shortcut is clicked THEN record telemetry and start sharing the remote resource`() {
|
| 1340 | - settings.isTabStripEnabled = true
|
|
| 1340 | + // settings.isTabStripEnabled = true
|
|
| 1341 | 1341 | settings.shouldUseExpandedToolbar = false
|
| 1342 | 1342 | settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value
|
| 1343 | 1343 | val browserScreenStore = buildBrowserScreenStore()
|
| ... | ... | @@ -1382,7 +1382,7 @@ class BrowserToolbarMiddlewareTest { |
| 1382 | 1382 | |
| 1383 | 1383 | @Test
|
| 1384 | 1384 | fun `GIVEN the current tab shows a normal webpage WHEN the share shortcut is clicked THEN record telemetry and open the share dialog`() {
|
| 1385 | - settings.isTabStripEnabled = true
|
|
| 1385 | + // settings.isTabStripEnabled = true
|
|
| 1386 | 1386 | settings.shouldUseExpandedToolbar = false
|
| 1387 | 1387 | settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value
|
| 1388 | 1388 | settings.nativeShareSheetEnabled = false
|
| ... | ... | @@ -1430,7 +1430,7 @@ class BrowserToolbarMiddlewareTest { |
| 1430 | 1430 | |
| 1431 | 1431 | @Test
|
| 1432 | 1432 | fun `WHEN the share shortcut is clicked THEN the share use case is invoked with the current tab's details`() {
|
| 1433 | - settings.isTabStripEnabled = true
|
|
| 1433 | + // settings.isTabStripEnabled = true
|
|
| 1434 | 1434 | settings.shouldUseExpandedToolbar = false
|
| 1435 | 1435 | settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value
|
| 1436 | 1436 | |
| ... | ... | @@ -1471,7 +1471,7 @@ class BrowserToolbarMiddlewareTest { |
| 1471 | 1471 | @Test
|
| 1472 | 1472 | fun `GIVEN on a small width with tabstrip is enabled and not using the extended layout THEN don't show a share button as browser end action`() {
|
| 1473 | 1473 | settings.shouldUseExpandedToolbar = false
|
| 1474 | - settings.isTabStripEnabled = true
|
|
| 1474 | + // settings.isTabStripEnabled = true
|
|
| 1475 | 1475 | val browserScreenStore = buildBrowserScreenStore()
|
| 1476 | 1476 | val middleware = buildMiddleware(
|
| 1477 | 1477 | browserScreenStore = browserScreenStore,
|
| ... | ... | @@ -1491,7 +1491,7 @@ class BrowserToolbarMiddlewareTest { |
| 1491 | 1491 | |
| 1492 | 1492 | @Test
|
| 1493 | 1493 | fun `GIVEN expanded toolbar with tabstrip and tall window WHEN changing to short window THEN show new tab, tab counter and menu`() = runTest(testDispatcher) {
|
| 1494 | - settings.isTabStripEnabled = true
|
|
| 1494 | + // settings.isTabStripEnabled = true
|
|
| 1495 | 1495 | settings.shouldUseExpandedToolbar = true
|
| 1496 | 1496 | val browserScreenStore = buildBrowserScreenStore()
|
| 1497 | 1497 | var isWideScreen = false
|
| ... | ... | @@ -1526,7 +1526,7 @@ class BrowserToolbarMiddlewareTest { |
| 1526 | 1526 | |
| 1527 | 1527 | @Test
|
| 1528 | 1528 | fun `GIVEN on a wide window with tabstrip and extended layout enabled THEN don't show a share button as browser end action`() {
|
| 1529 | - settings.isTabStripEnabled = true
|
|
| 1529 | + // settings.isTabStripEnabled = true
|
|
| 1530 | 1530 | settings.shouldUseExpandedToolbar = true
|
| 1531 | 1531 | |
| 1532 | 1532 | val browserScreenStore = buildBrowserScreenStore()
|
| ... | ... | @@ -1539,7 +1539,7 @@ class BrowserToolbarMiddlewareTest { |
| 1539 | 1539 | @Test
|
| 1540 | 1540 | fun `WHEN cycling through tall window and wide window THEN update what end page actions should be shown`() {
|
| 1541 | 1541 | val appStore = AppStore()
|
| 1542 | - settings.isTabStripEnabled = false
|
|
| 1542 | + // settings.isTabStripEnabled = false
|
|
| 1543 | 1543 | settings.shouldUseExpandedToolbar = false
|
| 1544 | 1544 | val readerModeStatus: ReaderModeStatus = mockk(relaxed = true) {
|
| 1545 | 1545 | every { isAvailable } returns true
|
| ... | ... | @@ -3156,7 +3156,7 @@ class BrowserToolbarMiddlewareTest { |
| 3156 | 3156 | |
| 3157 | 3157 | @Test
|
| 3158 | 3158 | fun `GIVEN share shortcut is selected THEN update end page actions without share action`() = runTest(testDispatcher) {
|
| 3159 | - settings.isTabStripEnabled = false
|
|
| 3159 | + // settings.isTabStripEnabled = false
|
|
| 3160 | 3160 | settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value
|
| 3161 | 3161 | val browserScreenStore = buildBrowserScreenStore()
|
| 3162 | 3162 | val middleware = buildMiddleware(
|
| ... | ... | @@ -3353,7 +3353,7 @@ class BrowserToolbarMiddlewareTest { |
| 3353 | 3353 | |
| 3354 | 3354 | @Test
|
| 3355 | 3355 | fun `GIVEN simple toolbar use share shortcut AND wide window with tabstrip enabled WHEN initializing toolbar THEN only show one Share in end browser actions`() {
|
| 3356 | - settings.isTabStripEnabled = true
|
|
| 3356 | + // settings.isTabStripEnabled = true
|
|
| 3357 | 3357 | settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value
|
| 3358 | 3358 | |
| 3359 | 3359 | val middleware = buildMiddleware(
|
| ... | ... | @@ -7,6 +7,7 @@ package org.mozilla.fenix.home.setup.store |
| 7 | 7 | import androidx.annotation.StringRes
|
| 8 | 8 | import io.mockk.every
|
| 9 | 9 | import io.mockk.mockk
|
| 10 | +import mozilla.components.lib.crash.R as crashR
|
|
| 10 | 11 | import org.junit.Assert.assertEquals
|
| 11 | 12 | import org.junit.Test
|
| 12 | 13 | import org.mozilla.fenix.R
|
| ... | ... | @@ -149,7 +150,7 @@ class ChecklistItemTest { |
| 149 | 150 | ChecklistItem.Task(
|
| 150 | 151 | type = ChecklistItem.Task.Type.SIGN_IN,
|
| 151 | 152 | title = R.string.setup_checklist_task_account_sync,
|
| 152 | - icon = R.drawable.ic_fx_accounts_avatar,
|
|
| 153 | + icon = crashR.drawable.mozac_lib_crash_notification,
|
|
| 153 | 154 | isCompleted = isCompleted,
|
| 154 | 155 | ),
|
| 155 | 156 | )
|
| ... | ... | @@ -185,7 +186,7 @@ class ChecklistItemTest { |
| 185 | 186 | ChecklistItem.Task(
|
| 186 | 187 | type = ChecklistItem.Task.Type.SIGN_IN,
|
| 187 | 188 | title = R.string.setup_checklist_task_account_sync,
|
| 188 | - icon = R.drawable.ic_fx_accounts_avatar,
|
|
| 189 | + icon = crashR.drawable.mozac_lib_crash_notification,
|
|
| 189 | 190 | isCompleted = isCompleted,
|
| 190 | 191 | ),
|
| 191 | 192 | ),
|
| ... | ... | @@ -258,7 +259,7 @@ class ChecklistItemTest { |
| 258 | 259 | ChecklistItem.Task(
|
| 259 | 260 | type = ChecklistItem.Task.Type.SIGN_IN,
|
| 260 | 261 | title = R.string.setup_checklist_task_account_sync,
|
| 261 | - icon = R.drawable.ic_fx_accounts_avatar,
|
|
| 262 | + icon = crashR.drawable.mozac_lib_crash_notification,
|
|
| 262 | 263 | isCompleted = isCompleted,
|
| 263 | 264 | ),
|
| 264 | 265 | ),
|
| ... | ... | @@ -220,46 +220,7 @@ internal class DefaultCookieBannerDetailsControllerTest { |
| 220 | 220 | }
|
| 221 | 221 | }
|
| 222 | 222 | |
| 223 | - @Test
|
|
| 224 | - fun `GIVEN cookie banner mode is site not supported WHEN handleRequestSiteSupportPressed THEN request report site domain`() =
|
|
| 225 | - runTest(testDispatcher) {
|
|
| 226 | - val store = BrowserStore(
|
|
| 227 | - BrowserState(
|
|
| 228 | - customTabs = listOf(
|
|
| 229 | - createCustomTab(
|
|
| 230 | - url = "https://www.mozilla.org",
|
|
| 231 | - id = "mozilla",
|
|
| 232 | - ),
|
|
| 233 | - ),
|
|
| 234 | - ),
|
|
| 235 | - )
|
|
| 236 | - every { testContext.components.core.store } returns store
|
|
| 237 | - coEvery { controller.getTabDomain(any()) } returns "mozilla.org"
|
|
| 238 | - every { protectionsStore.dispatch(any()) } returns mockk()
|
|
| 239 | - |
|
| 240 | - val job = Pings.cookieBannerReportSite.testBeforeNextSubmit {
|
|
| 241 | - assertNotNull(CookieBanners.reportSiteDomain.testGetValue())
|
|
| 242 | - assertEquals("mozilla.org", CookieBanners.reportSiteDomain.testGetValue())
|
|
| 243 | - }
|
|
| 244 | - controller.handleRequestSiteSupportPressed()
|
|
| 245 | - testScheduler.advanceUntilIdle()
|
|
| 246 | - |
|
| 247 | - job.join()
|
|
| 248 | - |
|
| 249 | - assertNotNull(CookieBanners.reportDomainSiteButton.testGetValue())
|
|
| 250 | - testScheduler.advanceUntilIdle()
|
|
| 251 | - coVerifyOrder {
|
|
| 252 | - protectionsStore.dispatch(
|
|
| 253 | - ProtectionsAction.RequestReportSiteDomain(
|
|
| 254 | - "mozilla.org",
|
|
| 255 | - ),
|
|
| 256 | - )
|
|
| 257 | - protectionsStore.dispatch(
|
|
| 258 | - ProtectionsAction.UpdateCookieBannerMode(
|
|
| 259 | - cookieBannerUIMode = CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED,
|
|
| 260 | - ),
|
|
| 261 | - )
|
|
| 262 | - cookieBannersStorage.saveSiteDomain("mozilla.org")
|
|
| 263 | - }
|
|
| 264 | - }
|
|
| 223 | + // tor-browser#42089: the ability to submit site support requests was removed, along with
|
|
| 224 | + // handleRequestSiteSupportPressed(), ProtectionsAction.RequestReportSiteDomain and
|
|
| 225 | + // CookieBannerUIMode.REQUEST_UNSUPPORTED_SITE_SUBMITTED this test used to exercise.
|
|
| 265 | 226 | } |
| ... | ... | @@ -100,7 +100,7 @@ class TabManagerCfrControllerTest { |
| 100 | 100 | @Test
|
| 101 | 101 | fun `GIVEN an adjacent tab WHEN maybeMarkTabSwipeCfrReady is called THEN shouldShowTabSwipeCfr is set`() {
|
| 102 | 102 | settings.hasShownTabSwipeCFR = false
|
| 103 | - settings.isTabStripEnabled = false
|
|
| 103 | + // settings.isTabStripEnabled = false
|
|
| 104 | 104 | settings.isSwipeToolbarToSwitchTabsEnabled = true
|
| 105 | 105 | settings.shouldShowTabSwipeCFR = false
|
| 106 | 106 | val adjacentTab = createTab(id = "tab2", url = "")
|