tor-browser

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

commit e675f8d742f65eeb8eb8298dad42ecd88ef033e4
parent f999af191f8410aa5c141e9a66d243d100373ef4
Author: rmalicdem <rmalicdem@mozilla.com>
Date:   Fri, 28 Nov 2025 00:47:29 +0000

Bug 2002828 - Respect toolbar customization when resolving simple/expanded shortcuts r=android-reviewers,Roger

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt | 12+++++-------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddleware.kt | 24+++++++++++-------------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt | 5++---
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 12++++++++++++
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt | 40++++++++++++++++++++--------------------
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt | 8++++----
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt | 35+++++++++++++++++++++++++++++++++++
7 files changed, 89 insertions(+), 47 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt @@ -487,7 +487,7 @@ class TabPreview @JvmOverloads constructor( val settings = context.settings() val isWideScreen = context.isWideWindow() val tabStripEnabled = settings.isTabStripEnabled - val shareShortcutEnabled = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) == ShortcutType.SHARE + val shareShortcutEnabled = ShortcutType.fromValue(settings.toolbarSimpleShortcut) == ShortcutType.SHARE return listOf( ToolbarActionConfig(ToolbarAction.Share) { @@ -520,9 +520,8 @@ class TabPreview @JvmOverloads constructor( val isTallWindow = context.isTallWindow() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar - val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) - ?.toToolbarAction(tab).takeIf { useCustomPrimary } ?: ToolbarAction.NewTab + val primarySlotAction = ShortcutType.fromValue(settings.toolbarSimpleShortcut) + ?.toToolbarAction(tab) ?: ToolbarAction.NewTab return listOf( ToolbarActionConfig(primarySlotAction) { @@ -548,9 +547,8 @@ class TabPreview @JvmOverloads constructor( val isTallWindow = context.isTallWindow() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar - val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) - ?.toToolbarAction(tab).takeIf { useCustomPrimary } ?: getBookmarkAction(tab) + val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcut) + ?.toToolbarAction(tab) ?: getBookmarkAction(tab) return listOf( ToolbarActionConfig(primarySlotAction) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow }, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddleware.kt @@ -724,7 +724,7 @@ class BrowserToolbarMiddleware( private fun buildEndPageActions(): List<Action> { val isWideScreen = isWideScreen() val tabStripEnabled = settings.isTabStripEnabled - val simpleShortcut = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) + val simpleShortcut = ShortcutType.fromValue(settings.toolbarSimpleShortcut) val translateShortcutEnabled = simpleShortcut == ShortcutType.TRANSLATE val shareShortcutEnabled = simpleShortcut == ShortcutType.SHARE @@ -751,9 +751,8 @@ class BrowserToolbarMiddleware( val isWideWindow = isWideScreen() val isTallWindow = isTallScreen() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar - val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) - ?.toToolbarAction().takeIf { useCustomPrimary } ?: ToolbarAction.NewTab + val primarySlotAction = ShortcutType.fromValue(settings.toolbarSimpleShortcut) + ?.toToolbarAction() ?: ToolbarAction.NewTab val configs = listOf( ToolbarActionConfig(primarySlotAction) { @@ -788,9 +787,8 @@ class BrowserToolbarMiddleware( val isWideWindow = isWideScreen() val isTallWindow = isTallScreen() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar - val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) - ?.toToolbarAction().takeIf { useCustomPrimary } ?: getBookmarkAction() + val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcut) + ?.toToolbarAction() ?: getBookmarkAction() return listOf( ToolbarActionConfig(primarySlotAction) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow }, @@ -994,10 +992,10 @@ class BrowserToolbarMiddleware( distinctUntilChangedBy { it.pageTranslationStatus } .collect { updateEndPageActions(context) - if (ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) == ShortcutType.TRANSLATE) { + if (ShortcutType.fromValue(settings.toolbarSimpleShortcut) == ShortcutType.TRANSLATE) { updateEndBrowserActions(context) } - if (ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) == ShortcutType.TRANSLATE) { + if (ShortcutType.fromValue(settings.toolbarExpandedShortcut) == ShortcutType.TRANSLATE) { updateNavigationActions(context) } } @@ -1013,10 +1011,10 @@ class BrowserToolbarMiddleware( ) }.collect { updateStartBrowserActions(context) - if (ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) == ShortcutType.BACK) { + if (ShortcutType.fromValue(settings.toolbarSimpleShortcut) == ShortcutType.BACK) { updateEndBrowserActions(context) } - if (ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) == ShortcutType.BACK) { + if (ShortcutType.fromValue(settings.toolbarExpandedShortcut) == ShortcutType.BACK) { updateNavigationActions(context) } } @@ -1047,10 +1045,10 @@ class BrowserToolbarMiddleware( it.snackbarState is SnackbarState.BookmarkAdded || it.snackbarState is SnackbarState.BookmarkDeleted }.collect { isBookmarked -> - if (ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) == ShortcutType.BOOKMARK) { + if (ShortcutType.fromValue(settings.toolbarSimpleShortcut) == ShortcutType.BOOKMARK) { updateEndBrowserActions(context) } - if (ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) == ShortcutType.BOOKMARK) { + if (ShortcutType.fromValue(settings.toolbarExpandedShortcut) == ShortcutType.BOOKMARK) { updateNavigationActions(context) } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt @@ -353,9 +353,8 @@ class BrowserToolbarMiddleware( val isWideWindow = isWideScreen() val isTallWindow = isTallScreen() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar - val useCustomPrimary = settings.shouldShowToolbarCustomization && shouldUseExpandedToolbar - val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) - ?.toHomeToolbarAction().takeIf { useCustomPrimary } ?: HomeToolbarAction.FakeBookmark + val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcut) + ?.toHomeToolbarAction() ?: HomeToolbarAction.FakeBookmark return listOf( HomeToolbarActionConfig(primarySlotAction) { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -219,6 +219,12 @@ class Settings( persistDefaultIfNotExists = true, ) + val toolbarSimpleShortcut: String + get() = when (shouldShowToolbarCustomization) { + true -> toolbarSimpleShortcutKey + false -> ShortcutType.NEW_TAB.value + } + /** * Indicates what expanded toolbar shortcut key is currently selected. */ @@ -228,6 +234,12 @@ class Settings( persistDefaultIfNotExists = true, ) + val toolbarExpandedShortcut: String + get() = when (shouldShowToolbarCustomization) { + true -> toolbarExpandedShortcutKey + false -> ShortcutType.BOOKMARK.value + } + /** * Indicates if the Pocket recommendations homescreen section should also show sponsored stories. */ diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt @@ -1312,7 +1312,7 @@ class BrowserToolbarMiddlewareTest { every { settings.isTabStripEnabled } returns true every { settings.shouldUseExpandedToolbar } returns false every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.SHARE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.SHARE.value val browserScreenStore = buildBrowserScreenStore() val captureMiddleware = CaptureActionsMiddleware<BrowserState, BrowserAction>() val currentTab = createTab("content://test", private = false) @@ -1347,7 +1347,7 @@ class BrowserToolbarMiddlewareTest { every { settings.isTabStripEnabled } returns true every { settings.shouldUseExpandedToolbar } returns false every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.SHARE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.SHARE.value every { navController.currentDestination?.id } returns R.id.browserFragment every { navController.navigate(any<NavDirections>(), null) } just Runs val browserScreenStore = buildBrowserScreenStore() @@ -2671,7 +2671,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN share shortcut is selected THEN update end page actions without share action`() = runTest { every { settings.isTabStripEnabled } returns false - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.SHARE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.SHARE.value val browserScreenStore = buildBrowserScreenStore() val middleware = buildMiddleware( browserScreenStore = browserScreenStore, @@ -2685,7 +2685,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN translate shortcut is selected THEN update end page actions without translate action`() = runTest { - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.TRANSLATE.value val browserScreenStore = buildBrowserScreenStore() val middleware = buildMiddleware( browserScreenStore = browserScreenStore, @@ -2718,7 +2718,7 @@ class BrowserToolbarMiddlewareTest { ) } answers { browserAnimatorActionCaptor.captured.invoke(true) } every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.HOMEPAGE.value val middleware = buildMiddleware() val toolbarStore = buildStore(middleware) @@ -2732,7 +2732,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN homepage as new tab is enabled WHEN clicking the homepage button THEN navigate to homepage`() = runTest { every { settings.enableHomepageAsNewTab } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.HOMEPAGE.value val middleware = buildMiddleware() val toolbarStore = buildStore(middleware) @@ -2746,7 +2746,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar is used and navbar is hidden WHEN building end browser actions THEN use simple toolbar shortcuts`() = runTest { every { settings.shouldShowToolbarCustomization } returns true every { settings.shouldUseExpandedToolbar } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.HOMEPAGE.value val middleware = buildMiddleware( browserScreenStore = browserScreenStore, @@ -2762,7 +2762,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use add bookmark shortcut AND the current page is not bookmarked WHEN initializing toolbar THEN show Bookmark in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BOOKMARK.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.BOOKMARK.value val toolbarStore = buildStore() val bookmarkButton = toolbarStore.state.displayState.browserActionsEnd[0] as ActionButtonRes @@ -2772,7 +2772,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use add bookmark shortcut AND the current page is bookmarked WHEN initializing toolbar THEN show ACTIVE EditBookmark in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BOOKMARK.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.BOOKMARK.value val tab = createTab("https://example.com") val browserStore = BrowserStore( @@ -2801,7 +2801,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use translate shortcut AND current page is not translated WHEN initializing toolbar THEN show Translate in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -2820,7 +2820,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use translate shortcut AND current page is translated WHEN initializing toolbar THEN show ACTIVE Translate in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -2839,7 +2839,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use homepage shortcut WHEN initializing toolbar THEN show Homepage in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.HOMEPAGE.value val toolbarStore = buildStore() @@ -2850,7 +2850,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use back shortcut AND current page has no history WHEN initializing toolbar THEN show DISABLED Back in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BACK.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.BACK.value val toolbarStore = buildStore() @@ -2861,7 +2861,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use back shortcut AND current page has history WHEN initializing toolbar THEN show ACTIVE Back in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BACK.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.BACK.value val tab = createTab(url = "https://example.com").let { it.copy(content = it.content.copy(canGoBack = true)) @@ -2886,7 +2886,7 @@ class BrowserToolbarMiddlewareTest { 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`() { every { settings.shouldShowToolbarCustomization } returns true every { settings.isTabStripEnabled } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.SHARE.value + every { settings.toolbarSimpleShortcut } returns ShortcutType.SHARE.value val middleware = buildMiddleware( appStore = appStore, @@ -2908,7 +2908,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use translate shortcut AND current page is not translated WHEN initializing toolbar THEN show Translate in navigation actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true every { settings.shouldUseExpandedToolbar } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE.value + every { settings.toolbarExpandedShortcut } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -2928,7 +2928,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use translate shortcut AND current page is translated WHEN initializing toolbar THEN show ACTIVE Translate in navigation actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true every { settings.shouldUseExpandedToolbar } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE.value + every { settings.toolbarExpandedShortcut } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -2948,7 +2948,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use homepage shortcut WHEN initializing toolbar THEN show Homepage in navigation actions`() = runTest { every { settings.shouldUseExpandedToolbar } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE.value + every { settings.toolbarExpandedShortcut } returns ShortcutType.HOMEPAGE.value val toolbarStore = buildStore() @@ -2960,7 +2960,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use back shortcut AND current page has no history WHEN initializing toolbar THEN show DISABLED Back in navigation actions`() = runTest { every { settings.shouldUseExpandedToolbar } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.BACK.value + every { settings.toolbarExpandedShortcut } returns ShortcutType.BACK.value val toolbarStore = buildStore() @@ -2972,7 +2972,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use back shortcut AND current page has history WHEN initializing toolbar THEN show ACTIVE Back in navigation actions`() = runTest { every { settings.shouldUseExpandedToolbar } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.BACK.value + every { settings.toolbarExpandedShortcut } returns ShortcutType.BACK.value val tab = createTab(url = "https://example.com").let { it.copy(content = it.content.copy(canGoBack = true)) diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt @@ -117,7 +117,7 @@ class BrowserToolbarMiddlewareTest { every { testContext.settings().isTabStripEnabled } returns false every { testContext.settings().tabManagerEnhancementsEnabled } returns false every { testContext.settings().shouldShowToolbarCustomization } returns false - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.BOOKMARK.value + every { testContext.settings().toolbarExpandedShortcut } returns ShortcutType.BOOKMARK.value } @Test @@ -755,7 +755,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use translate shortcut WHEN initializing toolbar THEN show DISABLED Translate in navigation actions`() = runTest { every { testContext.settings().shouldShowToolbarCustomization } returns true every { testContext.settings().shouldUseExpandedToolbar } returns true - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE.value + every { testContext.settings().toolbarExpandedShortcut } returns ShortcutType.TRANSLATE.value val (_, toolbarStore) = buildMiddlewareAndAddToStore() @@ -767,7 +767,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use homepage shortcut WHEN initializing toolbar THEN show DISABLED Homepage in navigation actions`() = runTest { every { testContext.settings().shouldShowToolbarCustomization } returns true every { testContext.settings().shouldUseExpandedToolbar } returns true - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE.value + every { testContext.settings().toolbarExpandedShortcut } returns ShortcutType.HOMEPAGE.value val (_, toolbarStore) = buildMiddlewareAndAddToStore() @@ -779,7 +779,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use back shortcut WHEN initializing toolbar THEN show DISABLED Back in navigation actions`() = runTest { every { testContext.settings().shouldShowToolbarCustomization } returns true every { testContext.settings().shouldUseExpandedToolbar } returns true - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.BACK.value + every { testContext.settings().toolbarExpandedShortcut } returns ShortcutType.BACK.value val (_, toolbarStore) = buildMiddlewareAndAddToStore() diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt @@ -29,6 +29,7 @@ import org.mozilla.fenix.components.toolbar.ToolbarPosition import org.mozilla.fenix.nimbus.DefaultBrowserPrompt import org.mozilla.fenix.nimbus.FakeNimbusEventStore import org.mozilla.fenix.settings.PhoneFeature +import org.mozilla.fenix.settings.ShortcutType import org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataOnQuitType import org.robolectric.RobolectricTestRunner import java.util.Calendar @@ -1320,4 +1321,38 @@ class SettingsTest { val result = settings.termsOfUseAcceptedVersion assertEquals(0, result) } + + @Test + fun `GIVEN toolbar customization is disabled WHEN reading toolbarSimpleShortcut THEN NEW_TAB is returned regardless of stored key`() { + settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value + + val result = settings.toolbarSimpleShortcut + assertEquals(ShortcutType.NEW_TAB.value, result) + } + + @Test + fun `GIVEN toolbar customization is enabled WHEN reading toolbarSimpleShortcut THEN stored key is returned`() { + settings.shouldShowToolbarCustomization = true + settings.toolbarSimpleShortcutKey = ShortcutType.SHARE.value + + val result = settings.toolbarSimpleShortcut + assertEquals(ShortcutType.SHARE.value, result) + } + + @Test + fun `GIVEN toolbar customization is disabled WHEN reading toolbarExpandedShortcut THEN BOOKMARK is returned regardless of stored key`() { + settings.toolbarExpandedShortcutKey = ShortcutType.NEW_TAB.value + + val result = settings.toolbarExpandedShortcut + assertEquals(ShortcutType.BOOKMARK.value, result) + } + + @Test + fun `GIVEN toolbar customization is enabled WHEN reading toolbarExpandedShortcut THEN stored key is returned`() { + settings.shouldShowToolbarCustomization = true + settings.toolbarExpandedShortcutKey = ShortcutType.TRANSLATE.value + + val result = settings.toolbarExpandedShortcut + assertEquals(ShortcutType.TRANSLATE.value, result) + } }