Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/
3 */
5 // This verifies that multiple calls to the async API return fully formed
6 // add-ons
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 };
19 const profileDir = gProfD.clone();
20 profileDir.append("extensions");
22 var gAddon;
24 // Sets up the profile by installing an add-on.
25 function run_test() {
26 do_test_pending();
28 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
30 writeInstallRDFForExtension(addon1, profileDir);
32 startupManager();
34 run_test_1();
35 }
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;
42 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
43 do_check_neq(a1, null);
44 do_check_eq(a1.name, "Test 1");
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 });
55 AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
56 do_check_neq(a1, null);
57 do_check_eq(a1.name, "Test 1");
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 });
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");
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 });
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");
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 }
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");
107 do_check_eq(a1, gAddon);
109 do_execute_soon(do_test_finished);
110 });
112 }