Bug 1394777 - Add test for Activity Stream about:home search. r=Mardak

MozReview-Commit-ID: HYjjeGgqshl

--HG--
extra : rebase_source : 613c8ae29e2a6b3921bc9a00df32c8be2471f1cf
This commit is contained in:
Andrei Oprea 2017-09-01 14:37:04 +02:00
parent 64a4b87c4c
commit 7fef598305

View File

@ -44,6 +44,11 @@ add_task(async function setup() {
});
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();
@ -86,3 +91,52 @@ add_task(async function test_abouthome_simpleQuery() {
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);
});