diff options
Diffstat (limited to 'browser/modules/test/browser_UsageTelemetry_urlbar.js')
-rw-r--r-- | browser/modules/test/browser_UsageTelemetry_urlbar.js | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/browser/modules/test/browser_UsageTelemetry_urlbar.js b/browser/modules/test/browser_UsageTelemetry_urlbar.js deleted file mode 100644 index 81d3e28ba..000000000 --- a/browser/modules/test/browser_UsageTelemetry_urlbar.js +++ /dev/null @@ -1,220 +0,0 @@ -"use strict"; - -const SCALAR_URLBAR = "browser.engagement.navigation.urlbar"; - -// The preference to enable suggestions in the urlbar. -const SUGGEST_URLBAR_PREF = "browser.urlbar.suggest.searches"; -// The name of the search engine used to generate suggestions. -const SUGGESTION_ENGINE_NAME = "browser_UsageTelemetry usageTelemetrySearchSuggestions.xml"; -const ONEOFF_URLBAR_PREF = "browser.urlbar.oneOffSearches"; - -let searchInAwesomebar = Task.async(function* (inputText, win=window) { - yield new Promise(r => waitForFocus(r, win)); - // Write the search query in the urlbar. - win.gURLBar.focus(); - win.gURLBar.value = inputText; - win.gURLBar.controller.startSearch(inputText); - // Wait for the popup to show. - yield BrowserTestUtils.waitForEvent(win.gURLBar.popup, "popupshown"); - // And then for the search to complete. - yield BrowserTestUtils.waitForCondition(() => win.gURLBar.controller.searchStatus >= - Ci.nsIAutoCompleteController.STATUS_COMPLETE_NO_MATCH); -}); - -/** - * Click one of the entries in the urlbar suggestion popup. - * - * @param {String} entryName - * The name of the elemet to click on. - */ -function clickURLBarSuggestion(entryName) { - // The entry in the suggestion list should follow the format: - // "<search term> <engine name> Search" - const expectedSuggestionName = entryName + " " + SUGGESTION_ENGINE_NAME + " Search"; - for (let child of gURLBar.popup.richlistbox.children) { - if (child.label === expectedSuggestionName) { - // This entry is the search suggestion we're looking for. - child.click(); - return; - } - } -} - -add_task(function* setup() { - // Create a new search engine. - Services.search.addEngineWithDetails("MozSearch", "", "mozalias", "", "GET", - "http://example.com/?q={searchTerms}"); - - // Make it the default search engine. - let engine = Services.search.getEngineByName("MozSearch"); - let originalEngine = Services.search.currentEngine; - Services.search.currentEngine = engine; - - // And the first one-off engine. - Services.search.moveEngine(engine, 0); - - // Enable search suggestions in the urlbar. - Services.prefs.setBoolPref(SUGGEST_URLBAR_PREF, true); - - // Enable the urlbar one-off buttons. - Services.prefs.setBoolPref(ONEOFF_URLBAR_PREF, true); - - // Enable Extended Telemetry. - yield SpecialPowers.pushPrefEnv({"set": [["toolkit.telemetry.enabled", true]]}); - - // Make sure to restore the engine once we're done. - registerCleanupFunction(function* () { - Services.search.currentEngine = originalEngine; - Services.search.removeEngine(engine); - Services.prefs.clearUserPref(SUGGEST_URLBAR_PREF, true); - Services.prefs.clearUserPref(ONEOFF_URLBAR_PREF); - }); -}); - -add_task(function* test_simpleQuery() { - // Let's reset the counts. - Services.telemetry.clearScalars(); - Services.telemetry.clearEvents(); - let search_hist = getSearchCountsHistogram(); - - let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank"); - - info("Simulate entering a simple search."); - let p = BrowserTestUtils.browserLoaded(tab.linkedBrowser); - yield searchInAwesomebar("simple query"); - EventUtils.sendKey("return"); - yield p; - - // Check if the scalars contain the expected values. - const scalars = - Services.telemetry.snapshotKeyedScalars(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - checkKeyedScalar(scalars, SCALAR_URLBAR, "search_enter", 1); - Assert.equal(Object.keys(scalars[SCALAR_URLBAR]).length, 1, - "This search must only increment one entry in the scalar."); - - // Make sure SEARCH_COUNTS contains identical values. - checkKeyedHistogram(search_hist, 'other-MozSearch.urlbar', 1); - - // Also check events. - let events = Services.telemetry.snapshotBuiltinEvents(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - events = events.filter(e => e[1] == "navigation" && e[2] == "search"); - checkEvents(events, [["navigation", "search", "urlbar", "enter", {engine: "other-MozSearch"}]]); - - yield BrowserTestUtils.removeTab(tab); -}); - -add_task(function* test_searchAlias() { - // Let's reset the counts. - Services.telemetry.clearScalars(); - Services.telemetry.clearEvents(); - let search_hist = getSearchCountsHistogram(); - - let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank"); - - info("Search using a search alias."); - let p = BrowserTestUtils.browserLoaded(tab.linkedBrowser); - yield searchInAwesomebar("mozalias query"); - EventUtils.sendKey("return"); - yield p; - - // Check if the scalars contain the expected values. - const scalars = - Services.telemetry.snapshotKeyedScalars(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - checkKeyedScalar(scalars, SCALAR_URLBAR, "search_alias", 1); - Assert.equal(Object.keys(scalars[SCALAR_URLBAR]).length, 1, - "This search must only increment one entry in the scalar."); - - // Make sure SEARCH_COUNTS contains identical values. - checkKeyedHistogram(search_hist, 'other-MozSearch.urlbar', 1); - - // Also check events. - let events = Services.telemetry.snapshotBuiltinEvents(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - events = events.filter(e => e[1] == "navigation" && e[2] == "search"); - checkEvents(events, [["navigation", "search", "urlbar", "alias", {engine: "other-MozSearch"}]]); - - yield BrowserTestUtils.removeTab(tab); -}); - -add_task(function* test_oneOff() { - // Let's reset the counts. - Services.telemetry.clearScalars(); - Services.telemetry.clearEvents(); - let search_hist = getSearchCountsHistogram(); - - let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank"); - - info("Perform a one-off search using the first engine."); - let p = BrowserTestUtils.browserLoaded(tab.linkedBrowser); - yield searchInAwesomebar("query"); - - info("Pressing Alt+Down to take us to the first one-off engine."); - EventUtils.synthesizeKey("VK_DOWN", { altKey: true }); - EventUtils.sendKey("return"); - yield p; - - // Check if the scalars contain the expected values. - const scalars = - Services.telemetry.snapshotKeyedScalars(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - checkKeyedScalar(scalars, SCALAR_URLBAR, "search_oneoff", 1); - Assert.equal(Object.keys(scalars[SCALAR_URLBAR]).length, 1, - "This search must only increment one entry in the scalar."); - - // Make sure SEARCH_COUNTS contains identical values. - checkKeyedHistogram(search_hist, 'other-MozSearch.urlbar', 1); - - // Also check events. - let events = Services.telemetry.snapshotBuiltinEvents(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - events = events.filter(e => e[1] == "navigation" && e[2] == "search"); - checkEvents(events, [["navigation", "search", "urlbar", "oneoff", {engine: "other-MozSearch"}]]); - - yield BrowserTestUtils.removeTab(tab); -}); - -add_task(function* test_suggestion() { - // Let's reset the counts. - Services.telemetry.clearScalars(); - Services.telemetry.clearEvents(); - let search_hist = getSearchCountsHistogram(); - - // Create an engine to generate search suggestions and add it as default - // for this test. - const url = getRootDirectory(gTestPath) + "usageTelemetrySearchSuggestions.xml"; - let suggestionEngine = yield new Promise((resolve, reject) => { - Services.search.addEngine(url, null, "", false, { - onSuccess(engine) { resolve(engine) }, - onError() { reject() } - }); - }); - - let previousEngine = Services.search.currentEngine; - Services.search.currentEngine = suggestionEngine; - - let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank"); - - info("Perform a one-off search using the first engine."); - let p = BrowserTestUtils.browserLoaded(tab.linkedBrowser); - yield searchInAwesomebar("query"); - info("Clicking the urlbar suggestion."); - clickURLBarSuggestion("queryfoo"); - yield p; - - // Check if the scalars contain the expected values. - const scalars = - Services.telemetry.snapshotKeyedScalars(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - checkKeyedScalar(scalars, SCALAR_URLBAR, "search_suggestion", 1); - Assert.equal(Object.keys(scalars[SCALAR_URLBAR]).length, 1, - "This search must only increment one entry in the scalar."); - - // Make sure SEARCH_COUNTS contains identical values. - let searchEngineId = 'other-' + suggestionEngine.name; - checkKeyedHistogram(search_hist, searchEngineId + '.urlbar', 1); - - // Also check events. - let events = Services.telemetry.snapshotBuiltinEvents(Ci.nsITelemetry.DATASET_RELEASE_CHANNEL_OPTIN, false); - events = events.filter(e => e[1] == "navigation" && e[2] == "search"); - checkEvents(events, [["navigation", "search", "urlbar", "suggestion", {engine: searchEngineId}]]); - - Services.search.currentEngine = previousEngine; - Services.search.removeEngine(suggestionEngine); - yield BrowserTestUtils.removeTab(tab); -}); |