For #24204 - Remove Event.wrapper for Search_shortcuts telemetry

upstream-sync
Alexandru2909 2 years ago committed by mergify[bot]
parent dc87226e42
commit df702a2694

@ -615,6 +615,7 @@ search_shortcuts:
A user selected a search shortcut engine to use
extra_keys:
engine:
type: string
description: |
The name of the built-in search engine the user selected as a string
bugs:

@ -18,7 +18,6 @@ import org.mozilla.fenix.GleanMetrics.Events
import org.mozilla.fenix.GleanMetrics.History
import org.mozilla.fenix.GleanMetrics.Logins
import org.mozilla.fenix.GleanMetrics.Pocket
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
import org.mozilla.fenix.GleanMetrics.SearchTerms
import org.mozilla.fenix.GleanMetrics.ToolbarSettings
import org.mozilla.fenix.GleanMetrics.TopSites
@ -489,12 +488,6 @@ sealed class Event {
get() = mapOf(Events.performedSearchKeys.source to eventSource.sourceLabel)
}
data class SearchShortcutSelected(val engine: SearchEngine, val isCustom: Boolean) : Event() {
private val engineName = if (isCustom) "custom" else engine.name
override val extras: Map<SearchShortcuts.selectedKeys, String>?
get() = mapOf(SearchShortcuts.selectedKeys.engine to engineName)
}
data class DarkThemeSelected(val source: Source) : Event() {
enum class Source { SETTINGS }

@ -41,7 +41,6 @@ import org.mozilla.fenix.GleanMetrics.RecentSearches
import org.mozilla.fenix.GleanMetrics.RecentTabs
import org.mozilla.fenix.GleanMetrics.RecentlyClosedTabs
import org.mozilla.fenix.GleanMetrics.RecentlyVisitedHomepage
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
import org.mozilla.fenix.GleanMetrics.SearchTerms
import org.mozilla.fenix.GleanMetrics.SearchWidget
import org.mozilla.fenix.GleanMetrics.StartOnHome
@ -134,10 +133,6 @@ private val Event.wrapper: EventWrapper<*>?
BrowserSearch.inContent[label].add(1)
}
)
is Event.SearchShortcutSelected -> EventWrapper(
{ SearchShortcuts.selected.record(it) },
{ SearchShortcuts.selectedKeys.valueOf(it) }
)
is Event.LoginDialogPromptDisplayed -> EventWrapper<NoExtraKeys>(
{ LoginDialog.displayed.record(it) }
)

@ -18,6 +18,7 @@ import mozilla.components.concept.engine.EngineSession.LoadUrlFlags
import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.support.ktx.kotlin.isUrl
import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
@ -191,8 +192,11 @@ class SearchDialogController(
override fun handleSearchShortcutEngineSelected(searchEngine: SearchEngine) {
focusToolbar()
fragmentStore.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine))
val isCustom = searchEngine.type == SearchEngine.Type.CUSTOM
metrics.track(Event.SearchShortcutSelected(searchEngine, isCustom))
val engine = when (searchEngine.type) {
SearchEngine.Type.CUSTOM -> "custom"
else -> searchEngine.name
}
SearchShortcuts.selected.record(SearchShortcuts.SelectedExtra(engine))
}
override fun handleSearchShortcutsButtonClicked() {

@ -23,26 +23,37 @@ import mozilla.components.browser.state.state.BrowserState
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.concept.engine.EngineSession
import mozilla.components.feature.tabs.TabsUseCases
import mozilla.components.service.glean.testing.GleanTestRule
import mozilla.components.support.test.libstate.ext.waitUntilIdle
import mozilla.components.support.test.middleware.CaptureActionsMiddleware
import mozilla.components.support.test.robolectric.testContext
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
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.GleanMetrics.SearchShortcuts
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.components.metrics.MetricsUtils
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
import org.mozilla.fenix.search.SearchDialogFragmentDirections.Companion.actionGlobalAddonsManagementFragment
import org.mozilla.fenix.search.SearchDialogFragmentDirections.Companion.actionGlobalSearchEngineFragment
import org.mozilla.fenix.settings.SupportUtils
import org.mozilla.fenix.utils.Settings
@RunWith(FenixRobolectricTestRunner::class) // For gleanTestRule
class SearchDialogControllerTest {
@get:Rule
val gleanTestRule = GleanTestRule(testContext)
@MockK(relaxed = true) private lateinit var activity: HomeActivity
@MockK(relaxed = true) private lateinit var store: SearchDialogFragmentStore
@MockK(relaxed = true) private lateinit var navController: NavController
@ -291,7 +302,14 @@ class SearchDialogControllerTest {
assertTrue(focusToolbarInvoked)
verify { store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine)) }
verify { metrics.track(Event.SearchShortcutSelected(searchEngine, false)) }
assertTrue(SearchShortcuts.selected.testHasValue())
val recordedEvents = SearchShortcuts.selected.testGetValue()
assertEquals(1, recordedEvents.size)
val eventExtra = recordedEvents.single().extra
assertNotNull(eventExtra)
assertTrue(eventExtra!!.containsKey("engine"))
assertEquals(searchEngine.name, eventExtra["engine"])
}
@Test

Loading…
Cancel
Save