|
|
|
@ -6,6 +6,7 @@ package org.mozilla.fenix.telemetry
|
|
|
|
|
|
|
|
|
|
import androidx.test.core.app.ApplicationProvider
|
|
|
|
|
import io.mockk.mockk
|
|
|
|
|
import io.mockk.verify
|
|
|
|
|
import mozilla.components.browser.state.action.ContentAction
|
|
|
|
|
import mozilla.components.browser.state.action.EngineAction
|
|
|
|
|
import mozilla.components.browser.state.action.TabListAction
|
|
|
|
@ -32,6 +33,8 @@ import org.junit.Test
|
|
|
|
|
import org.junit.runner.RunWith
|
|
|
|
|
import org.mozilla.fenix.GleanMetrics.Events
|
|
|
|
|
import org.mozilla.fenix.GleanMetrics.Metrics
|
|
|
|
|
import org.mozilla.fenix.components.metrics.Event
|
|
|
|
|
import org.mozilla.fenix.components.metrics.MetricController
|
|
|
|
|
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
|
|
import org.mozilla.fenix.GleanMetrics.EngineTab as EngineMetrics
|
|
|
|
@ -50,13 +53,14 @@ class TelemetryMiddlewareTest {
|
|
|
|
|
val gleanRule = GleanTestRule(ApplicationProvider.getApplicationContext())
|
|
|
|
|
|
|
|
|
|
private val clock = FakeClock()
|
|
|
|
|
private val metrics: MetricController = mockk()
|
|
|
|
|
|
|
|
|
|
@Before
|
|
|
|
|
fun setUp() {
|
|
|
|
|
Clock.delegate = clock
|
|
|
|
|
|
|
|
|
|
settings = Settings(testContext)
|
|
|
|
|
telemetryMiddleware = TelemetryMiddleware(settings)
|
|
|
|
|
telemetryMiddleware = TelemetryMiddleware(settings, metrics)
|
|
|
|
|
store = BrowserStore(
|
|
|
|
|
middleware = listOf(telemetryMiddleware) + EngineMiddleware.create(engine = mockk()),
|
|
|
|
|
initialState = BrowserState(),
|
|
|
|
@ -348,6 +352,13 @@ class TelemetryMiddlewareTest {
|
|
|
|
|
assertNull(EngineMetrics.killForegroundAge.testGetValue())
|
|
|
|
|
assertEquals(600_000_000, EngineMetrics.killBackgroundAge.testGetValue()!!.sum)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `WHEN uri loaded to engine THEN matching event is sent to metrics`() {
|
|
|
|
|
store.dispatch(EngineAction.LoadUrlAction("", "")).joinBlocking()
|
|
|
|
|
|
|
|
|
|
verify { metrics.track(Event.GrowthData.FirstUriLoadForDay) }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal class FakeClock : Clock.Delegate {
|
|
|
|
|