diff --git a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt index c99ac0c776a0..317358427332 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt @@ -1258,6 +1258,17 @@ class BrowserTabViewModelTest { verify(mockPixel).fire("rq_1") } + @Test + fun whenUserSubmittedDifferentQueryAndOldQueryIsUrlThenDoNotSendQueryChangePixel() { + whenever(mockOmnibarConverter.convertQueryToUrl("another query", null)).thenReturn("another query") + loadUrl("www.foo.com") + + testee.onUserSubmittedQuery("another query") + + verify(mockPixel, never()).fire("rq_0") + verify(mockPixel, never()).fire("rq_1") + } + @Test fun whenUserBrowsingPressesBackAndBrowserCanGoBackThenNavigatesToPreviousPageAndHandledTrue() { setupNavigation(isBrowsing = true, canGoBack = true, stepsToPreviousPage = 2) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt index 866691da37de..d26cfb07f473 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt @@ -545,6 +545,8 @@ class BrowserTabViewModel( val oldQuery = currentOmnibarViewState().omnibarText.toUri() val newQuery = omnibarText.toUri() + if (Patterns.WEB_URL.matcher(oldQuery.toString()).matches()) return + if (oldQuery == newQuery) { pixel.fire(String.format(Locale.US, PixelName.SERP_REQUERY.pixelName, PixelParameter.SERP_QUERY_NOT_CHANGED)) } else if (oldQuery.toString().isNotBlank()) { // blank means no previous search, don't send pixel