Commit ae805af4 authored by Dan Harrington's avatar Dan Harrington Committed by Commit Bot

feedv2: report NewTabPage.ActionAndroid2 ACTION_OPENED_SNIPPET

Bug: 1044139
Change-Id: Ieb32cc74c2e6bc18efd8520fb8794a3e44d38ed5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2341832
Auto-Submit: Dan H <harringtond@chromium.org>
Reviewed-by: default avatarCarlos Knippschild <carlosk@chromium.org>
Commit-Queue: Carlos Knippschild <carlosk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795688}
parent 3d6f70e0
...@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.AppHooks; ...@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.help.HelpAndFeedback;
import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate; import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate;
import org.chromium.chrome.browser.ntp.NewTabPageUma;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
...@@ -582,6 +583,7 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand ...@@ -582,6 +583,7 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand
public void navigateTab(String url, View actionSourceView) { public void navigateTab(String url, View actionSourceView) {
FeedStreamSurfaceJni.get().reportOpenAction(mNativeFeedStreamSurface, FeedStreamSurfaceJni.get().reportOpenAction(mNativeFeedStreamSurface,
FeedStreamSurface.this, getSliceIdFromView(actionSourceView)); FeedStreamSurface.this, getSliceIdFromView(actionSourceView));
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET);
openUrl(url, WindowOpenDisposition.CURRENT_TAB); openUrl(url, WindowOpenDisposition.CURRENT_TAB);
...@@ -593,6 +595,7 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand ...@@ -593,6 +595,7 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand
public void navigateNewTab(String url, View actionSourceView) { public void navigateNewTab(String url, View actionSourceView) {
FeedStreamSurfaceJni.get().reportOpenInNewTabAction(mNativeFeedStreamSurface, FeedStreamSurfaceJni.get().reportOpenInNewTabAction(mNativeFeedStreamSurface,
FeedStreamSurface.this, getSliceIdFromView(actionSourceView)); FeedStreamSurface.this, getSliceIdFromView(actionSourceView));
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET);
openUrl(url, WindowOpenDisposition.NEW_FOREGROUND_TAB); openUrl(url, WindowOpenDisposition.NEW_FOREGROUND_TAB);
...@@ -604,6 +607,7 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand ...@@ -604,6 +607,7 @@ public class FeedStreamSurface implements SurfaceActionsHandler, FeedActionsHand
public void navigateIncognitoTab(String url) { public void navigateIncognitoTab(String url) {
FeedStreamSurfaceJni.get().reportOpenInNewIncognitoTabAction( FeedStreamSurfaceJni.get().reportOpenInNewIncognitoTabAction(
mNativeFeedStreamSurface, FeedStreamSurface.this); mNativeFeedStreamSurface, FeedStreamSurface.this);
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_SNIPPET);
openUrl(url, WindowOpenDisposition.OFF_THE_RECORD); openUrl(url, WindowOpenDisposition.OFF_THE_RECORD);
......
...@@ -47,12 +47,15 @@ import org.robolectric.annotation.Config; ...@@ -47,12 +47,15 @@ import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog; import org.robolectric.shadows.ShadowLog;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.metrics.test.ShadowRecordHistogram;
import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.base.test.util.JniMocker; import org.chromium.base.test.util.JniMocker;
import org.chromium.base.test.util.MetricsUtils.HistogramDelta;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.AppHooksImpl; import org.chromium.chrome.browser.AppHooksImpl;
import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.help.HelpAndFeedback;
import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate; import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate;
import org.chromium.chrome.browser.ntp.NewTabPageUma;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.MockTab; import org.chromium.chrome.browser.tab.MockTab;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
...@@ -72,7 +75,7 @@ import java.util.Map; ...@@ -72,7 +75,7 @@ import java.util.Map;
/** Unit tests for {@link FeedStreamSeSurface}. */ /** Unit tests for {@link FeedStreamSeSurface}. */
@RunWith(BaseRobolectricTestRunner.class) @RunWith(BaseRobolectricTestRunner.class)
@Config(manifest = Config.NONE) @Config(manifest = Config.NONE, shadows = {ShadowRecordHistogram.class})
public class FeedStreamSurfaceTest { public class FeedStreamSurfaceTest {
private static final String TEST_DATA = "test"; private static final String TEST_DATA = "test";
private static final String TEST_URL = "https://www.chromium.org"; private static final String TEST_URL = "https://www.chromium.org";
...@@ -402,28 +405,38 @@ public class FeedStreamSurfaceTest { ...@@ -402,28 +405,38 @@ public class FeedStreamSurfaceTest {
@Test @Test
@SmallTest @SmallTest
public void testNavigateTab() { public void testNavigateTab() {
HistogramDelta actionOpenedSnippetDelta = new HistogramDelta(
"NewTabPage.ActionAndroid2", NewTabPageUma.ACTION_OPENED_SNIPPET);
when(mPageNavigationDelegate.openUrl(anyInt(), any())).thenReturn(new MockTab(1, false)); when(mPageNavigationDelegate.openUrl(anyInt(), any())).thenReturn(new MockTab(1, false));
mFeedStreamSurface.navigateTab(TEST_URL, null); mFeedStreamSurface.navigateTab(TEST_URL, null);
verify(mPageNavigationDelegate) verify(mPageNavigationDelegate)
.openUrl(ArgumentMatchers.eq(WindowOpenDisposition.CURRENT_TAB), any()); .openUrl(ArgumentMatchers.eq(WindowOpenDisposition.CURRENT_TAB), any());
assertEquals(1, actionOpenedSnippetDelta.getDelta());
} }
@Test @Test
@SmallTest @SmallTest
public void testNavigateNewTab() { public void testNavigateNewTab() {
HistogramDelta actionOpenedSnippetDelta = new HistogramDelta(
"NewTabPage.ActionAndroid2", NewTabPageUma.ACTION_OPENED_SNIPPET);
when(mPageNavigationDelegate.openUrl(anyInt(), any())).thenReturn(new MockTab(1, false)); when(mPageNavigationDelegate.openUrl(anyInt(), any())).thenReturn(new MockTab(1, false));
mFeedStreamSurface.navigateNewTab(TEST_URL); mFeedStreamSurface.navigateNewTab(TEST_URL);
verify(mPageNavigationDelegate) verify(mPageNavigationDelegate)
.openUrl(ArgumentMatchers.eq(WindowOpenDisposition.NEW_FOREGROUND_TAB), any()); .openUrl(ArgumentMatchers.eq(WindowOpenDisposition.NEW_FOREGROUND_TAB), any());
assertEquals(1, actionOpenedSnippetDelta.getDelta());
} }
@Test @Test
@SmallTest @SmallTest
public void testNavigateIncognitoTab() { public void testNavigateIncognitoTab() {
HistogramDelta actionOpenedSnippetDelta = new HistogramDelta(
"NewTabPage.ActionAndroid2", NewTabPageUma.ACTION_OPENED_SNIPPET);
when(mPageNavigationDelegate.openUrl(anyInt(), any())).thenReturn(new MockTab(1, false)); when(mPageNavigationDelegate.openUrl(anyInt(), any())).thenReturn(new MockTab(1, false));
mFeedStreamSurface.navigateIncognitoTab(TEST_URL); mFeedStreamSurface.navigateIncognitoTab(TEST_URL);
verify(mPageNavigationDelegate) verify(mPageNavigationDelegate)
.openUrl(ArgumentMatchers.eq(WindowOpenDisposition.OFF_THE_RECORD), any()); .openUrl(ArgumentMatchers.eq(WindowOpenDisposition.OFF_THE_RECORD), any());
assertEquals(1, actionOpenedSnippetDelta.getDelta());
} }
@Test @Test
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment