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

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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 }

mercurial