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

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/
     3  */
     5 // This verifies that the extensions.checkCompatibility.* preferences work.
     7 var ADDONS = [{
     8   // Cannot be enabled as it has no target app info for the applciation
     9   id: "addon1@tests.mozilla.org",
    10   version: "1.0",
    11   name: "Test 1",
    12   targetApplications: [{
    13     id: "unknown@tests.mozilla.org",
    14     minVersion: "1",
    15     maxVersion: "1"
    16   }]
    17 }, {
    18   // Always appears incompatible but can be enabled if compatibility checking is
    19   // disabled
    20   id: "addon2@tests.mozilla.org",
    21   version: "1.0",
    22   name: "Test 2",
    23   targetApplications: [{
    24     id: "toolkit@mozilla.org",
    25     minVersion: "1",
    26     maxVersion: "1"
    27   }]
    28 }, {
    29   // Always appears incompatible but can be enabled if compatibility checking is
    30   // disabled
    31   id: "addon3@tests.mozilla.org",
    32   version: "1.0",
    33   name: "Test 3",
    34   targetApplications: [{
    35     id: "xpcshell@tests.mozilla.org",
    36     minVersion: "1",
    37     maxVersion: "1"
    38   }]
    39 }, { // Always compatible and enabled
    40   id: "addon4@tests.mozilla.org",
    41   version: "1.0",
    42   name: "Test 4",
    43   targetApplications: [{
    44     id: "toolkit@mozilla.org",
    45     minVersion: "1",
    46     maxVersion: "2"
    47   }]
    48 }, { // Always compatible and enabled
    49   id: "addon5@tests.mozilla.org",
    50   version: "1.0",
    51   name: "Test 5",
    52   targetApplications: [{
    53     id: "xpcshell@tests.mozilla.org",
    54     minVersion: "1",
    55     maxVersion: "3"
    56   }]
    57 }];
    59 const profileDir = gProfD.clone();
    60 profileDir.append("extensions");
    62 var gIsNightly = false;
    64 function run_test() {
    65   do_test_pending("checkcompatibility.js");
    66   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2.2.3", "2");
    68   ADDONS.forEach(function(a) {
    69     writeInstallRDFForExtension(a, profileDir);
    70   });
    72   gIsNightly = isNightlyChannel();
    74   startupManager();
    76   run_test_1();
    77 }
    79 /**
    80  * Checks that the add-ons are enabled as expected.
    81  * @param   overridden
    82  *          A boolean indicating that compatibility checking is overridden
    83  * @param   a1
    84  *          The Addon for addon1@tests.mozilla.org
    85  * @param   a2
    86  *          The Addon for addon2@tests.mozilla.org
    87  * @param   a3
    88  *          The Addon for addon3@tests.mozilla.org
    89  * @param   a4
    90  *          The Addon for addon4@tests.mozilla.org
    91  * @param   a5
    92  *          The Addon for addon5@tests.mozilla.org
    93  */
    94 function check_state(overridden, a1, a2, a3, a4, a5) {
    95   do_check_neq(a1, null);
    96   do_check_false(a1.isActive);
    97   do_check_false(a1.isCompatible);
    99   do_check_neq(a2, null);
   100   if (overridden)
   101     do_check_true(a2.isActive);
   102   else
   103     do_check_false(a2.isActive);
   104   do_check_false(a2.isCompatible);
   106   do_check_neq(a3, null);
   107   if (overridden)
   108     do_check_true(a3.isActive);
   109   else
   110     do_check_false(a3.isActive);
   111   do_check_false(a3.isCompatible);
   113   do_check_neq(a4, null);
   114   do_check_true(a4.isActive);
   115   do_check_true(a4.isCompatible);
   117   do_check_neq(a5, null);
   118   do_check_true(a5.isActive);
   119   do_check_true(a5.isCompatible);
   120 }
   122 // Tests that with compatibility checking enabled we see the incompatible
   123 // add-ons disabled
   124 function run_test_1() {
   125   AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
   126                                "addon2@tests.mozilla.org",
   127                                "addon3@tests.mozilla.org",
   128                                "addon4@tests.mozilla.org",
   129                                "addon5@tests.mozilla.org"],
   130                                function([a1, a2, a3, a4, a5]) {
   131     check_state(false, a1, a2, a3, a4, a5);
   133     do_execute_soon(run_test_2);
   134   });
   135 }
   137 // Tests that with compatibility checking disabled we see the incompatible
   138 // add-ons enabled
   139 function run_test_2() {
   140   if (gIsNightly)
   141     Services.prefs.setBoolPref("extensions.checkCompatibility.nightly", false);
   142   else
   143     Services.prefs.setBoolPref("extensions.checkCompatibility.2.2", false);
   144   restartManager();
   146   AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
   147                                "addon2@tests.mozilla.org",
   148                                "addon3@tests.mozilla.org",
   149                                "addon4@tests.mozilla.org",
   150                                "addon5@tests.mozilla.org"],
   151                                function([a1, a2, a3, a4, a5]) {
   152     check_state(true, a1, a2, a3, a4, a5);
   154     do_execute_soon(run_test_3);
   155   });
   156 }
   158 // Tests that with compatibility checking disabled we see the incompatible
   159 // add-ons enabled.
   160 function run_test_3() {
   161   if (!gIsNightly)
   162     Services.prefs.setBoolPref("extensions.checkCompatibility.2.1a", false);
   163   restartManager("2.1a4");
   165   AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
   166                                "addon2@tests.mozilla.org",
   167                                "addon3@tests.mozilla.org",
   168                                "addon4@tests.mozilla.org",
   169                                "addon5@tests.mozilla.org"],
   170                                function([a1, a2, a3, a4, a5]) {
   171     check_state(true, a1, a2, a3, a4, a5);
   173     do_execute_soon(run_test_4);
   174   });
   175 }
   177 // Tests that with compatibility checking enabled we see the incompatible
   178 // add-ons disabled.
   179 function run_test_4() {
   180   if (gIsNightly)
   181     Services.prefs.setBoolPref("extensions.checkCompatibility.nightly", true);
   182   else
   183     Services.prefs.setBoolPref("extensions.checkCompatibility.2.1a", true);
   184   restartManager();
   186   AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
   187                                "addon2@tests.mozilla.org",
   188                                "addon3@tests.mozilla.org",
   189                                "addon4@tests.mozilla.org",
   190                                "addon5@tests.mozilla.org"],
   191                                function([a1, a2, a3, a4, a5]) {
   192     check_state(false, a1, a2, a3, a4, a5);
   194     do_execute_soon(do_test_finished);
   195   });
   196 }

mercurial