|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ |
|
3 */ |
|
4 |
|
5 // Tests the list view |
|
6 |
|
7 let tempScope = {}; |
|
8 Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", tempScope); |
|
9 let LightweightThemeManager = tempScope.LightweightThemeManager; |
|
10 |
|
11 |
|
12 var gProvider; |
|
13 var gManagerWindow; |
|
14 var gCategoryUtilities; |
|
15 |
|
16 var gApp = document.getElementById("bundle_brand").getString("brandShortName"); |
|
17 var gVersion = Services.appinfo.version; |
|
18 var gBlocklistURL = Services.urlFormatter.formatURLPref("extensions.blocklist.detailsURL"); |
|
19 var gPluginURL = Services.urlFormatter.formatURLPref("plugins.update.url"); |
|
20 var gDate = new Date(2010, 7, 16); |
|
21 |
|
22 var gLWTheme = { |
|
23 id: "4", |
|
24 version: "1", |
|
25 name: "Bling", |
|
26 description: "SO MUCH BLING!", |
|
27 author: "Pixel Pusher", |
|
28 homepageURL: "http://mochi.test:8888/data/index.html", |
|
29 headerURL: "http://mochi.test:8888/data/header.png", |
|
30 footerURL: "http://mochi.test:8888/data/footer.png", |
|
31 previewURL: "http://mochi.test:8888/data/preview.png", |
|
32 iconURL: "http://mochi.test:8888/data/icon.png" |
|
33 }; |
|
34 |
|
35 |
|
36 function test() { |
|
37 waitForExplicitFinish(); |
|
38 |
|
39 gProvider = new MockProvider(); |
|
40 |
|
41 gProvider.createAddons([{ |
|
42 id: "addon1@tests.mozilla.org", |
|
43 name: "Test add-on", |
|
44 version: "1.0", |
|
45 description: "A test add-on", |
|
46 longDescription: " A longer description", |
|
47 updateDate: gDate |
|
48 }, { |
|
49 id: "addon2@tests.mozilla.org", |
|
50 name: "Test add-on 2", |
|
51 version: "2.0", |
|
52 longDescription: " A longer description", |
|
53 _userDisabled: true, |
|
54 isActive: false, |
|
55 }, { |
|
56 id: "addon3@tests.mozilla.org", |
|
57 name: "Test add-on 3", |
|
58 longDescription: " A longer description", |
|
59 isActive: false, |
|
60 isCompatible: false, |
|
61 appDisabled: true, |
|
62 permissions: AddonManager.PERM_CAN_ENABLE | |
|
63 AddonManager.PERM_CAN_DISABLE | |
|
64 AddonManager.PERM_CAN_UPGRADE |
|
65 }, { |
|
66 id: "addon4@tests.mozilla.org", |
|
67 blocklistURL: "http://example.com/addon4@tests.mozilla.org", |
|
68 name: "Test add-on 4", |
|
69 _userDisabled: true, |
|
70 isActive: false, |
|
71 blocklistState: Ci.nsIBlocklistService.STATE_SOFTBLOCKED |
|
72 }, { |
|
73 id: "addon5@tests.mozilla.org", |
|
74 blocklistURL: "http://example.com/addon5@tests.mozilla.org", |
|
75 name: "Test add-on 5", |
|
76 isActive: false, |
|
77 blocklistState: Ci.nsIBlocklistService.STATE_BLOCKED, |
|
78 appDisabled: true |
|
79 }, { |
|
80 id: "addon6@tests.mozilla.org", |
|
81 blocklistURL: "http://example.com/addon6@tests.mozilla.org", |
|
82 name: "Test add-on 6", |
|
83 operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE |
|
84 }, { |
|
85 id: "addon7@tests.mozilla.org", |
|
86 blocklistURL: "http://example.com/addon7@tests.mozilla.org", |
|
87 name: "Test add-on 7", |
|
88 blocklistState: Ci.nsIBlocklistService.STATE_OUTDATED, |
|
89 }, { |
|
90 id: "addon8@tests.mozilla.org", |
|
91 blocklistURL: "http://example.com/addon8@tests.mozilla.org", |
|
92 name: "Test add-on 8", |
|
93 blocklistState: Ci.nsIBlocklistService.STATE_VULNERABLE_UPDATE_AVAILABLE, |
|
94 }, { |
|
95 id: "addon9@tests.mozilla.org", |
|
96 blocklistURL: "http://example.com/addon9@tests.mozilla.org", |
|
97 name: "Test add-on 9", |
|
98 blocklistState: Ci.nsIBlocklistService.STATE_VULNERABLE_NO_UPDATE, |
|
99 }]); |
|
100 |
|
101 open_manager(null, function(aWindow) { |
|
102 gManagerWindow = aWindow; |
|
103 gCategoryUtilities = new CategoryUtilities(gManagerWindow); |
|
104 run_next_test(); |
|
105 }); |
|
106 } |
|
107 |
|
108 function end_test() { |
|
109 close_manager(gManagerWindow, function() { |
|
110 finish(); |
|
111 }); |
|
112 } |
|
113 |
|
114 function get_test_items() { |
|
115 var tests = "@tests.mozilla.org"; |
|
116 |
|
117 var items = {}; |
|
118 var item = gManagerWindow.document.getElementById("addon-list").firstChild; |
|
119 |
|
120 while (item) { |
|
121 if (item.mAddon.id.substring(item.mAddon.id.length - tests.length) == tests) |
|
122 items[item.mAddon.name] = item; |
|
123 item = item.nextSibling; |
|
124 } |
|
125 |
|
126 return items; |
|
127 } |
|
128 |
|
129 function get_node(parent, anonid) { |
|
130 return parent.ownerDocument.getAnonymousElementByAttribute(parent, "anonid", anonid); |
|
131 } |
|
132 |
|
133 function get_class_node(parent, cls) { |
|
134 return parent.ownerDocument.getAnonymousElementByAttribute(parent, "class", cls); |
|
135 } |
|
136 |
|
137 // Check that the list appears to have displayed correctly and trigger some |
|
138 // changes |
|
139 add_test(function() { |
|
140 gCategoryUtilities.openType("extension", function() { |
|
141 let items = get_test_items(); |
|
142 is(Object.keys(items).length, 9, "Should be nine add-ons installed"); |
|
143 |
|
144 info("Addon 1"); |
|
145 let addon = items["Test add-on"]; |
|
146 addon.parentNode.ensureElementIsVisible(addon); |
|
147 is(get_node(addon, "name").value, "Test add-on", "Name should be correct"); |
|
148 is_element_visible(get_node(addon, "version"), "Version should be visible"); |
|
149 is(get_node(addon, "version").value, "1.0", "Version should be correct"); |
|
150 is_element_visible(get_node(addon, "description"), "Description should be visible"); |
|
151 is(get_node(addon, "description").value, "A test add-on", "Description should be correct"); |
|
152 is_element_hidden(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be hidden"); |
|
153 is_element_hidden(get_class_node(addon, "update-postfix"), "Update postfix should be hidden"); |
|
154 is(get_node(addon, "date-updated").value, formatDate(gDate), "Update date should be correct"); |
|
155 |
|
156 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
157 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
158 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
159 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
160 |
|
161 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
162 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
163 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
164 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
165 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
166 |
|
167 info("Disabling"); |
|
168 EventUtils.synthesizeMouseAtCenter(get_node(addon, "disable-btn"), {}, gManagerWindow); |
|
169 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
170 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
171 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
172 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
173 |
|
174 is_element_hidden(get_node(addon, "warning"), "Warning message should be visible"); |
|
175 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
176 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
177 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
178 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
179 is(get_node(addon, "pending").textContent, "Test add-on will be disabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
180 |
|
181 info("Addon 2"); |
|
182 addon = items["Test add-on 2"]; |
|
183 addon.parentNode.ensureElementIsVisible(addon); |
|
184 is(get_node(addon, "name").value, "Test add-on 2", "Name should be correct"); |
|
185 is_element_visible(get_node(addon, "version"), "Version should be visible"); |
|
186 is(get_node(addon, "version").value, "2.0", "Version should be correct"); |
|
187 is_element_hidden(get_node(addon, "description"), "Description should be hidden"); |
|
188 is_element_visible(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be visible"); |
|
189 is_element_hidden(get_class_node(addon, "update-postfix"), "Update postfix should be hidden"); |
|
190 is(get_node(addon, "date-updated").value, "Unknown", "Date should be correct"); |
|
191 |
|
192 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
193 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
194 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
195 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
196 |
|
197 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
198 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
199 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
200 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
201 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
202 |
|
203 info("Enabling"); |
|
204 EventUtils.synthesizeMouseAtCenter(get_node(addon, "enable-btn"), {}, gManagerWindow); |
|
205 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
206 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
207 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
208 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
209 |
|
210 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
211 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
212 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
213 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
214 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
215 is(get_node(addon, "pending").textContent, "Test add-on 2 will be enabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
216 |
|
217 info("Addon 3"); |
|
218 addon = items["Test add-on 3"]; |
|
219 addon.parentNode.ensureElementIsVisible(addon); |
|
220 is(get_node(addon, "name").value, "Test add-on 3", "Name should be correct"); |
|
221 is_element_hidden(get_node(addon, "version"), "Version should be hidden"); |
|
222 |
|
223 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
224 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
225 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
226 is_element_hidden(get_node(addon, "remove-btn"), "Remove button should be hidden"); |
|
227 |
|
228 is_element_visible(get_node(addon, "warning"), "Warning message should be visible"); |
|
229 is(get_node(addon, "warning").textContent, "Test add-on 3 is incompatible with " + gApp + " " + gVersion + ".", "Warning message should be correct"); |
|
230 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
231 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
232 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
233 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
234 |
|
235 info("Addon 4"); |
|
236 addon = items["Test add-on 4"]; |
|
237 addon.parentNode.ensureElementIsVisible(addon); |
|
238 is(get_node(addon, "name").value, "Test add-on 4", "Name should be correct"); |
|
239 |
|
240 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
241 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
242 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
243 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
244 |
|
245 is_element_visible(get_node(addon, "warning"), "Warning message should be visible"); |
|
246 is(get_node(addon, "warning").textContent, "Test add-on 4 is known to cause security or stability issues.", "Warning message should be correct"); |
|
247 is_element_visible(get_node(addon, "warning-link"), "Warning link should be visible"); |
|
248 is(get_node(addon, "warning-link").value, "More Information", "Warning link text should be correct"); |
|
249 is(get_node(addon, "warning-link").href, "http://example.com/addon4@tests.mozilla.org", "Warning link should be correct"); |
|
250 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
251 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
252 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
253 |
|
254 info("Enabling"); |
|
255 EventUtils.synthesizeMouseAtCenter(get_node(addon, "enable-btn"), {}, gManagerWindow); |
|
256 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
257 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
258 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
259 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
260 |
|
261 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
262 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
263 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
264 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
265 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
266 is(get_node(addon, "pending").textContent, "Test add-on 4 will be enabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
267 |
|
268 info("Addon 5"); |
|
269 addon = items["Test add-on 5"]; |
|
270 addon.parentNode.ensureElementIsVisible(addon); |
|
271 is(get_node(addon, "name").value, "Test add-on 5", "Name should be correct"); |
|
272 |
|
273 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
274 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
275 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
276 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
277 |
|
278 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
279 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
280 is_element_visible(get_node(addon, "error"), "Error message should be visible"); |
|
281 is(get_node(addon, "error").textContent, "Test add-on 5 has been disabled due to security or stability issues.", "Error message should be correct"); |
|
282 is_element_visible(get_node(addon, "error-link"), "Error link should be visible"); |
|
283 is(get_node(addon, "error-link").value, "More Information", "Error link text should be correct"); |
|
284 is(get_node(addon, "error-link").href, "http://example.com/addon5@tests.mozilla.org", "Error link should be correct"); |
|
285 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
286 |
|
287 info("Addon 6"); |
|
288 addon = items["Test add-on 6"]; |
|
289 addon.parentNode.ensureElementIsVisible(addon); |
|
290 is(get_node(addon, "name").value, "Test add-on 6", "Name should be correct"); |
|
291 is_element_hidden(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be hidden"); |
|
292 |
|
293 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
294 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
295 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
296 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
297 |
|
298 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
299 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
300 is_element_hidden(get_node(addon, "error"), "Error message should be visible"); |
|
301 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
302 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
303 |
|
304 info("Disabling"); |
|
305 EventUtils.synthesizeMouseAtCenter(get_node(addon, "disable-btn"), {}, gManagerWindow); |
|
306 is_element_visible(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be visible"); |
|
307 |
|
308 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
309 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
310 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
311 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
312 |
|
313 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
314 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
315 is_element_hidden(get_node(addon, "error"), "Error message should be visible"); |
|
316 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
317 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
318 |
|
319 info("Addon 7"); |
|
320 addon = items["Test add-on 7"]; |
|
321 addon.parentNode.ensureElementIsVisible(addon); |
|
322 is(get_node(addon, "name").value, "Test add-on 7", "Name should be correct"); |
|
323 |
|
324 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
325 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
326 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
327 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
328 |
|
329 is_element_visible(get_node(addon, "warning"), "Warning message should be hidden"); |
|
330 is(get_node(addon, "warning").textContent, "An important update is available for Test add-on 7.", "Warning message should be correct"); |
|
331 is_element_visible(get_node(addon, "warning-link"), "Warning link should be visible"); |
|
332 is(get_node(addon, "warning-link").value, "Update Now", "Warning link text should be correct"); |
|
333 is(get_node(addon, "warning-link").href, gPluginURL, "Warning link should be correct"); |
|
334 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
335 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
336 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
337 |
|
338 info("Disabling"); |
|
339 EventUtils.synthesizeMouseAtCenter(get_node(addon, "disable-btn"), {}, gManagerWindow); |
|
340 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
341 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
342 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
343 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
344 |
|
345 is_element_hidden(get_node(addon, "warning"), "Warning message should be visible"); |
|
346 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
347 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
348 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
349 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
350 is(get_node(addon, "pending").textContent, "Test add-on 7 will be disabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
351 |
|
352 info("Addon 8"); |
|
353 addon = items["Test add-on 8"]; |
|
354 addon.parentNode.ensureElementIsVisible(addon); |
|
355 is(get_node(addon, "name").value, "Test add-on 8", "Name should be correct"); |
|
356 |
|
357 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
358 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
359 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
360 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
361 |
|
362 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
363 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
364 is_element_visible(get_node(addon, "error"), "Error message should be visible"); |
|
365 is(get_node(addon, "error").textContent, "Test add-on 8 is known to be vulnerable and should be updated.", "Error message should be correct"); |
|
366 is_element_visible(get_node(addon, "error-link"), "Error link should be visible"); |
|
367 is(get_node(addon, "error-link").value, "Update Now", "Error link text should be correct"); |
|
368 is(get_node(addon, "error-link").href, "http://example.com/addon8@tests.mozilla.org", "Error link should be correct"); |
|
369 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
370 |
|
371 info("Addon 9"); |
|
372 addon = items["Test add-on 9"]; |
|
373 addon.parentNode.ensureElementIsVisible(addon); |
|
374 is(get_node(addon, "name").value, "Test add-on 9", "Name should be correct"); |
|
375 |
|
376 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
377 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
378 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
379 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
380 |
|
381 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
382 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
383 is_element_visible(get_node(addon, "error"), "Error message should be visible"); |
|
384 is(get_node(addon, "error").textContent, "Test add-on 9 is known to be vulnerable. Use with caution.", "Error message should be correct"); |
|
385 is_element_visible(get_node(addon, "error-link"), "Error link should be visible"); |
|
386 is(get_node(addon, "error-link").value, "More Information", "Error link text should be correct"); |
|
387 is(get_node(addon, "error-link").href, "http://example.com/addon9@tests.mozilla.org", "Error link should be correct"); |
|
388 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
389 |
|
390 run_next_test(); |
|
391 }); |
|
392 }); |
|
393 |
|
394 // Check the add-ons are now in the right state |
|
395 add_test(function() { |
|
396 AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org", |
|
397 "addon2@tests.mozilla.org", |
|
398 "addon4@tests.mozilla.org", |
|
399 "addon6@tests.mozilla.org"], |
|
400 function([a1, a2, a4, a6]) { |
|
401 is(a1.pendingOperations, AddonManager.PENDING_DISABLE, "Add-on 1 should be pending disable"); |
|
402 is(a2.pendingOperations, AddonManager.PENDING_ENABLE, "Add-on 2 should be pending enable"); |
|
403 is(a4.pendingOperations, AddonManager.PENDING_ENABLE, "Add-on 4 should be pending enable"); |
|
404 |
|
405 run_next_test(); |
|
406 }); |
|
407 }); |
|
408 |
|
409 // Reload the list to make sure the changes are still pending and that undoing |
|
410 // works |
|
411 add_test(function() { |
|
412 gCategoryUtilities.openType("plugin", function() { |
|
413 gCategoryUtilities.openType("extension", function() { |
|
414 let items = get_test_items(); |
|
415 is(Object.keys(items).length, 9, "Should be nine add-ons installed"); |
|
416 |
|
417 info("Addon 1"); |
|
418 let addon = items["Test add-on"]; |
|
419 addon.parentNode.ensureElementIsVisible(addon); |
|
420 is(get_node(addon, "name").value, "Test add-on", "Name should be correct"); |
|
421 is_element_visible(get_node(addon, "version"), "Version should be visible"); |
|
422 is(get_node(addon, "version").value, "1.0", "Version should be correct"); |
|
423 is_element_visible(get_node(addon, "description"), "Description should be visible"); |
|
424 is(get_node(addon, "description").value, "A test add-on", "Description should be correct"); |
|
425 is_element_hidden(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be hidden"); |
|
426 is_element_hidden(get_class_node(addon, "update-postfix"), "Update postfix should be hidden"); |
|
427 is(get_node(addon, "date-updated").value, formatDate(gDate), "Update date should be correct"); |
|
428 |
|
429 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
430 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
431 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
432 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
433 |
|
434 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
435 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
436 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
437 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
438 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
439 is(get_node(addon, "pending").textContent, "Test add-on will be disabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
440 |
|
441 info("Undoing"); |
|
442 EventUtils.synthesizeMouseAtCenter(get_node(addon, "undo-btn"), {}, gManagerWindow); |
|
443 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
444 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
445 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
446 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
447 |
|
448 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
449 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
450 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
451 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
452 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
453 |
|
454 info("Addon 2"); |
|
455 addon = items["Test add-on 2"]; |
|
456 addon.parentNode.ensureElementIsVisible(addon); |
|
457 is(get_node(addon, "name").value, "Test add-on 2", "Name should be correct"); |
|
458 is_element_visible(get_node(addon, "version"), "Version should be visible"); |
|
459 is(get_node(addon, "version").value, "2.0", "Version should be correct"); |
|
460 is_element_hidden(get_node(addon, "description"), "Description should be hidden"); |
|
461 is_element_visible(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be visible"); |
|
462 is_element_hidden(get_class_node(addon, "update-postfix"), "Update postfix should be hidden"); |
|
463 is(get_node(addon, "date-updated").value, "Unknown", "Date should be correct"); |
|
464 |
|
465 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
466 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
467 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
468 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
469 |
|
470 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
471 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
472 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
473 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
474 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
475 is(get_node(addon, "pending").textContent, "Test add-on 2 will be enabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
476 |
|
477 info("Undoing"); |
|
478 EventUtils.synthesizeMouseAtCenter(get_node(addon, "undo-btn"), {}, gManagerWindow); |
|
479 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
480 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
481 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
482 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
483 |
|
484 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
485 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
486 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
487 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
488 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
489 |
|
490 info("Addon 4"); |
|
491 addon = items["Test add-on 4"]; |
|
492 addon.parentNode.ensureElementIsVisible(addon); |
|
493 is(get_node(addon, "name").value, "Test add-on 4", "Name should be correct"); |
|
494 |
|
495 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
496 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
497 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
498 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
499 |
|
500 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
501 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
502 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
503 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
504 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
505 is(get_node(addon, "pending").textContent, "Test add-on 4 will be enabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
506 |
|
507 info("Undoing"); |
|
508 EventUtils.synthesizeMouseAtCenter(get_node(addon, "undo-btn"), {}, gManagerWindow); |
|
509 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
510 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
511 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
512 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
513 |
|
514 is_element_visible(get_node(addon, "warning"), "Warning message should be visible"); |
|
515 is(get_node(addon, "warning").textContent, "Test add-on 4 is known to cause security or stability issues.", "Warning message should be correct"); |
|
516 is_element_visible(get_node(addon, "warning-link"), "Warning link should be visible"); |
|
517 is(get_node(addon, "warning-link").value, "More Information", "Warning link text should be correct"); |
|
518 is(get_node(addon, "warning-link").href, "http://example.com/addon4@tests.mozilla.org", "Warning link should be correct"); |
|
519 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
520 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
521 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
522 |
|
523 info("Addon 6"); |
|
524 addon = items["Test add-on 6"]; |
|
525 addon.parentNode.ensureElementIsVisible(addon); |
|
526 is(get_node(addon, "name").value, "Test add-on 6", "Name should be correct"); |
|
527 is_element_visible(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be visible"); |
|
528 |
|
529 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
530 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
531 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
532 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
533 |
|
534 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
535 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
536 is_element_hidden(get_node(addon, "error"), "Error message should be visible"); |
|
537 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
538 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
539 |
|
540 info("Enabling"); |
|
541 EventUtils.synthesizeMouseAtCenter(get_node(addon, "enable-btn"), {}, gManagerWindow); |
|
542 is_element_hidden(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be hidden"); |
|
543 |
|
544 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
545 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
546 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
547 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
548 |
|
549 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
550 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
551 is_element_hidden(get_node(addon, "error"), "Error message should be visible"); |
|
552 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
553 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
554 |
|
555 info("Addon 7"); |
|
556 addon = items["Test add-on 7"]; |
|
557 addon.parentNode.ensureElementIsVisible(addon); |
|
558 is(get_node(addon, "name").value, "Test add-on 7", "Name should be correct"); |
|
559 |
|
560 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
561 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be visible"); |
|
562 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be hidden"); |
|
563 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
564 |
|
565 is_element_hidden(get_node(addon, "warning"), "Warning message should be visible"); |
|
566 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
567 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
568 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
569 is_element_visible(get_node(addon, "pending"), "Pending message should be visible"); |
|
570 is(get_node(addon, "pending").textContent, "Test add-on 7 will be disabled after you restart " + gApp + ".", "Pending message should be correct"); |
|
571 |
|
572 info("Undoing"); |
|
573 EventUtils.synthesizeMouseAtCenter(get_node(addon, "undo-btn"), {}, gManagerWindow); |
|
574 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
575 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
576 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
577 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
578 |
|
579 is_element_visible(get_node(addon, "warning"), "Warning message should be hidden"); |
|
580 is(get_node(addon, "warning").textContent, "An important update is available for Test add-on 7.", "Warning message should be correct"); |
|
581 is_element_visible(get_node(addon, "warning-link"), "Warning link should be visible"); |
|
582 is(get_node(addon, "warning-link").value, "Update Now", "Warning link text should be correct"); |
|
583 is(get_node(addon, "warning-link").href, gPluginURL, "Warning link should be correct"); |
|
584 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
585 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
586 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
587 |
|
588 run_next_test(); |
|
589 }); |
|
590 }); |
|
591 }); |
|
592 |
|
593 // Check the add-ons are now in the right state |
|
594 add_test(function() { |
|
595 AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org", |
|
596 "addon2@tests.mozilla.org", |
|
597 "addon4@tests.mozilla.org"], |
|
598 function([a1, a2, a4]) { |
|
599 is(a1.pendingOperations, 0, "Add-on 1 should not have any pending operations"); |
|
600 is(a2.pendingOperations, 0, "Add-on 1 should not have any pending operations"); |
|
601 is(a4.pendingOperations, 0, "Add-on 1 should not have any pending operations"); |
|
602 |
|
603 run_next_test(); |
|
604 }); |
|
605 }); |
|
606 |
|
607 // Check that upgrades with onExternalInstall take effect immediately |
|
608 add_test(function() { |
|
609 gProvider.createAddons([{ |
|
610 id: "addon1@tests.mozilla.org", |
|
611 name: "Test add-on replacement", |
|
612 version: "2.0", |
|
613 description: "A test add-on with a new description", |
|
614 updateDate: gDate, |
|
615 operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE |
|
616 }]); |
|
617 |
|
618 let items = get_test_items(); |
|
619 is(Object.keys(items).length, 9, "Should be nine add-ons installed"); |
|
620 |
|
621 let addon = items["Test add-on replacement"]; |
|
622 addon.parentNode.ensureElementIsVisible(addon); |
|
623 is(get_node(addon, "name").value, "Test add-on replacement", "Name should be correct"); |
|
624 is_element_visible(get_node(addon, "version"), "Version should be visible"); |
|
625 is(get_node(addon, "version").value, "2.0", "Version should be correct"); |
|
626 is_element_visible(get_node(addon, "description"), "Description should be visible"); |
|
627 is(get_node(addon, "description").value, "A test add-on with a new description", "Description should be correct"); |
|
628 is_element_hidden(get_class_node(addon, "disabled-postfix"), "Disabled postfix should be hidden"); |
|
629 is_element_hidden(get_class_node(addon, "update-postfix"), "Update postfix should be hidden"); |
|
630 is(get_node(addon, "date-updated").value, formatDate(gDate), "Update date should be correct"); |
|
631 |
|
632 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
633 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
634 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
635 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
636 |
|
637 is_element_hidden(get_node(addon, "warning"), "Warning message should be hidden"); |
|
638 is_element_hidden(get_node(addon, "warning-link"), "Warning link should be hidden"); |
|
639 is_element_hidden(get_node(addon, "error"), "Error message should be hidden"); |
|
640 is_element_hidden(get_node(addon, "error-link"), "Error link should be hidden"); |
|
641 is_element_hidden(get_node(addon, "pending"), "Pending message should be hidden"); |
|
642 |
|
643 run_next_test(); |
|
644 }); |
|
645 |
|
646 // Check that focus changes correctly move around the selected list item |
|
647 add_test(function() { |
|
648 function is_node_in_list(aNode) { |
|
649 var list = gManagerWindow.document.getElementById("addon-list"); |
|
650 |
|
651 while (aNode && aNode != list) |
|
652 aNode = aNode.parentNode; |
|
653 |
|
654 if (aNode) |
|
655 return true; |
|
656 return false; |
|
657 } |
|
658 |
|
659 // Ignore the OSX full keyboard access setting |
|
660 Services.prefs.setBoolPref("accessibility.tabfocus_applies_to_xul", false); |
|
661 |
|
662 let items = get_test_items(); |
|
663 |
|
664 var fm = Cc["@mozilla.org/focus-manager;1"]. |
|
665 getService(Ci.nsIFocusManager); |
|
666 |
|
667 let addon = items["Test add-on 6"]; |
|
668 EventUtils.synthesizeMouseAtCenter(addon, { }, gManagerWindow); |
|
669 is(fm.focusedElement, addon.parentNode, "Focus should have moved to the list"); |
|
670 |
|
671 EventUtils.synthesizeKey("VK_TAB", { }, gManagerWindow); |
|
672 is(fm.focusedElement, get_node(addon, "details-btn"), "Focus should have moved to the more button"); |
|
673 |
|
674 EventUtils.synthesizeKey("VK_TAB", { }, gManagerWindow); |
|
675 is(fm.focusedElement, get_node(addon, "disable-btn"), "Focus should have moved to the disable button"); |
|
676 |
|
677 EventUtils.synthesizeKey("VK_TAB", { }, gManagerWindow); |
|
678 is(fm.focusedElement, get_node(addon, "remove-btn"), "Focus should have moved to the remove button"); |
|
679 |
|
680 EventUtils.synthesizeKey("VK_TAB", { }, gManagerWindow); |
|
681 ok(!is_node_in_list(fm.focusedElement), "Focus should be outside the list"); |
|
682 |
|
683 EventUtils.synthesizeKey("VK_TAB", { shiftKey: true }, gManagerWindow); |
|
684 is(fm.focusedElement, get_node(addon, "remove-btn"), "Focus should have moved to the remove button"); |
|
685 |
|
686 EventUtils.synthesizeKey("VK_TAB", { shiftKey: true }, gManagerWindow); |
|
687 EventUtils.synthesizeKey("VK_TAB", { shiftKey: true }, gManagerWindow); |
|
688 is(fm.focusedElement, get_node(addon, "details-btn"), "Focus should have moved to the more button"); |
|
689 |
|
690 EventUtils.synthesizeKey("VK_TAB", { shiftKey: true }, gManagerWindow); |
|
691 is(fm.focusedElement, addon.parentNode, "Focus should have moved to the list"); |
|
692 |
|
693 EventUtils.synthesizeKey("VK_TAB", { shiftKey: true }, gManagerWindow); |
|
694 ok(!is_node_in_list(fm.focusedElement), "Focus should be outside the list"); |
|
695 |
|
696 try { |
|
697 Services.prefs.clearUserPref("accessibility.tabfocus_applies_to_xul"); |
|
698 } |
|
699 catch (e) { } |
|
700 |
|
701 run_next_test(); |
|
702 }); |
|
703 |
|
704 |
|
705 add_test(function() { |
|
706 info("Enabling lightweight theme"); |
|
707 LightweightThemeManager.currentTheme = gLWTheme; |
|
708 |
|
709 gManagerWindow.loadView("addons://list/theme"); |
|
710 wait_for_view_load(gManagerWindow, function() { |
|
711 var addon = get_addon_element(gManagerWindow, "4@personas.mozilla.org"); |
|
712 |
|
713 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
714 is_element_hidden(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
715 is_element_visible(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
716 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
717 |
|
718 info("Disabling lightweight theme"); |
|
719 LightweightThemeManager.currentTheme = null; |
|
720 |
|
721 is_element_hidden(get_node(addon, "preferences-btn"), "Preferences button should be hidden"); |
|
722 is_element_visible(get_node(addon, "enable-btn"), "Enable button should be hidden"); |
|
723 is_element_hidden(get_node(addon, "disable-btn"), "Disable button should be visible"); |
|
724 is_element_visible(get_node(addon, "remove-btn"), "Remove button should be visible"); |
|
725 |
|
726 AddonManager.getAddonByID("4@personas.mozilla.org", function(aAddon) { |
|
727 aAddon.uninstall(); |
|
728 run_next_test(); |
|
729 }); |
|
730 }); |
|
731 }); |
|
732 |
|
733 // Check that onPropertyChanges for appDisabled updates the UI |
|
734 add_test(function() { |
|
735 info("Checking that onPropertyChanges for appDisabled updates the UI"); |
|
736 |
|
737 AddonManager.getAddonByID("addon2@tests.mozilla.org", function(aAddon) { |
|
738 aAddon.userDisabled = true; |
|
739 aAddon.isCompatible = true; |
|
740 aAddon.appDisabled = false; |
|
741 |
|
742 gManagerWindow.loadView("addons://list/extension"); |
|
743 wait_for_view_load(gManagerWindow, function() { |
|
744 var el = get_addon_element(gManagerWindow, "addon2@tests.mozilla.org"); |
|
745 |
|
746 is(el.getAttribute("active"), "false", "Addon should not be marked as active"); |
|
747 is_element_hidden(get_node(el, "warning"), "Warning message should not be visible"); |
|
748 |
|
749 info("Making addon incompatible and appDisabled"); |
|
750 aAddon.isCompatible = false; |
|
751 aAddon.appDisabled = true; |
|
752 |
|
753 is(el.getAttribute("active"), "false", "Addon should not be marked as active"); |
|
754 is_element_visible(get_node(el, "warning"), "Warning message should be visible"); |
|
755 is(get_node(el, "warning").textContent, "Test add-on 2 is incompatible with " + gApp + " " + gVersion + ".", "Warning message should be correct"); |
|
756 |
|
757 run_next_test(); |
|
758 }); |
|
759 }); |
|
760 }); |