Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/
3 */
5 // This tests that all properties are read from the install manifests and that
6 // items are correctly enabled/disabled based on them (blocklist tests are
7 // elsewhere)
9 function run_test() {
10 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
11 const profileDir = gProfD.clone();
12 profileDir.append("extensions");
14 writeInstallRDFForExtension({
15 id: "addon1@tests.mozilla.org",
16 version: "1.0",
17 optionsURL: "chrome://test/content/options.xul",
18 aboutURL: "chrome://test/content/about.xul",
19 iconURL: "chrome://test/skin/icon.png",
20 icon64URL: "chrome://test/skin/icon64.png",
21 targetApplications: [{
22 id: "xpcshell@tests.mozilla.org",
23 minVersion: "1",
24 maxVersion: "1"
25 }],
26 name: "Test Addon 1",
27 description: "Test Description",
28 creator: "Test Creator",
29 homepageURL: "http://www.example.com",
30 developer: [
31 "Test Developer 1",
32 "Test Developer 2"
33 ],
34 translator: [
35 "Test Translator 1",
36 "Test Translator 2"
37 ],
38 contributor: [
39 "Test Contributor 1",
40 "Test Contributor 2"
41 ]
42 }, profileDir);
44 writeInstallRDFForExtension({
45 id: "addon2@tests.mozilla.org",
46 version: "1.0",
47 updateURL: "https://www.foo.com",
48 targetApplications: [{
49 id: "xpcshell@tests.mozilla.org",
50 minVersion: "1",
51 maxVersion: "1"
52 }],
53 name: "Test Addon 2"
54 }, profileDir);
56 writeInstallRDFForExtension({
57 id: "addon3@tests.mozilla.org",
58 version: "1.0",
59 updateURL: "http://www.foo.com",
60 targetApplications: [{
61 id: "xpcshell@tests.mozilla.org",
62 minVersion: "1",
63 maxVersion: "1"
64 }],
65 name: "Test Addon 3"
66 }, profileDir);
68 writeInstallRDFForExtension({
69 id: "addon4@tests.mozilla.org",
70 version: "1.0",
71 updateURL: "http://www.foo.com",
72 updateKey: "foo",
73 targetApplications: [{
74 id: "xpcshell@tests.mozilla.org",
75 minVersion: "1",
76 maxVersion: "1"
77 }],
78 name: "Test Addon 4"
79 }, profileDir);
81 writeInstallRDFForExtension({
82 id: "addon5@tests.mozilla.org",
83 version: "1.0",
84 targetApplications: [{
85 id: "xpcshell@tests.mozilla.org",
86 minVersion: "1",
87 maxVersion: "*"
88 }],
89 name: "Test Addon 5"
90 }, profileDir);
92 writeInstallRDFForExtension({
93 id: "addon6@tests.mozilla.org",
94 version: "1.0",
95 targetApplications: [{
96 id: "xpcshell@tests.mozilla.org",
97 minVersion: "0",
98 maxVersion: "1"
99 }],
100 name: "Test Addon 6"
101 }, profileDir);
103 writeInstallRDFForExtension({
104 id: "addon7@tests.mozilla.org",
105 version: "1.0",
106 targetApplications: [{
107 id: "xpcshell@tests.mozilla.org",
108 minVersion: "0",
109 maxVersion: "0"
110 }],
111 name: "Test Addon 7"
112 }, profileDir);
114 writeInstallRDFForExtension({
115 id: "addon8@tests.mozilla.org",
116 version: "1.0",
117 targetApplications: [{
118 id: "xpcshell@tests.mozilla.org",
119 minVersion: "1.1",
120 maxVersion: "*"
121 }],
122 name: "Test Addon 8"
123 }, profileDir);
125 writeInstallRDFForExtension({
126 id: "addon9@tests.mozilla.org",
127 version: "1.0",
128 targetApplications: [{
129 id: "toolkit@mozilla.org",
130 minVersion: "1.9.2",
131 maxVersion: "1.9.*"
132 }],
133 name: "Test Addon 9"
134 }, profileDir);
136 writeInstallRDFForExtension({
137 id: "addon10@tests.mozilla.org",
138 version: "1.0",
139 targetApplications: [{
140 id: "toolkit@mozilla.org",
141 minVersion: "1.9.2.1",
142 maxVersion: "1.9.*"
143 }],
144 name: "Test Addon 10"
145 }, profileDir);
147 writeInstallRDFForExtension({
148 id: "addon11@tests.mozilla.org",
149 version: "1.0",
150 targetApplications: [{
151 id: "toolkit@mozilla.org",
152 minVersion: "1.9",
153 maxVersion: "1.9.2"
154 }],
155 name: "Test Addon 11"
156 }, profileDir);
158 writeInstallRDFForExtension({
159 id: "addon12@tests.mozilla.org",
160 version: "1.0",
161 targetApplications: [{
162 id: "toolkit@mozilla.org",
163 minVersion: "1.9",
164 maxVersion: "1.9.1.*"
165 }],
166 name: "Test Addon 12"
167 }, profileDir);
169 writeInstallRDFForExtension({
170 id: "addon13@tests.mozilla.org",
171 version: "1.0",
172 targetApplications: [{
173 id: "toolkit@mozilla.org",
174 minVersion: "1.9",
175 maxVersion: "1.9.*"
176 }, {
177 id: "xpcshell@tests.mozilla.org",
178 minVersion: "0",
179 maxVersion: "0.5"
180 }],
181 name: "Test Addon 13"
182 }, profileDir);
184 writeInstallRDFForExtension({
185 id: "addon14@tests.mozilla.org",
186 version: "1.0",
187 targetApplications: [{
188 id: "toolkit@mozilla.org",
189 minVersion: "1.9",
190 maxVersion: "1.9.1"
191 }, {
192 id: "xpcshell@tests.mozilla.org",
193 minVersion: "1",
194 maxVersion: "1"
195 }],
196 name: "Test Addon 14"
197 }, profileDir);
199 writeInstallRDFForExtension({
200 id: "addon15@tests.mozilla.org",
201 version: "1.0",
202 updateKey: "foo",
203 targetApplications: [{
204 id: "xpcshell@tests.mozilla.org",
205 minVersion: "1",
206 maxVersion: "1"
207 }],
208 name: "Test Addon 15"
209 }, profileDir);
211 writeInstallRDFForExtension({
212 id: "addon16@tests.mozilla.org",
213 version: "1.0",
214 updateKey: "foo",
215 updateURL: "https://www.foo.com",
216 targetApplications: [{
217 id: "xpcshell@tests.mozilla.org",
218 minVersion: "1",
219 maxVersion: "1"
220 }],
221 name: "Test Addon 16"
222 }, profileDir);
224 writeInstallRDFForExtension({
225 id: "addon17@tests.mozilla.org",
226 version: "1.0",
227 optionsURL: "chrome://test/content/options.xul",
228 optionsType: "2",
229 targetApplications: [{
230 id: "xpcshell@tests.mozilla.org",
231 minVersion: "1",
232 maxVersion: "1"
233 }],
234 name: "Test Addon 17"
235 }, profileDir);
237 writeInstallRDFForExtension({
238 id: "addon18@tests.mozilla.org",
239 version: "1.0",
240 targetApplications: [{
241 id: "xpcshell@tests.mozilla.org",
242 minVersion: "1",
243 maxVersion: "1"
244 }],
245 name: "Test Addon 18"
246 }, profileDir, null, "options.xul");
248 writeInstallRDFForExtension({
249 id: "addon19@tests.mozilla.org",
250 version: "1.0",
251 optionsType: "99",
252 targetApplications: [{
253 id: "xpcshell@tests.mozilla.org",
254 minVersion: "1",
255 maxVersion: "1"
256 }],
257 name: "Test Addon 19"
258 }, profileDir);
260 writeInstallRDFForExtension({
261 id: "addon20@tests.mozilla.org",
262 version: "1.0",
263 optionsType: "1",
264 optionsURL: "chrome://test/content/options.xul",
265 targetApplications: [{
266 id: "xpcshell@tests.mozilla.org",
267 minVersion: "1",
268 maxVersion: "1"
269 }],
270 name: "Test Addon 20"
271 }, profileDir);
273 writeInstallRDFForExtension({
274 id: "addon21@tests.mozilla.org",
275 version: "1.0",
276 optionsType: "3",
277 optionsURL: "chrome://test/content/options.xul",
278 targetApplications: [{
279 id: "xpcshell@tests.mozilla.org",
280 minVersion: "1",
281 maxVersion: "1"
282 }],
283 name: "Test Addon 21"
284 }, profileDir);
286 writeInstallRDFForExtension({
287 id: "addon22@tests.mozilla.org",
288 version: "1.0",
289 optionsType: "2",
290 targetApplications: [{
291 id: "xpcshell@tests.mozilla.org",
292 minVersion: "1",
293 maxVersion: "1"
294 }],
295 name: "Test Addon 22"
296 }, profileDir);
298 writeInstallRDFForExtension({
299 id: "addon23@tests.mozilla.org",
300 version: "1.0",
301 optionsType: "2",
302 targetApplications: [{
303 id: "xpcshell@tests.mozilla.org",
304 minVersion: "1",
305 maxVersion: "1"
306 }],
307 name: "Test Addon 23"
308 }, profileDir, null, "options.xul");
310 writeInstallRDFForExtension({
311 id: "addon24@tests.mozilla.org",
312 version: "1.0",
313 targetApplications: [{
314 id: "xpcshell@tests.mozilla.org",
315 minVersion: "1",
316 maxVersion: "1"
317 }],
318 name: "Test Addon 24"
319 }, profileDir, null, "options.xul");
321 writeInstallRDFForExtension({
322 id: "addon25@tests.mozilla.org",
323 version: "1.0",
324 optionsType: "3",
325 targetApplications: [{
326 id: "xpcshell@tests.mozilla.org",
327 minVersion: "1",
328 maxVersion: "1"
329 }],
330 name: "Test Addon 25"
331 }, profileDir);
333 writeInstallRDFForExtension({
334 id: "addon26@tests.mozilla.org",
335 version: "1.0",
336 optionsType: "4",
337 targetApplications: [{
338 id: "xpcshell@tests.mozilla.org",
339 minVersion: "1",
340 maxVersion: "1"
341 }],
342 name: "Test Addon 26"
343 }, profileDir, null, "options.xul");
345 do_test_pending();
346 startupManager();
347 AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
348 "addon2@tests.mozilla.org",
349 "addon3@tests.mozilla.org",
350 "addon4@tests.mozilla.org",
351 "addon5@tests.mozilla.org",
352 "addon6@tests.mozilla.org",
353 "addon7@tests.mozilla.org",
354 "addon8@tests.mozilla.org",
355 "addon9@tests.mozilla.org",
356 "addon10@tests.mozilla.org",
357 "addon11@tests.mozilla.org",
358 "addon12@tests.mozilla.org",
359 "addon13@tests.mozilla.org",
360 "addon14@tests.mozilla.org",
361 "addon15@tests.mozilla.org",
362 "addon16@tests.mozilla.org",
363 "addon17@tests.mozilla.org",
364 "addon18@tests.mozilla.org",
365 "addon19@tests.mozilla.org",
366 "addon20@tests.mozilla.org",
367 "addon21@tests.mozilla.org",
368 "addon22@tests.mozilla.org",
369 "addon23@tests.mozilla.org",
370 "addon24@tests.mozilla.org",
371 "addon25@tests.mozilla.org",
372 "addon26@tests.mozilla.org"],
373 function([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
374 a11, a12, a13, a14, a15, a16, a17, a18, a19, a20,
375 a21, a22, a23, a24, a25, a26]) {
377 do_check_neq(a1, null);
378 do_check_eq(a1.id, "addon1@tests.mozilla.org");
379 do_check_eq(a1.type, "extension");
380 do_check_eq(a1.version, "1.0");
381 do_check_eq(a1.optionsURL, "chrome://test/content/options.xul");
382 do_check_eq(a1.optionsType, AddonManager.OPTIONS_TYPE_DIALOG);
383 do_check_eq(a1.aboutURL, "chrome://test/content/about.xul");
384 do_check_eq(a1.iconURL, "chrome://test/skin/icon.png");
385 do_check_eq(a1.icon64URL, "chrome://test/skin/icon64.png");
386 do_check_eq(a1.icons[32], "chrome://test/skin/icon.png");
387 do_check_eq(a1.icons[64], "chrome://test/skin/icon64.png");
388 do_check_eq(a1.name, "Test Addon 1");
389 do_check_eq(a1.description, "Test Description");
390 do_check_eq(a1.creator, "Test Creator");
391 do_check_eq(a1.homepageURL, "http://www.example.com");
392 do_check_eq(a1.developers[0], "Test Developer 1");
393 do_check_eq(a1.developers[1], "Test Developer 2");
394 do_check_eq(a1.translators[0], "Test Translator 1");
395 do_check_eq(a1.translators[1], "Test Translator 2");
396 do_check_eq(a1.contributors[0], "Test Contributor 1");
397 do_check_eq(a1.contributors[1], "Test Contributor 2");
398 do_check_true(a1.isActive);
399 do_check_false(a1.userDisabled);
400 do_check_false(a1.appDisabled);
401 do_check_true(a1.isCompatible);
402 do_check_true(a1.providesUpdatesSecurely);
403 do_check_eq(a1.blocklistState, AM_Ci.nsIBlocklistService.STATE_NOT_BLOCKED);
405 do_check_neq(a2, null);
406 do_check_eq(a2.id, "addon2@tests.mozilla.org");
407 do_check_true(a2.isActive);
408 do_check_false(a2.userDisabled);
409 do_check_false(a2.appDisabled);
410 do_check_true(a2.providesUpdatesSecurely);
412 do_check_neq(a3, null);
413 do_check_eq(a3.id, "addon3@tests.mozilla.org");
414 do_check_false(a3.isActive);
415 do_check_false(a3.userDisabled);
416 do_check_true(a3.appDisabled);
417 do_check_false(a3.providesUpdatesSecurely);
419 do_check_neq(a4, null);
420 do_check_eq(a4.id, "addon4@tests.mozilla.org");
421 do_check_true(a4.isActive);
422 do_check_false(a4.userDisabled);
423 do_check_false(a4.appDisabled);
424 do_check_true(a4.providesUpdatesSecurely);
426 do_check_neq(a5, null);
427 do_check_true(a5.isActive);
428 do_check_false(a5.userDisabled);
429 do_check_false(a5.appDisabled);
430 do_check_true(a5.isCompatible);
432 do_check_neq(a6, null);
433 do_check_true(a6.isActive);
434 do_check_false(a6.userDisabled);
435 do_check_false(a6.appDisabled);
436 do_check_true(a6.isCompatible);
438 do_check_neq(a7, null);
439 do_check_false(a7.isActive);
440 do_check_false(a7.userDisabled);
441 do_check_true(a7.appDisabled);
442 do_check_false(a7.isCompatible);
444 do_check_neq(a8, null);
445 do_check_false(a8.isActive);
446 do_check_false(a8.userDisabled);
447 do_check_true(a8.appDisabled);
448 do_check_false(a8.isCompatible);
450 do_check_neq(a9, null);
451 do_check_true(a9.isActive);
452 do_check_false(a9.userDisabled);
453 do_check_false(a9.appDisabled);
454 do_check_true(a9.isCompatible);
456 do_check_neq(a10, null);
457 do_check_false(a10.isActive);
458 do_check_false(a10.userDisabled);
459 do_check_true(a10.appDisabled);
460 do_check_false(a10.isCompatible);
462 do_check_neq(a11, null);
463 do_check_true(a11.isActive);
464 do_check_false(a11.userDisabled);
465 do_check_false(a11.appDisabled);
466 do_check_true(a11.isCompatible);
468 do_check_neq(a12, null);
469 do_check_false(a12.isActive);
470 do_check_false(a12.userDisabled);
471 do_check_true(a12.appDisabled);
472 do_check_false(a12.isCompatible);
474 do_check_neq(a13, null);
475 do_check_false(a13.isActive);
476 do_check_false(a13.userDisabled);
477 do_check_true(a13.appDisabled);
478 do_check_false(a13.isCompatible);
480 do_check_neq(a14, null);
481 do_check_true(a14.isActive);
482 do_check_false(a14.userDisabled);
483 do_check_false(a14.appDisabled);
484 do_check_true(a14.isCompatible);
486 do_check_neq(a15, null);
487 do_check_true(a15.isActive);
488 do_check_false(a15.userDisabled);
489 do_check_false(a15.appDisabled);
490 do_check_true(a15.isCompatible);
491 do_check_true(a15.providesUpdatesSecurely);
493 do_check_neq(a16, null);
494 do_check_true(a16.isActive);
495 do_check_false(a16.userDisabled);
496 do_check_false(a16.appDisabled);
497 do_check_true(a16.isCompatible);
498 do_check_true(a16.providesUpdatesSecurely);
500 do_check_neq(a17, null);
501 do_check_true(a17.isActive);
502 do_check_false(a17.userDisabled);
503 do_check_false(a17.appDisabled);
504 do_check_true(a17.isCompatible);
505 do_check_eq(a17.optionsURL, "chrome://test/content/options.xul");
506 do_check_eq(a17.optionsType, AddonManager.OPTIONS_TYPE_INLINE);
508 do_check_neq(a18, null);
509 do_check_true(a18.isActive);
510 do_check_false(a18.userDisabled);
511 do_check_false(a18.appDisabled);
512 do_check_true(a18.isCompatible);
513 if (Services.prefs.getBoolPref("extensions.alwaysUnpack")) {
514 do_check_eq(a18.optionsURL, Services.io.newFileURI(profileDir).spec +
515 "addon18@tests.mozilla.org/options.xul");
516 } else {
517 do_check_eq(a18.optionsURL, "jar:" + Services.io.newFileURI(profileDir).spec +
518 "addon18@tests.mozilla.org.xpi!/options.xul");
519 }
520 do_check_eq(a18.optionsType, AddonManager.OPTIONS_TYPE_INLINE);
522 do_check_eq(a19, null);
524 do_check_neq(a20, null);
525 do_check_true(a20.isActive);
526 do_check_false(a20.userDisabled);
527 do_check_false(a20.appDisabled);
528 do_check_true(a20.isCompatible);
529 do_check_eq(a20.optionsURL, "chrome://test/content/options.xul");
530 do_check_eq(a20.optionsType, AddonManager.OPTIONS_TYPE_DIALOG);
532 do_check_neq(a21, null);
533 do_check_true(a21.isActive);
534 do_check_false(a21.userDisabled);
535 do_check_false(a21.appDisabled);
536 do_check_true(a21.isCompatible);
537 do_check_eq(a21.optionsURL, "chrome://test/content/options.xul");
538 do_check_eq(a21.optionsType, AddonManager.OPTIONS_TYPE_TAB);
540 do_check_neq(a22, null);
541 do_check_eq(a22.optionsType, null);
542 do_check_eq(a22.optionsURL, null);
544 do_check_neq(a23, null);
545 do_check_eq(a23.optionsType, AddonManager.OPTIONS_TYPE_INLINE);
546 do_check_neq(a23.optionsURL, null);
548 do_check_neq(a24, null);
549 do_check_eq(a24.optionsType, AddonManager.OPTIONS_TYPE_INLINE);
550 do_check_neq(a24.optionsURL, null);
552 do_check_neq(a25, null);
553 do_check_eq(a25.optionsType, null);
554 do_check_eq(a25.optionsURL, null);
556 do_check_neq(a26, null);
557 do_check_eq(a26.optionsType, AddonManager.OPTIONS_TYPE_INLINE_INFO);
558 do_check_neq(a26.optionsURL, null);
560 do_execute_soon(do_test_finished);
561 });
562 }