summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js421
1 files changed, 0 insertions, 421 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js b/toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js
deleted file mode 100644
index c804b3bd6..000000000
--- a/toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js
+++ /dev/null
@@ -1,421 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that forcing undo for uninstall works for themes
-Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm");
-
-const PREF_GENERAL_SKINS_SELECTEDSKIN = "general.skins.selectedSkin";
-
-var defaultTheme = {
- id: "default@tests.mozilla.org",
- version: "1.0",
- name: "Test 1",
- internalName: "classic/1.0",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-var theme1 = {
- id: "theme1@tests.mozilla.org",
- version: "1.0",
- name: "Test 1",
- internalName: "theme1",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-function dummyLWTheme(id) {
- return {
- id: id || Math.random().toString(),
- name: Math.random().toString(),
- headerURL: "http://lwttest.invalid/a.png",
- footerURL: "http://lwttest.invalid/b.png",
- textcolor: Math.random().toString(),
- accentcolor: Math.random().toString()
- };
-}
-
-// Sets up the profile by installing an add-on.
-function run_test() {
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
- startupManager();
- do_register_cleanup(promiseShutdownManager);
-
- run_next_test();
-}
-
-add_task(function* checkDefault() {
- writeInstallRDFForExtension(defaultTheme, profileDir);
- yield promiseRestartManager();
-
- let d = yield promiseAddonByID("default@tests.mozilla.org");
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-});
-
-// Tests that uninstalling an enabled theme offers the option to undo
-add_task(function* uninstallEnabledOffersUndo() {
- writeInstallRDFForExtension(theme1, profileDir);
-
- yield promiseRestartManager();
-
- let t1 = yield promiseAddonByID("theme1@tests.mozilla.org");
-
- do_check_neq(t1, null);
- do_check_true(t1.userDisabled);
-
- t1.userDisabled = false;
-
- yield promiseRestartManager();
-
- let d = null;
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_true(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "theme1");
-
- prepare_test({
- "default@tests.mozilla.org": [
- "onEnabling"
- ],
- "theme1@tests.mozilla.org": [
- "onUninstalling"
- ]
- });
- t1.uninstall(true);
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_ENABLE);
-
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_true(hasFlag(t1.pendingOperations, AddonManager.PENDING_UNINSTALL));
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "theme1");
-
- yield promiseRestartManager();
-
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(t1, null);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-});
-
-//Tests that uninstalling an enabled theme can be undone
-add_task(function* canUndoUninstallEnabled() {
- writeInstallRDFForExtension(theme1, profileDir);
-
- yield promiseRestartManager();
-
- let t1 = yield promiseAddonByID("theme1@tests.mozilla.org");
-
- do_check_neq(t1, null);
- do_check_true(t1.userDisabled);
-
- t1.userDisabled = false;
-
- yield promiseRestartManager();
-
- let d = null;
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_true(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "theme1");
-
- prepare_test({
- "default@tests.mozilla.org": [
- "onEnabling"
- ],
- "theme1@tests.mozilla.org": [
- "onUninstalling"
- ]
- });
- t1.uninstall(true);
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_ENABLE);
-
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_true(hasFlag(t1.pendingOperations, AddonManager.PENDING_UNINSTALL));
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "theme1");
-
- prepare_test({
- "default@tests.mozilla.org": [
- "onOperationCancelled"
- ],
- "theme1@tests.mozilla.org": [
- "onOperationCancelled"
- ]
- });
- t1.cancelUninstall();
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_true(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- yield promiseRestartManager();
-
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_true(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "theme1");
-
- t1.uninstall();
- yield promiseRestartManager();
-});
-
-//Tests that uninstalling a disabled theme offers the option to undo
-add_task(function* uninstallDisabledOffersUndo() {
- writeInstallRDFForExtension(theme1, profileDir);
-
- yield promiseRestartManager();
-
- let [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_false(t1.isActive);
- do_check_true(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- prepare_test({
- "theme1@tests.mozilla.org": [
- "onUninstalling"
- ]
- });
- t1.uninstall(true);
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_false(t1.isActive);
- do_check_true(t1.userDisabled);
- do_check_true(hasFlag(t1.pendingOperations, AddonManager.PENDING_UNINSTALL));
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- yield promiseRestartManager();
-
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(t1, null);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-});
-
-//Tests that uninstalling a disabled theme can be undone
-add_task(function* canUndoUninstallDisabled() {
- writeInstallRDFForExtension(theme1, profileDir);
-
- yield promiseRestartManager();
-
- let [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_false(t1.isActive);
- do_check_true(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- prepare_test({
- "theme1@tests.mozilla.org": [
- "onUninstalling"
- ]
- });
- t1.uninstall(true);
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_false(t1.isActive);
- do_check_true(t1.userDisabled);
- do_check_true(hasFlag(t1.pendingOperations, AddonManager.PENDING_UNINSTALL));
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- prepare_test({
- "theme1@tests.mozilla.org": [
- "onOperationCancelled"
- ]
- });
- t1.cancelUninstall();
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_false(t1.isActive);
- do_check_true(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- yield promiseRestartManager();
-
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@tests.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_false(t1.isActive);
- do_check_true(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- t1.uninstall();
- yield promiseRestartManager();
-});
-
-//Tests that uninstalling an enabled lightweight theme offers the option to undo
-add_task(function* uninstallLWTOffersUndo() {
- // skipped since lightweight themes don't support undoable uninstall yet
- return;
- LightweightThemeManager.currentTheme = dummyLWTheme("theme1");
-
- let [ t1, d ] = yield promiseAddonsByIDs(["theme1@personas.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_true(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_neq(t1, null);
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_eq(t1.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- prepare_test({
- "default@tests.mozilla.org": [
- "onEnabling"
- ],
- "theme1@personas.mozilla.org": [
- "onUninstalling"
- ]
- });
- t1.uninstall(true);
- ensure_test_completed();
-
- do_check_neq(d, null);
- do_check_false(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_ENABLE);
-
- do_check_true(t1.isActive);
- do_check_false(t1.userDisabled);
- do_check_true(hasFlag(t1.pendingOperations, AddonManager.PENDING_UNINSTALL));
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-
- yield promiseRestartManager();
-
- [ t1, d ] = yield promiseAddonsByIDs(["theme1@personas.mozilla.org",
- "default@tests.mozilla.org"]);
-
- do_check_neq(d, null);
- do_check_true(d.isActive);
- do_check_false(d.userDisabled);
- do_check_eq(d.pendingOperations, AddonManager.PENDING_NONE);
-
- do_check_eq(t1, null);
-
- do_check_eq(Services.prefs.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN), "classic/1.0");
-});