diff options
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_location_sync.js')
-rw-r--r-- | toolkit/components/search/tests/xpcshell/test_location_sync.js | 101 |
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); - } - } -}); |