For #1607 - Passes "custom" as the search engine identifier for custom engines
This commit is contained in:
parent
dfea877fb7
commit
45c6e3a784
|
@ -244,8 +244,16 @@ sealed class Event {
|
|||
|
||||
data class PerformedSearch(val eventSource: EventSource) : Event() {
|
||||
sealed class EngineSource {
|
||||
data class Default(val engine: SearchEngine) : EngineSource()
|
||||
data class Shortcut(val engine: SearchEngine) : EngineSource()
|
||||
abstract val engine: SearchEngine
|
||||
abstract val isCustom: Boolean
|
||||
|
||||
data class Default(override val engine: SearchEngine, override val isCustom: Boolean) : EngineSource()
|
||||
data class Shortcut(override val engine: SearchEngine, override val isCustom: Boolean) : EngineSource()
|
||||
|
||||
// https://github.com/mozilla-mobile/fenix/issues/1607
|
||||
// Sanitize identifiers for custom search engines.
|
||||
val identifier: String
|
||||
get() = if (isCustom) "custom" else engine.identifier
|
||||
|
||||
val searchEngine: SearchEngine
|
||||
get() = when (this) {
|
||||
|
@ -277,7 +285,7 @@ sealed class Event {
|
|||
}
|
||||
|
||||
val countLabel: String
|
||||
get() = "${source.searchEngine.identifier.toLowerCase(Locale.ROOT)}.$label"
|
||||
get() = "${source.identifier.toLowerCase(Locale.getDefault())}.$label"
|
||||
|
||||
val sourceLabel: String
|
||||
get() = "${source.descriptor}.$label"
|
||||
|
|
|
@ -14,6 +14,7 @@ import org.mozilla.fenix.BrowserDirection
|
|||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.components.searchengine.CustomSearchEngineStore
|
||||
import org.mozilla.fenix.ext.metrics
|
||||
import org.mozilla.fenix.ext.nav
|
||||
import org.mozilla.fenix.ext.settings
|
||||
|
@ -126,10 +127,11 @@ class DefaultSearchController(
|
|||
isSuggestion: Boolean
|
||||
): Event.PerformedSearch {
|
||||
val isShortcut = engine != context.searchEngineManager.defaultSearchEngine
|
||||
val isCustom = CustomSearchEngineStore.isCustomSearchEngine(context, engine.identifier)
|
||||
|
||||
val engineSource =
|
||||
if (isShortcut) Event.PerformedSearch.EngineSource.Shortcut(engine)
|
||||
else Event.PerformedSearch.EngineSource.Default(engine)
|
||||
if (isShortcut) Event.PerformedSearch.EngineSource.Shortcut(engine, isCustom)
|
||||
else Event.PerformedSearch.EngineSource.Default(engine, isCustom)
|
||||
|
||||
val source =
|
||||
if (isSuggestion) Event.PerformedSearch.EventSource.Suggestion(engineSource)
|
||||
|
|
|
@ -38,7 +38,7 @@ class PerformedSearchTest {
|
|||
@Test
|
||||
fun testThatCountLabelIsValid() {
|
||||
val labels = searchEngines.map {
|
||||
PerformedSearch(EventSource.Action(EngineSource.Shortcut(it))).eventSource.countLabel
|
||||
PerformedSearch(EventSource.Action(EngineSource.Shortcut(it, false))).eventSource.countLabel
|
||||
}
|
||||
|
||||
labels.forEach {
|
||||
|
|
|
@ -38,11 +38,11 @@ import org.robolectric.annotation.Config
|
|||
class SearchInteractorTest {
|
||||
@Test
|
||||
fun onUrlCommitted() {
|
||||
val context: HomeActivity = mockk()
|
||||
val context: HomeActivity = mockk(relaxed = true)
|
||||
val store: SearchFragmentStore = mockk()
|
||||
val state: SearchFragmentState = mockk()
|
||||
val searchEngineManager: SearchEngineManager = mockk(relaxed = true)
|
||||
val searchEngine = SearchEngineSource.Default(mockk())
|
||||
val searchEngine = SearchEngineSource.Default(mockk(relaxed = true))
|
||||
|
||||
every { context.metrics } returns mockk(relaxed = true)
|
||||
every { context.searchEngineManager } returns searchEngineManager
|
||||
|
@ -148,11 +148,11 @@ class SearchInteractorTest {
|
|||
|
||||
@Test
|
||||
fun onSearchTermsTapped() {
|
||||
val context: HomeActivity = mockk()
|
||||
val context: HomeActivity = mockk(relaxed = true)
|
||||
val store: SearchFragmentStore = mockk()
|
||||
val state: SearchFragmentState = mockk()
|
||||
val searchEngineManager: SearchEngineManager = mockk(relaxed = true)
|
||||
val searchEngine = SearchEngineSource.Default(mockk())
|
||||
val searchEngine = SearchEngineSource.Default(mockk(relaxed = true))
|
||||
|
||||
every { context.metrics } returns mockk(relaxed = true)
|
||||
every { context.searchEngineManager } returns searchEngineManager
|
||||
|
|
Loading…
Reference in New Issue
Block a user