diff options
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_defaultEngine.js')
-rw-r--r-- | toolkit/components/search/tests/xpcshell/test_defaultEngine.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_defaultEngine.js b/toolkit/components/search/tests/xpcshell/test_defaultEngine.js new file mode 100644 index 000000000..13d9922de --- /dev/null +++ b/toolkit/components/search/tests/xpcshell/test_defaultEngine.js @@ -0,0 +1,51 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +/* + * Test that currentEngine and defaultEngine properties can be set and yield the + * proper events and behavior (search results) + */ + +"use strict"; + +function run_test() { + removeMetadata(); + updateAppInfo(); + useHttpServer(); + + run_next_test(); +} + +add_task(function* test_defaultEngine() { + let search = Services.search; + + let originalDefault = search.defaultEngine; + + let [engine1, engine2] = yield addTestEngines([ + { name: "Test search engine", xmlFileName: "engine.xml" }, + { name: "A second test engine", xmlFileName: "engine2.xml" }, + ]); + + search.defaultEngine = engine1; + do_check_eq(search.defaultEngine, engine1); + search.defaultEngine = engine2 + do_check_eq(search.defaultEngine, engine2); + search.defaultEngine = engine1; + do_check_eq(search.defaultEngine, engine1); + + // Test that hiding the currently-default engine affects the defaultEngine getter + // We fallback first to the original default... + engine1.hidden = true; + do_check_eq(search.defaultEngine, originalDefault); + + // ... and then to the first visible engine in the list, so move our second + // engine to that position. + search.moveEngine(engine2, 0); + originalDefault.hidden = true; + do_check_eq(search.defaultEngine, engine2); + + // Test that setting defaultEngine to an already-hidden engine works, but + // doesn't change the return value of the getter + search.defaultEngine = engine1; + do_check_eq(search.defaultEngine, engine2); +}); |