diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /toolkit/components/search/tests/xpcshell/test_hidden.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_hidden.js')
-rw-r--r-- | toolkit/components/search/tests/xpcshell/test_hidden.js | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_hidden.js b/toolkit/components/search/tests/xpcshell/test_hidden.js new file mode 100644 index 000000000..b784f3624 --- /dev/null +++ b/toolkit/components/search/tests/xpcshell/test_hidden.js @@ -0,0 +1,93 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +const kUrlPref = "geoSpecificDefaults.url"; + +function run_test() { + removeMetadata(); + removeCacheFile(); + + do_load_manifest("data/chrome.manifest"); + + configureToLoadJarEngines(); + + // Geo specific defaults won't be fetched if there's no country code. + Services.prefs.setCharPref("browser.search.geoip.url", + 'data:application/json,{"country_code": "US"}'); + + // Make 'hidden' the only visible engine. + let url = "data:application/json,{\"interval\": 31536000, \"settings\": {\"searchDefault\": \"hidden\", \"visibleDefaultEngines\": [\"hidden\"]}}"; + Services.prefs.getDefaultBranch(BROWSER_SEARCH_PREF).setCharPref(kUrlPref, url); + + do_check_false(Services.search.isInitialized); + + run_next_test(); +} + +add_task(function* async_init() { + let commitPromise = promiseAfterCache() + yield asyncInit(); + + let engines = Services.search.getEngines(); + do_check_eq(engines.length, 1); + + // The default test jar engine has been hidden. + let engine = Services.search.getEngineByName("bug645970"); + do_check_eq(engine, null); + + // The hidden engine is visible. + engine = Services.search.getEngineByName("hidden"); + do_check_neq(engine, null); + + // The next test does a sync init, which won't do the geoSpecificDefaults XHR, + // so it depends on the metadata having been written to disk. + yield commitPromise; +}); + +add_task(function* sync_init() { + let unInitPromise = waitForSearchNotification("uninit-complete"); + let reInitPromise = asyncReInit(); + yield unInitPromise; + do_check_false(Services.search.isInitialized); + + // Synchronously check the current default engine, to force a sync init. + do_check_eq(Services.search.currentEngine.name, "hidden"); + do_check_true(Services.search.isInitialized); + + let engines = Services.search.getEngines(); + do_check_eq(engines.length, 1); + + // The default test jar engine has been hidden. + let engine = Services.search.getEngineByName("bug645970"); + do_check_eq(engine, null); + + // The hidden engine is visible. + engine = Services.search.getEngineByName("hidden"); + do_check_neq(engine, null); + + yield reInitPromise; +}); + +add_task(function* invalid_engine() { + // Trigger a new request. + yield forceExpiration(); + + // Set the visibleDefaultEngines list to something that contains a non-existent engine. + // This should cause the search service to ignore the list altogether and fallback to + // local defaults. + let url = "data:application/json,{\"interval\": 31536000, \"settings\": {\"searchDefault\": \"hidden\", \"visibleDefaultEngines\": [\"hidden\", \"bogus\"]}}"; + Services.prefs.getDefaultBranch(BROWSER_SEARCH_PREF).setCharPref(kUrlPref, url); + + yield asyncReInit(); + + let engines = Services.search.getEngines(); + do_check_eq(engines.length, 1); + + // The default test jar engine is visible. + let engine = Services.search.getEngineByName("bug645970"); + do_check_neq(engine, null); + + // The hidden engine is... hidden. + engine = Services.search.getEngineByName("hidden"); + do_check_eq(engine, null); +}); |