summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/test_location_sync.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_location_sync.js')
-rw-r--r--toolkit/components/search/tests/xpcshell/test_location_sync.js101
1 files changed, 0 insertions, 101 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_location_sync.js b/toolkit/components/search/tests/xpcshell/test_location_sync.js
deleted file mode 100644
index 524a440fb..000000000
--- a/toolkit/components/search/tests/xpcshell/test_location_sync.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ */
-
-function getCountryCodePref() {
- try {
- return Services.prefs.getCharPref("browser.search.countryCode");
- } catch (_) {
- return undefined;
- }
-}
-
-function getIsUSPref() {
- try {
- return Services.prefs.getBoolPref("browser.search.isUS");
- } catch (_) {
- return undefined;
- }
-}
-
-// A console listener so we can listen for a log message from nsSearchService.
-function promiseTimezoneMessage() {
- return new Promise(resolve => {
- let listener = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIConsoleListener]),
- observe : function (msg) {
- if (msg.message.startsWith("getIsUS() fell back to a timezone check with the result=")) {
- Services.console.unregisterListener(listener);
- resolve(msg);
- }
- }
- };
- Services.console.registerListener(listener);
- });
-}
-
-function run_test() {
- installTestEngine();
-
- run_next_test();
-}
-
-// Force a sync init and ensure the right thing happens (ie, that no xhr
-// request is made and we fall back to the timezone-only trick)
-add_task(function* test_simple() {
- deepEqual(getCountryCodePref(), undefined, "no countryCode pref");
- deepEqual(getIsUSPref(), undefined, "no isUS pref");
-
- // Still set a geoip pref so we can (indirectly) check it wasn't used.
- Services.prefs.setCharPref("browser.search.geoip.url", 'data:application/json,{"country_code": "AU"}');
-
- ok(!Services.search.isInitialized);
-
- // setup a console listener for the timezone fallback message.
- let promiseTzMessage = promiseTimezoneMessage();
-
- // fetching the engines forces a sync init, and should have caused us to
- // check the timezone.
- Services.search.getEngines();
- ok(Services.search.isInitialized);
-
- // a little wait to check we didn't do the xhr thang.
- yield new Promise(resolve => {
- do_timeout(500, resolve);
- });
-
- let msg = yield promiseTzMessage;
- print("Timezone message:", msg.message);
- ok(msg.message.endsWith(isUSTimezone().toString()), "fell back to timezone and it matches our timezone");
-
- deepEqual(getCountryCodePref(), undefined, "didn't do the geoip xhr");
- // and no telemetry evidence of geoip.
- for (let hid of [
- "SEARCH_SERVICE_COUNTRY_FETCH_RESULT",
- "SEARCH_SERVICE_COUNTRY_FETCH_TIME_MS",
- "SEARCH_SERVICE_COUNTRY_TIMEOUT",
- "SEARCH_SERVICE_US_COUNTRY_MISMATCHED_TIMEZONE",
- "SEARCH_SERVICE_US_TIMEZONE_MISMATCHED_COUNTRY",
- "SEARCH_SERVICE_COUNTRY_FETCH_CAUSED_SYNC_INIT",
- ]) {
- let histogram = Services.telemetry.getHistogramById(hid);
- let snapshot = histogram.snapshot();
- equal(snapshot.sum, 0, hid);
- switch (snapshot.histogram_type) {
- case Ci.nsITelemetry.HISTOGRAM_FLAG:
- // flags are a special case in that they are initialized with a default
- // of one |0|.
- deepEqual(snapshot.counts, [1, 0, 0], hid);
- break;
- case Ci.nsITelemetry.HISTOGRAM_BOOLEAN:
- // booleans aren't initialized at all, so should have all zeros.
- deepEqual(snapshot.counts, [0, 0, 0], hid);
- break;
- case Ci.nsITelemetry.HISTOGRAM_EXPONENTIAL:
- case Ci.nsITelemetry.HISTOGRAM_LINEAR:
- equal(snapshot.counts.reduce((a, b) => a+b), 0, hid);
- break;
- default:
- ok(false, "unknown histogram type " + snapshot.histogram_type + " for " + hid);
- }
- }
-});