For #15121 - Ensure tabs removed while on browser select an available parent session

pull/159/head^2
ekager 4 years ago
parent 9464d4ebd5
commit 030d6a5b36

@ -940,7 +940,12 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
true
} else {
if (session.hasParentSession) {
requireComponents.useCases.tabsUseCases.removeTab(session)
// The removeTab use case does not currently select a parent session, so
// we are using sessionManager.remove
requireComponents.core.sessionManager.remove(
session,
selectParentIfExists = true
)
}
// We want to return to home if this session didn't have a parent session to select.
val goToOverview = !session.hasParentSession

@ -145,7 +145,9 @@ class DefaultBrowserToolbarController(
)
} else {
onCloseTab.invoke(it)
activity.components.useCases.tabsUseCases.removeTab.invoke(it)
// The removeTab use case does not currently select a parent session, so
// we are using sessionManager.remove
sessionManager.remove(it, selectParentIfExists = true)
}
}
}

@ -21,7 +21,6 @@ import mozilla.components.browser.session.SessionManager
import mozilla.components.concept.engine.EngineView
import mozilla.components.feature.search.SearchUseCases
import mozilla.components.feature.session.SessionUseCases
import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.feature.top.sites.TopSitesUseCases
import org.junit.Assert.assertEquals
import org.junit.Before
@ -200,17 +199,13 @@ class DefaultBrowserToolbarControllerTest {
@Test
fun handleToolbarCloseTabPress() {
val tabsUseCases: TabsUseCases = mockk(relaxed = true)
val removeTabUseCase: TabsUseCases.RemoveTabUseCase = mockk(relaxed = true)
val item = TabCounterMenu.Item.CloseTab
every { sessionManager.sessions } returns emptyList()
every { activity.components.useCases.tabsUseCases } returns tabsUseCases
every { tabsUseCases.removeTab } returns removeTabUseCase
val controller = createController()
controller.handleTabCounterItemInteraction(item)
verify { removeTabUseCase.invoke(currentSession) }
verify { sessionManager.remove(currentSession, selectParentIfExists = true) }
}
@Test

Loading…
Cancel
Save