toolkit/mozapps/extensions/test/xpcshell/test_bug563256.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 themes switch as expected
     7 const PREF_GENERAL_SKINS_SELECTEDSKIN = "general.skins.selectedSkin";
     9 const profileDir = gProfD.clone();
    10 profileDir.append("extensions");
    12 function run_test() {
    13   do_test_pending();
    14   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
    16   writeInstallRDFForExtension({
    17     id: "default@tests.mozilla.org",
    18     version: "1.0",
    19     name: "Default",
    20     internalName: "classic/1.0",
    21     targetApplications: [{
    22       id: "xpcshell@tests.mozilla.org",
    23       minVersion: "1",
    24       maxVersion: "2"
    25     }]
    26   }, profileDir);
    28   writeInstallRDFForExtension({
    29     id: "alternate@tests.mozilla.org",
    30     version: "1.0",
    31     name: "Test 1",
    32     type: 4,
    33     internalName: "alternate/1.0",
    34     targetApplications: [{
    35       id: "xpcshell@tests.mozilla.org",
    36       minVersion: "1",
    37       maxVersion: "2"
    38     }]
    39   }, profileDir);
    41   startupManager();
    43   do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
    45   AddonManager.getAddonsByIDs(["default@tests.mozilla.org",
    46                                "alternate@tests.mozilla.org"], function([d, a]) {
    47     do_check_neq(d, null);
    48     do_check_false(d.userDisabled);
    49     do_check_false(d.appDisabled);
    50     do_check_true(d.isActive);
    51     do_check_true(isThemeInAddonsList(profileDir, d.id));
    52     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
    53     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
    55     do_check_neq(a, null);
    56     do_check_true(a.userDisabled);
    57     do_check_false(a.appDisabled);
    58     do_check_false(a.isActive);
    59     do_check_false(isThemeInAddonsList(profileDir, a.id));
    60     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
    61     do_check_true(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
    63     run_test_1(d, a);
    64   });
    65 }
    67 function end_test() {
    68   do_execute_soon(do_test_finished);
    69 }
    71 // Checks switching to a different theme and back again leaves everything the
    72 // same
    73 function run_test_1(d, a) {
    74   a.userDisabled = false;
    76   do_check_true(d.userDisabled);
    77   do_check_false(d.appDisabled);
    78   do_check_true(d.isActive);
    79   do_check_true(isThemeInAddonsList(profileDir, d.id));
    80   do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
    81   do_check_true(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
    83   do_check_false(a.userDisabled);
    84   do_check_false(a.appDisabled);
    85   do_check_false(a.isActive);
    86   do_check_false(isThemeInAddonsList(profileDir, a.id));
    87   do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
    88   do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
    90   do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
    92   d.userDisabled = false;
    94   do_check_false(d.userDisabled);
    95   do_check_false(d.appDisabled);
    96   do_check_true(d.isActive);
    97   do_check_true(isThemeInAddonsList(profileDir, d.id));
    98   do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
    99   do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   101   do_check_true(a.userDisabled);
   102   do_check_false(a.appDisabled);
   103   do_check_false(a.isActive);
   104   do_check_false(isThemeInAddonsList(profileDir, a.id));
   105   do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   106   do_check_true(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   108   do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   110   do_execute_soon(run_test_2);
   111 }
   113 // Tests that after the restart themes can be changed as expected
   114 function run_test_2() {
   115   restartManager();
   116   AddonManager.getAddonsByIDs(["default@tests.mozilla.org",
   117                                "alternate@tests.mozilla.org"], function([d, a]) {
   118     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   120     do_check_neq(d, null);
   121     do_check_false(d.userDisabled);
   122     do_check_false(d.appDisabled);
   123     do_check_true(d.isActive);
   124     do_check_true(isThemeInAddonsList(profileDir, d.id));
   125     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   126     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   128     do_check_neq(a, null);
   129     do_check_true(a.userDisabled);
   130     do_check_false(a.appDisabled);
   131     do_check_false(a.isActive);
   132     do_check_false(isThemeInAddonsList(profileDir, a.id));
   133     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   134     do_check_true(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   136     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   138     a.userDisabled = false;
   140     do_check_true(d.userDisabled);
   141     do_check_false(d.appDisabled);
   142     do_check_true(d.isActive);
   143     do_check_true(isThemeInAddonsList(profileDir, d.id));
   144     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   145     do_check_true(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   147     do_check_false(a.userDisabled);
   148     do_check_false(a.appDisabled);
   149     do_check_false(a.isActive);
   150     do_check_false(isThemeInAddonsList(profileDir, a.id));
   151     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   152     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   154     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   156     d.userDisabled = false;
   158     do_check_false(d.userDisabled);
   159     do_check_false(d.appDisabled);
   160     do_check_true(d.isActive);
   161     do_check_true(isThemeInAddonsList(profileDir, d.id));
   162     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   163     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   165     do_check_true(a.userDisabled);
   166     do_check_false(a.appDisabled);
   167     do_check_false(a.isActive);
   168     do_check_false(isThemeInAddonsList(profileDir, a.id));
   169     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   170     do_check_true(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   172     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   174     a.userDisabled = false;
   176     do_check_true(d.userDisabled);
   177     do_check_false(d.appDisabled);
   178     do_check_true(d.isActive);
   179     do_check_true(isThemeInAddonsList(profileDir, d.id));
   180     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   181     do_check_true(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   183     do_check_false(a.userDisabled);
   184     do_check_false(a.appDisabled);
   185     do_check_false(a.isActive);
   186     do_check_false(isThemeInAddonsList(profileDir, a.id));
   187     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   188     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   190     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   192     do_execute_soon(check_test_2);
   193   });
   194 }
   196 function check_test_2() {
   197   restartManager();
   198   AddonManager.getAddonsByIDs(["default@tests.mozilla.org",
   199                                "alternate@tests.mozilla.org"], callback_soon(function([d, a]) {
   200     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "alternate/1.0");
   202     do_check_true(d.userDisabled);
   203     do_check_false(d.appDisabled);
   204     do_check_false(d.isActive);
   205     do_check_false(isThemeInAddonsList(profileDir, d.id));
   206     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   207     do_check_true(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   209     do_check_false(a.userDisabled);
   210     do_check_false(a.appDisabled);
   211     do_check_true(a.isActive);
   212     do_check_true(isThemeInAddonsList(profileDir, a.id));
   213     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   214     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   216     d.userDisabled = false;
   218     do_check_false(d.userDisabled);
   219     do_check_false(d.appDisabled);
   220     do_check_false(d.isActive);
   221     do_check_false(isThemeInAddonsList(profileDir, d.id));
   222     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   223     do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   225     do_check_true(a.userDisabled);
   226     do_check_false(a.appDisabled);
   227     do_check_true(a.isActive);
   228     do_check_true(isThemeInAddonsList(profileDir, a.id));
   229     do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   230     do_check_true(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   232     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "alternate/1.0");
   234     restartManager();
   236     do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
   238     AddonManager.getAddonsByIDs(["default@tests.mozilla.org",
   239                                  "alternate@tests.mozilla.org"], function([d, a]) {
   240       do_check_neq(d, null);
   241       do_check_false(d.userDisabled);
   242       do_check_false(d.appDisabled);
   243       do_check_true(d.isActive);
   244       do_check_true(isThemeInAddonsList(profileDir, d.id));
   245       do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_DISABLE));
   246       do_check_false(hasFlag(d.permissions, AddonManager.PERM_CAN_ENABLE));
   248       do_check_neq(a, null);
   249       do_check_true(a.userDisabled);
   250       do_check_false(a.appDisabled);
   251       do_check_false(a.isActive);
   252       do_check_false(isThemeInAddonsList(profileDir, a.id));
   253       do_check_false(hasFlag(a.permissions, AddonManager.PERM_CAN_DISABLE));
   254       do_check_true(hasFlag(a.permissions, AddonManager.PERM_CAN_ENABLE));
   256       end_test();
   257     });
   258   }));
   259 }

mercurial