diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/browser/browser_bug608316.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/browser/browser_bug608316.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/browser/browser_bug608316.js b/toolkit/mozapps/extensions/test/browser/browser_bug608316.js new file mode 100644 index 0000000000..72bb61f497 --- /dev/null +++ b/toolkit/mozapps/extensions/test/browser/browser_bug608316.js @@ -0,0 +1,65 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Bug 608316 - Test that cancelling an uninstall during the onUninstalling +// event doesn't confuse the UI + +var gProvider; + +function test() { + waitForExplicitFinish(); + + gProvider = new MockProvider(); + + gProvider.createAddons([{ + id: "addon1@tests.mozilla.org", + name: "addon 1", + version: "1.0" + }]); + + run_next_test(); +} + + +function end_test() { + finish(); +} + + +add_test(function() { + var sawUninstall = false; + var listener = { + onUninstalling: function(aAddon, aRestartRequired) { + if (aAddon.id != "addon1@tests.mozilla.org") + return; + sawUninstall = true; + aAddon.cancelUninstall(); + } + } + + // Important to add this before opening the UI so it gets its events first + AddonManager.addAddonListener(listener); + registerCleanupFunction(function() { + AddonManager.removeAddonListener(listener); + }); + + open_manager("addons://list/extension", function(aManager) { + var addon = get_addon_element(aManager, "addon1@tests.mozilla.org"); + isnot(addon, null, "Should see the add-on in the list"); + + var removeBtn = aManager.document.getAnonymousElementByAttribute(addon, "anonid", "remove-btn"); + EventUtils.synthesizeMouseAtCenter(removeBtn, { }, aManager); + + ok(sawUninstall, "Should have seen the uninstall event"); + sawUninstall = false; + + is(addon.getAttribute("pending"), "", "Add-on should not be uninstalling"); + + close_manager(aManager, function() { + ok(!sawUninstall, "Should not have seen another uninstall event"); + + run_next_test(); + }); + }); +}); |