Bug 1843350 - Fix Bookmarks -> Tabs Tray navigation bug

fenix/117.0
Noah Bond 11 months ago committed by mergify[bot]
parent 7f498db9e4
commit 49f1f258e4

@ -84,7 +84,7 @@ class DefaultBookmarkController(
private val showSnackbar: (String) -> Unit,
private val deleteBookmarkNodes: (Set<BookmarkNode>, BookmarkRemoveType) -> Unit,
private val deleteBookmarkFolder: (Set<BookmarkNode>) -> Unit,
private val showTabTray: () -> Unit,
private val showTabTray: (Boolean) -> Unit,
private val warnLargeOpenAll: (Int, () -> Unit) -> Unit,
private val settings: Settings,
) : BookmarkController {
@ -163,7 +163,7 @@ class DefaultBookmarkController(
override fun handleOpeningBookmark(item: BookmarkNode, mode: BrowsingMode) {
openInNewTab(item.url!!, mode)
showTabTray()
showTabTray(mode.isPrivate)
}
private fun extractURLsFromTree(node: BookmarkNode): MutableList<String> {
@ -199,7 +199,7 @@ class DefaultBookmarkController(
}
activity.browsingModeManager.mode =
BrowsingMode.fromBoolean(mode == BrowsingMode.Private)
showTabTray()
showTabTray(mode.isPrivate)
}
// Warn user if more than maximum number of bookmarks are being opened

@ -55,6 +55,7 @@ import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.setTextColor
import org.mozilla.fenix.library.LibraryPageFragment
import org.mozilla.fenix.tabstray.Page
import org.mozilla.fenix.utils.allowUndo
/**
@ -227,7 +228,7 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
R.id.open_bookmarks_in_private_tabs_multi_select -> {
openItemsInNewTab(private = true) { node -> node.url }
showTabTray()
showTabTray(openInPrivate = true)
BookmarksManagement.openInPrivateTabs.record(NoExtras())
true
}
@ -251,8 +252,16 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
}
}
private fun showTabTray() {
navigateToBookmarkFragment(BookmarkFragmentDirections.actionGlobalTabsTrayFragment())
private fun showTabTray(openInPrivate: Boolean = false) {
navigateToBookmarkFragment(
BookmarkFragmentDirections.actionGlobalTabsTrayFragment(
page = if (openInPrivate) {
Page.PrivateTabs
} else {
Page.NormalTabs
},
),
)
}
private fun navigateToBookmarkFragment(directions: NavDirections) {

@ -32,6 +32,8 @@ import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.support.test.rule.MainCoroutineRule
import mozilla.components.support.test.rule.runTestOnMain
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Rule
@ -341,13 +343,17 @@ class BookmarkControllerTest {
@Test
fun `handleOpeningBookmark should open the bookmark a new 'Normal' tab`() {
var showTabTrayInvoked = false
var openedToPrivateTabsPage: Boolean? = null
createController(
showTabTray = {
showTabTray = { openToPrivateTabsPage ->
openedToPrivateTabsPage = openToPrivateTabsPage
showTabTrayInvoked = true
},
).handleOpeningBookmark(item, BrowsingMode.Normal)
assertTrue(showTabTrayInvoked)
assertNotNull(openedToPrivateTabsPage)
assertFalse(openedToPrivateTabsPage!!)
verifyOrder {
homeActivity.browsingModeManager.mode = BrowsingMode.Normal
addNewTabUseCase.invoke(item.url!!, private = false)
@ -357,13 +363,17 @@ class BookmarkControllerTest {
@Test
fun `handleOpeningBookmark should open the bookmark a new 'Private' tab`() {
var showTabTrayInvoked = false
var openedToPrivateTabsPage: Boolean? = null
createController(
showTabTray = {
showTabTray = { openToPrivateTabsPage ->
openedToPrivateTabsPage = openToPrivateTabsPage
showTabTrayInvoked = true
},
).handleOpeningBookmark(item, BrowsingMode.Private)
assertTrue(showTabTrayInvoked)
assertNotNull(openedToPrivateTabsPage)
assertTrue(openedToPrivateTabsPage!!)
verifyOrder {
homeActivity.browsingModeManager.mode = BrowsingMode.Private
addNewTabUseCase.invoke(item.url!!, private = true)
@ -373,8 +383,10 @@ class BookmarkControllerTest {
@Test
fun `WHEN handle opening folder bookmarks THEN all bookmarks in folder is opened in normal tabs`() {
var showTabTrayInvoked = false
var tabsTrayOpenedToPrivateTabs: Boolean? = null
createController(
showTabTray = {
showTabTray = { openToPrivateTabsPage ->
tabsTrayOpenedToPrivateTabs = openToPrivateTabsPage
showTabTrayInvoked = true
},
loadBookmarkNode = { guid: String, _: Boolean ->
@ -396,6 +408,8 @@ class BookmarkControllerTest {
).handleOpeningFolderBookmarks(tree, BrowsingMode.Normal)
assertTrue(showTabTrayInvoked)
assertNotNull(tabsTrayOpenedToPrivateTabs)
assertFalse(tabsTrayOpenedToPrivateTabs!!)
verifyOrder {
addNewTabUseCase.invoke(item.url!!, private = false)
addNewTabUseCase.invoke(item.url!!, private = false)
@ -407,8 +421,10 @@ class BookmarkControllerTest {
@Test
fun `WHEN handle opening folder bookmarks in private tabs THEN all bookmarks in folder is opened in private tabs`() {
var showTabTrayInvoked = false
var tabsTrayOpenedToPrivateTabs: Boolean? = null
createController(
showTabTray = {
showTabTray = { openToPrivateTabsPage ->
tabsTrayOpenedToPrivateTabs = openToPrivateTabsPage
showTabTrayInvoked = true
},
loadBookmarkNode = { guid: String, _: Boolean ->
@ -430,6 +446,8 @@ class BookmarkControllerTest {
).handleOpeningFolderBookmarks(tree, BrowsingMode.Private)
assertTrue(showTabTrayInvoked)
assertNotNull(tabsTrayOpenedToPrivateTabs)
assertTrue(tabsTrayOpenedToPrivateTabs!!)
verifyOrder {
addNewTabUseCase.invoke(item.url!!, private = true)
addNewTabUseCase.invoke(item.url!!, private = true)
@ -527,7 +545,7 @@ class BookmarkControllerTest {
showSnackbar: (String) -> Unit = { _ -> },
deleteBookmarkNodes: (Set<BookmarkNode>, BookmarkRemoveType) -> Unit = { _, _ -> },
deleteBookmarkFolder: (Set<BookmarkNode>) -> Unit = { _ -> },
showTabTray: () -> Unit = { },
showTabTray: (Boolean) -> Unit = { },
warnLargeOpenAll: (Int, () -> Unit) -> Unit = { _: Int, _: () -> Unit -> },
): BookmarkController {
return DefaultBookmarkController(

Loading…
Cancel
Save