From 3f7391a3227b770dfcc72e57d6102da8da9f5ea2 Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Tue, 4 Oct 2022 14:26:07 -0400 Subject: [PATCH] Close #27147: Add telemetry for bookmark search --- app/metrics.yaml | 33 +++++++++++++++++++ .../bookmarks/BookmarkFragmentInteractor.kt | 1 + .../bookmarks/BookmarkSearchController.kt | 3 ++ .../BookmarkFragmentInteractorTest.kt | 2 ++ .../bookmarks/BookmarkSearchControllerTest.kt | 16 +++++++++ 5 files changed, 55 insertions(+) diff --git a/app/metrics.yaml b/app/metrics.yaml index bc00d87130f5..d8a329771466 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -2696,6 +2696,39 @@ bookmarks_management: metadata: tags: - Bookmarks + search_icon_tapped: + type: event + description: | + A user tapped on the search icon in bookmarks management. + bugs: + - https://github.com/mozilla-mobile/fenix/issues/27147 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/27268 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: 120 + metadata: + tags: + - Bookmarks + search_result_tapped: + type: event + description: | + A user tapped on the search result in bookmarks management. + bugs: + - https://github.com/mozilla-mobile/fenix/issues/27147 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/27268 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: 120 + metadata: + tags: + - Bookmarks + activation: identifier: type: string diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt index 9515764a13b6..4fec702ac7f5 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt @@ -41,6 +41,7 @@ class BookmarkFragmentInteractor( } override fun onSearch() { + BookmarksManagement.searchIconTapped.record(NoExtras()) bookmarksController.handleSearch() } diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt index ebefc9404de2..e88f0678f604 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchController.kt @@ -5,7 +5,9 @@ package org.mozilla.fenix.library.bookmarks import mozilla.components.concept.engine.EngineSession.LoadUrlFlags +import mozilla.components.service.glean.private.NoExtras import org.mozilla.fenix.BrowserDirection +import org.mozilla.fenix.GleanMetrics.BookmarksManagement import org.mozilla.fenix.HomeActivity /** @@ -32,6 +34,7 @@ class BookmarkSearchDialogController( } override fun handleUrlTapped(url: String, flags: LoadUrlFlags) { + BookmarksManagement.searchResultTapped.record(NoExtras()) clearToolbarFocus() activity.openToBrowserAndLoad( diff --git a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt index 58a4c0b69f14..a11357e9edae 100644 --- a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt @@ -222,10 +222,12 @@ class BookmarkFragmentInteractorTest { @Test fun `WHEN onSearch is called THEN call controller handleSearch`() { + assertNull(BookmarksManagement.searchIconTapped.testGetValue()) interactor.onSearch() verify { bookmarkController.handleSearch() } + assertNotNull(BookmarksManagement.searchIconTapped.testGetValue()) } } diff --git a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchControllerTest.kt b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchControllerTest.kt index 5dc822812b7e..f3a8dcd02292 100644 --- a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkSearchControllerTest.kt @@ -9,14 +9,26 @@ import io.mockk.impl.annotations.MockK import io.mockk.verify import kotlinx.coroutines.test.runTest import mozilla.components.concept.engine.EngineSession +import mozilla.components.service.glean.testing.GleanTestRule +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertNull 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.BookmarksManagement import org.mozilla.fenix.HomeActivity +import org.mozilla.fenix.helpers.FenixRobolectricTestRunner +@RunWith(FenixRobolectricTestRunner::class) class BookmarkSearchControllerTest { + @get:Rule + val gleanTestRule = GleanTestRule(testContext) + @MockK(relaxed = true) private lateinit var activity: HomeActivity @@ -63,6 +75,8 @@ class BookmarkSearchControllerTest { val url = "https://www.google.com/" val flags = EngineSession.LoadUrlFlags.none() + assertNull(BookmarksManagement.searchResultTapped.testGetValue()) + createController().handleUrlTapped(url, flags) createController().handleUrlTapped(url) @@ -74,6 +88,8 @@ class BookmarkSearchControllerTest { flags = flags, ) } + + assertNotNull(BookmarksManagement.searchResultTapped.testGetValue()) } private fun createController(