Bug 1394777 - Add test for Activity Stream about:home search. draft
authorAndrei Oprea <andrei.br92@gmail.com>
Fri, 01 Sep 2017 14:37:04 +0200
changeset 658341 7c8a5c12226025e285659d0032b0d0563d7001b1
parent 658333 0afabd3e5c27b0036517b96eecb1f8553d027179
child 729611 bdb130eeb98c17d2072dd0815b97733d6fdbe1aa
push id77725
push userbmo:andrei.br92@gmail.com
push dateSun, 03 Sep 2017 22:27:38 +0000
bugs1394777
milestone57.0a1
Bug 1394777 - Add test for Activity Stream about:home search. MozReview-Commit-ID: HYjjeGgqshl
browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js
--- a/browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js
+++ b/browser/modules/test/browser/browser_UsageTelemetry_content_aboutHome.js
@@ -39,16 +39,21 @@ add_task(async function setup() {
     Services.search.removeEngine(engineDefault);
     Services.search.removeEngine(engineOneOff);
     await PlacesTestUtils.clearHistory();
     Services.telemetry.setEventRecordingEnabled("navigation", false);
   });
 });
 
 add_task(async function test_abouthome_simpleQuery() {
+  // Make sure Activity Stream about:home is disabled.
+  await SpecialPowers.pushPrefEnv({set: [
+    ["browser.newtabpage.activity-stream.aboutHome.enabled", false]
+  ]});
+
   // Let's reset the counts.
   Services.telemetry.clearScalars();
   Services.telemetry.clearEvents();
   let search_hist = getAndClearKeyedHistogram("SEARCH_COUNTS");
 
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
 
   info("Setup waiting for AboutHomeLoadSnippetsCompleted.");
@@ -81,8 +86,57 @@ add_task(async function test_abouthome_s
 
   // Also check events.
   let events = Services.telemetry.snapshotEvents(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false);
   events = (events.parent || []).filter(e => e[1] == "navigation" && e[2] == "search");
   checkEvents(events, [["navigation", "search", "about_home", "enter", {engine: "other-MozSearch"}]]);
 
   await BrowserTestUtils.removeTab(tab);
 });
+
+add_task(async function test_abouthome_activitystream_simpleQuery() {
+  // Make sure Activity Stream about:home is enabled.
+  await SpecialPowers.pushPrefEnv({set: [
+    ["browser.newtabpage.activity-stream.aboutHome.enabled", true]
+  ]});
+
+  // Let's reset the counts.
+  Services.telemetry.clearScalars();
+  Services.telemetry.clearEvents();
+  let search_hist = getAndClearKeyedHistogram("SEARCH_COUNTS");
+
+  let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
+
+  info("Setup waiting for search input to initialise.");
+  let promiseAboutHomeSearchLoaded = new Promise(resolve => {
+    tab.linkedBrowser.addEventListener("ContentSearchClient", function loadListener(event) {
+      tab.linkedBrowser.removeEventListener("ContentSearchClient", loadListener, true);
+      resolve();
+    }, true, true);
+  });
+
+  info("Load about:home.");
+  tab.linkedBrowser.loadURI("about:home");
+  info("Wait for ActivityStream search input.");
+  await promiseAboutHomeSearchLoaded;
+
+  info("Trigger a simple serch, just test + enter.");
+  let p = BrowserTestUtils.browserLoaded(tab.linkedBrowser);
+  await typeInSearchField(tab.linkedBrowser, "test query", "newtab-search-text");
+  await BrowserTestUtils.synthesizeKey("VK_RETURN", {}, tab.linkedBrowser);
+  await p;
+
+  // Check if the scalars contain the expected values.
+  const scalars = getParentProcessScalars(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, true, false);
+  checkKeyedScalar(scalars, SCALAR_ABOUT_HOME, "search_enter", 1);
+  Assert.equal(Object.keys(scalars[SCALAR_ABOUT_HOME]).length, 1,
+    "This search must only increment one entry in the scalar.");
+
+  // Make sure SEARCH_COUNTS contains identical values.
+  checkKeyedHistogram(search_hist, "other-MozSearch.abouthome", 1);
+
+  // Also check events.
+  let events = Services.telemetry.snapshotEvents(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false);
+  events = (events.parent || []).filter(e => e[1] == "navigation" && e[2] == "search");
+  checkEvents(events, [["navigation", "search", "about_home", "enter", {engine: "other-MozSearch"}]]);
+
+  await BrowserTestUtils.removeTab(tab);
+});