diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_undothemeuninstall.js | 421 |
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"); -}); |