|
|
|
@ -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
|
|
|
|
|