[fenix] For https://github.com/mozilla-mobile/fenix/issues/22314 - Reuse existing tab for search group items

pull/600/head
Mugurell 3 years ago committed by mergify[bot]
parent 91fb0f8b50
commit 8cfc336a55

@ -74,6 +74,7 @@ class HistoryMetadataGroupFragment :
controller = DefaultHistoryMetadataGroupController(
activity = activity as HomeActivity,
store = historyMetadataGroupStore,
selectOrAddUseCase = requireComponents.useCases.tabsUseCases.selectOrAddTab,
metrics = requireComponents.analytics.metrics,
navController = findNavController(),
scope = lifecycleScope,

@ -8,10 +8,11 @@ import androidx.navigation.NavController
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import mozilla.components.concept.engine.prompt.ShareData
import org.mozilla.fenix.BrowserDirection
import mozilla.components.feature.tabs.TabsUseCases
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.library.history.History
import org.mozilla.fenix.library.historymetadata.HistoryMetadataGroupFragmentAction
@ -76,6 +77,7 @@ interface HistoryMetadataGroupController {
class DefaultHistoryMetadataGroupController(
private val activity: HomeActivity,
private val store: HistoryMetadataGroupFragmentStore,
private val selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase,
private val metrics: MetricController,
private val navController: NavController,
private val scope: CoroutineScope,
@ -83,12 +85,8 @@ class DefaultHistoryMetadataGroupController(
) : HistoryMetadataGroupController {
override fun handleOpen(item: History.Metadata) {
activity.openToBrowserAndLoad(
searchTermOrURL = item.url,
newTab = true,
from = BrowserDirection.FromHistoryMetadataGroup,
historyMetadata = item.historyMetadataKey
)
selectOrAddUseCase.invoke(item.url, item.historyMetadataKey)
navController.navigate(R.id.browserFragment)
metrics.track(Event.HistorySearchTermGroupOpenTab)
}

@ -14,6 +14,7 @@ import kotlinx.coroutines.test.runBlockingTest
import mozilla.components.browser.storage.sync.PlacesHistoryStorage
import mozilla.components.concept.engine.prompt.ShareData
import mozilla.components.concept.storage.HistoryMetadataKey
import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.support.test.rule.MainCoroutineRule
import org.junit.After
import org.junit.Assert.assertFalse
@ -22,10 +23,10 @@ import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.directionsEq
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
@ -45,6 +46,7 @@ class HistoryMetadataGroupControllerTest {
private val activity: HomeActivity = mockk(relaxed = true)
private val store: HistoryMetadataGroupFragmentStore = mockk(relaxed = true)
private val selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase = mockk(relaxed = true)
private val metrics: MetricController = mockk(relaxed = true)
private val navController: NavController = mockk(relaxed = true)
private val historyStorage: PlacesHistoryStorage = mockk(relaxed = true)
@ -77,6 +79,7 @@ class HistoryMetadataGroupControllerTest {
controller = DefaultHistoryMetadataGroupController(
activity = activity,
store = store,
selectOrAddUseCase = selectOrAddUseCase,
metrics = metrics,
navController = navController,
scope = scope,
@ -96,12 +99,8 @@ class HistoryMetadataGroupControllerTest {
controller.handleOpen(mozillaHistoryMetadataItem)
verify {
activity.openToBrowserAndLoad(
searchTermOrURL = mozillaHistoryMetadataItem.url,
newTab = true,
from = BrowserDirection.FromHistoryMetadataGroup,
historyMetadata = mozillaHistoryMetadataItem.historyMetadataKey
)
selectOrAddUseCase.invoke(mozillaHistoryMetadataItem.url, mozillaHistoryMetadataItem.historyMetadataKey)
navController.navigate(R.id.browserFragment)
metrics.track(Event.HistorySearchTermGroupOpenTab)
}
}

Loading…
Cancel
Save