|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 function run_test() { |
|
5 do_test_pending(); |
|
6 |
|
7 removeMetadata(); |
|
8 removeCacheFile(); |
|
9 |
|
10 do_load_manifest("data/chrome.manifest"); |
|
11 |
|
12 let url = "chrome://testsearchplugin/locale/searchplugins/"; |
|
13 Services.prefs.setCharPref("browser.search.jarURIs", url); |
|
14 Services.prefs.setBoolPref("browser.search.loadFromJars", true); |
|
15 |
|
16 do_check_false(Services.search.isInitialized); |
|
17 let fallback = false; |
|
18 |
|
19 Services.search.init(function search_initialized(aStatus) { |
|
20 do_check_true(fallback); |
|
21 do_check_true(Components.isSuccessCode(aStatus)); |
|
22 do_check_true(Services.search.isInitialized); |
|
23 |
|
24 // test engines from dir are loaded. |
|
25 let engines = Services.search.getEngines(); |
|
26 do_check_true(engines.length > 1); |
|
27 |
|
28 // test jar engine is loaded ok. |
|
29 let engine = Services.search.getEngineByName("bug645970"); |
|
30 do_check_neq(engine, null); |
|
31 |
|
32 Services.prefs.clearUserPref("browser.search.jarURIs"); |
|
33 Services.prefs.clearUserPref("browser.search.loadFromJars"); |
|
34 |
|
35 do_test_finished(); |
|
36 }); |
|
37 |
|
38 // Execute test for the sync fallback while the async code is being executed. |
|
39 Services.obs.addObserver(function searchServiceObserver(aResult, aTopic, aVerb) { |
|
40 if (aVerb == "find-jar-engines") { |
|
41 Services.obs.removeObserver(searchServiceObserver, aTopic); |
|
42 fallback = true; |
|
43 |
|
44 do_check_false(Services.search.isInitialized); |
|
45 |
|
46 // test engines from dir are loaded. |
|
47 let engines = Services.search.getEngines(); |
|
48 do_check_true(engines.length > 1); |
|
49 |
|
50 // test jar engine is loaded ok. |
|
51 let engine = Services.search.getEngineByName("bug645970"); |
|
52 do_check_neq(engine, null); |
|
53 |
|
54 do_check_true(Services.search.isInitialized); |
|
55 } |
|
56 }, "browser-search-service", false); |
|
57 } |