toolkit/mozapps/extensions/test/xpcshell/test_bug619730.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:f4c33633ed91
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/
3 */
4
5 // Tests whether
6 const Cc = Components.classes;
7 const Ci = Components.interfaces;
8 const Cu = Components.utils;
9
10 Cu.import("resource://testing-common/httpd.js");
11
12 var gTestserver = new HttpServer();
13 gTestserver.start(-1);
14 gPort = gTestserver.identity.primaryPort;
15 mapFile("/data/test_bug619730.xml", gTestserver);
16
17 function load_blocklist(file, aCallback) {
18 Services.obs.addObserver(function() {
19 Services.obs.removeObserver(arguments.callee, "blocklist-updated");
20
21 do_execute_soon(aCallback);
22 }, "blocklist-updated", false);
23
24 Services.prefs.setCharPref("extensions.blocklist.url", "http://localhost:" +
25 gPort + "/data/" + file);
26 var blocklist = Cc["@mozilla.org/extensions/blocklist;1"].
27 getService(Ci.nsITimerCallback);
28 blocklist.notify(null);
29 }
30
31 var gSawGFX = false;
32 var gSawTest = false;
33
34 // Performs the initial setup
35 function run_test() {
36 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "3", "8");
37 startupManager();
38
39 do_test_pending();
40
41 Services.obs.addObserver(function(aSubject, aTopic, aData) {
42 do_check_true(aSubject instanceof AM_Ci.nsIDOMElement);
43 do_check_eq(aSubject.getAttribute("testattr"), "GFX");
44 do_check_eq(aSubject.childNodes.length, 2);
45 gSawGFX = true;
46 }, "blocklist-data-gfxItems", false);
47
48 Services.obs.addObserver(function(aSubject, aTopic, aData) {
49 do_check_true(aSubject instanceof AM_Ci.nsIDOMElement);
50 do_check_eq(aSubject.getAttribute("testattr"), "FOO");
51 do_check_eq(aSubject.childNodes.length, 3);
52 gSawTest = true;
53 }, "blocklist-data-testItems", false);
54
55 Services.obs.addObserver(function(aSubject, aTopic, aData) {
56 do_check_true(gSawGFX);
57 do_check_true(gSawTest);
58 }, "blocklist-data-fooItems", false);
59
60 // Need to wait for the blocklist to load; Bad Things happen if the test harness
61 // shuts down AddonManager before the blocklist service is done telling it about
62 // changes
63 load_blocklist("test_bug619730.xml", () => gTestserver.stop(do_test_finished));
64 }

mercurial