Close #19731: Track metrics before we dismiss the tabs tray

upstream-sync
Jonathan Almeida 3 years ago committed by Jonathan Almeida
parent 5c28e7d2ba
commit fc46ab2804

@ -105,6 +105,7 @@ class DefaultNavigationInteractor(
) : NavigationInteractor {
override fun onTabTrayDismissed() {
metrics.track(Event.TabsTrayClosed)
dismissTabTray()
}

@ -365,8 +365,9 @@ class TabsTrayFragment : AppCompatDialogFragment() {
@VisibleForTesting
internal fun dismissTabsTray() {
// This should always be the last thing we do because nothing (e.g. telemetry)
// is guaranteed after that.
dismissAllowingStateLoss()
requireComponents.analytics.metrics.track(Event.TabsTrayClosed)
}
companion object {

@ -167,7 +167,12 @@ class NavigationInteractorTest {
@Test
fun `onTabTrayDismissed calls dismissTabTray on DefaultNavigationInteractor`() {
navigationInteractor.onTabTrayDismissed()
verify(exactly = 1) { dismissTabTray() }
// We care about the order here; anything after `dismissTabTray` is not guaranteed.
verifyOrder {
metrics.track(Event.TabsTrayClosed)
dismissTabTray()
}
}
@Test

@ -335,7 +335,7 @@ class TabsTrayFragmentTest {
}
@Test
fun `WHEN dismissTabsTray is called THEN it dismisses the tray and record this event`() {
fun `WHEN dismissTabsTray is called THEN it dismisses the tray`() {
every { fragment.dismissAllowingStateLoss() } just Runs
val metrics: MetricController = mockk(relaxed = true)
every { context.components.analytics.metrics } returns metrics
@ -343,6 +343,5 @@ class TabsTrayFragmentTest {
fragment.dismissTabsTray()
verify { fragment.dismissAllowingStateLoss() }
verify { metrics.track(Event.TabsTrayClosed) }
}
}

Loading…
Cancel
Save