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

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:43a4fd494677
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/
3 */
4
5 // This verifies that multiple calls to the async API return fully formed
6 // add-ons
7
8 var addon1 = {
9 id: "addon1@tests.mozilla.org",
10 version: "1.0",
11 name: "Test 1",
12 targetApplications: [{
13 id: "xpcshell@tests.mozilla.org",
14 minVersion: "1",
15 maxVersion: "1"
16 }]
17 };
18
19 const profileDir = gProfD.clone();
20 profileDir.append("extensions");
21
22 var gAddon;
23
24 // Sets up the profile by installing an add-on.
25 function run_test() {
26 do_test_pending();
27
28 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
29
30 writeInstallRDFForExtension(addon1, profileDir);
31
32 startupManager();
33
34 run_test_1();
35 }
36
37 // Verifies that multiple calls to get an add-on at various stages of execution
38 // return an add-on with a valid name.
39 function run_test_1() {
40 var count = 0;
41
42 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
43 do_check_neq(a1, null);
44 do_check_eq(a1.name, "Test 1");
45
46 if (count == 0)
47 gAddon = a1;
48 else
49 do_check_eq(a1, gAddon);
50 count++;
51 if (count == 4)
52 run_test_2();
53 });
54
55 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
56 do_check_neq(a1, null);
57 do_check_eq(a1.name, "Test 1");
58
59 if (count == 0)
60 gAddon = a1;
61 else
62 do_check_eq(a1, gAddon);
63 count++;
64 if (count == 4)
65 run_test_2();
66 });
67
68 do_execute_soon(function() {
69 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
70 do_check_neq(a1, null);
71 do_check_eq(a1.name, "Test 1");
72
73 if (count == 0)
74 gAddon = a1;
75 else
76 do_check_eq(a1, gAddon);
77 count++;
78 if (count == 4)
79 run_test_2();
80 });
81 });
82
83 do_execute_soon(function() {
84 do_execute_soon(function() {
85 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
86 do_check_neq(a1, null);
87 do_check_eq(a1.name, "Test 1");
88
89 if (count == 0)
90 gAddon = a1;
91 else
92 do_check_eq(a1, gAddon);
93 count++;
94 if (count == 4)
95 run_test_2();
96 });
97 });
98 });
99 }
100
101 // Verifies that a subsequent call gets the same add-on from the cache
102 function run_test_2() {
103 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
104 do_check_neq(a1, null);
105 do_check_eq(a1.name, "Test 1");
106
107 do_check_eq(a1, gAddon);
108
109 do_execute_soon(do_test_finished);
110 });
111
112 }

mercurial