browser/base/content/test/general/browser_urlbar_search_healthreport.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 "use strict";
     6 add_task(function* test_healthreport_search_recording() {
     7   try {
     8     let cm = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
     9     cm.getCategoryEntry("healthreport-js-provider-default", "SearchesProvider");
    10   } catch (ex) {
    11     // Health Report disabled, or no SearchesProvider.
    12     ok(true, "Firefox Health Report is not enabled.");
    13     return;
    14   }
    16   let reporter = Cc["@mozilla.org/datareporting/service;1"]
    17                    .getService()
    18                    .wrappedJSObject
    19                    .healthReporter;
    20   ok(reporter, "Health Reporter available.");
    21   yield reporter.onInit();
    22   let provider = reporter.getProvider("org.mozilla.searches");
    23   ok(provider, "Searches provider is available.");
    24   let m = provider.getMeasurement("counts", 3);
    26   let data = yield m.getValues();
    27   let now = new Date();
    28   let oldCount = 0;
    30   // This will to be need changed if default search engine is not Google.
    31   let field = "google.urlbar";
    33   if (data.days.hasDay(now)) {
    34     let day = data.days.getDay(now);
    35     if (day.has(field)) {
    36       oldCount = day.get(field);
    37     }
    38   }
    40   let tab = gBrowser.addTab();
    41   gBrowser.selectedTab = tab;
    43   let searchStr = "firefox health report";
    44   let expectedURL = Services.search.currentEngine.
    45                     getSubmission(searchStr, "", "keyword").uri.spec;
    47   // Expect the search URL to load but stop it as soon as it starts.
    48   let docLoadPromise = waitForDocLoadAndStopIt(expectedURL);
    50   // Trigger the search.
    51   gURLBar.value = searchStr;
    52   gURLBar.handleCommand();
    54   yield docLoadPromise;
    56   function waitForNextTick() {
    57     let deferred = Promise.defer();
    58     executeSoon(function () {
    59       deferred.resolve();
    60     });
    61     return deferred.promise;
    62   }
    63   yield waitForNextTick();
    65   data = yield m.getValues();
    66   ok(data.days.hasDay(now), "We have a search measurement for today.");
    67   let day = data.days.getDay(now);
    68   ok(day.has(field), "Have a search count for the urlbar.");
    69   let newCount = day.get(field);
    70   is(newCount, oldCount + 1, "We recorded one new search.");
    72   // We should record the default search engine if Telemetry is enabled.
    73   let oldTelemetry = Services.prefs.getBoolPref("toolkit.telemetry.enabled");
    74   Services.prefs.setBoolPref("toolkit.telemetry.enabled", true);
    76   m = provider.getMeasurement("engines", 1);
    77   yield provider.collectDailyData();
    78   data = yield m.getValues();
    80   ok(data.days.hasDay(now), "Have engines data when Telemetry is enabled.");
    81   day = data.days.getDay(now);
    82   ok(day.has("default"), "We have default engine data.");
    83   is(day.get("default"), "google", "The default engine is reported properly.");
    85   // Restore.
    86   Services.prefs.setBoolPref("toolkit.telemetry.enabled", oldTelemetry);
    88   gBrowser.removeTab(tab);
    89 });

mercurial