michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ michael@0: */ michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: var gProvider = new MockProvider(); michael@0: let perms = AddonManager.PERM_CAN_UNINSTALL | michael@0: AddonManager.PERM_CAN_ENABLE | AddonManager.PERM_CAN_DISABLE; michael@0: michael@0: gProvider.createAddons([{ michael@0: id: "restart-enable-disable@tests.mozilla.org", michael@0: name: "restart-enable-disable", michael@0: description: "foo", michael@0: permissions: perms, michael@0: operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_ENABLE | michael@0: AddonManager.OP_NEEDS_RESTART_DISABLE michael@0: }, michael@0: { michael@0: id: "restart-uninstall@tests.mozilla.org", michael@0: name: "restart-uninstall", michael@0: description: "foo", michael@0: permissions: perms, michael@0: operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_UNINSTALL michael@0: }, michael@0: { michael@0: id: "no-restart-required@tests.mozilla.org", michael@0: name: "no-restart-required", michael@0: description: "bar", michael@0: permissions: perms, michael@0: operationsRequiringRestart: AddonManager.OP_NEEDS_RESTART_NONE michael@0: }]); michael@0: michael@0: open_manager("addons://list/extension", function(aWindow) { michael@0: let addonList = aWindow.document.getElementById("addon-list"); michael@0: let ed_r_Item, un_r_Item, no_r_Item; michael@0: for (let addonItem of addonList.childNodes) { michael@0: let name = addonItem.getAttribute("name"); michael@0: switch (name) { michael@0: case "restart-enable-disable": michael@0: ed_r_Item = addonItem; michael@0: break; michael@0: case "restart-uninstall": michael@0: un_r_Item = addonItem; michael@0: break; michael@0: case "no-restart-required": michael@0: no_r_Item = addonItem; michael@0: break; michael@0: } michael@0: } michael@0: michael@0: // Check the buttons in the list view. michael@0: function checkTooltips(aItem, aEnable, aDisable, aRemove) { michael@0: ok(aItem._enableBtn.getAttribute("tooltiptext") == aEnable); michael@0: ok(aItem._disableBtn.getAttribute("tooltiptext") == aDisable); michael@0: ok(aItem._removeBtn.getAttribute("tooltiptext") == aRemove); michael@0: } michael@0: michael@0: let strs = aWindow.gStrings.ext; michael@0: addonList.selectedItem = ed_r_Item; michael@0: let ed_args = [ed_r_Item, michael@0: strs.GetStringFromName("enableAddonRestartRequiredTooltip"), michael@0: strs.GetStringFromName("disableAddonRestartRequiredTooltip"), michael@0: strs.GetStringFromName("uninstallAddonTooltip")]; michael@0: checkTooltips.apply(null, ed_args); michael@0: michael@0: addonList.selectedItem = un_r_Item; michael@0: let un_args = [un_r_Item, michael@0: strs.GetStringFromName("enableAddonTooltip"), michael@0: strs.GetStringFromName("disableAddonTooltip"), michael@0: strs.GetStringFromName("uninstallAddonRestartRequiredTooltip")]; michael@0: checkTooltips.apply(null, un_args); michael@0: michael@0: addonList.selectedItem = no_r_Item; michael@0: let no_args = [no_r_Item, michael@0: strs.GetStringFromName("enableAddonTooltip"), michael@0: strs.GetStringFromName("disableAddonTooltip"), michael@0: strs.GetStringFromName("uninstallAddonTooltip")]; michael@0: checkTooltips.apply(null, no_args) michael@0: michael@0: // Check the buttons in the details view. michael@0: function checkTooltips2(aItem, aEnable, aDisable, aRemove) { michael@0: let detailEnable = aWindow.document.getElementById("detail-enable-btn"); michael@0: let detailDisable = aWindow.document.getElementById("detail-disable-btn"); michael@0: let detailUninstall = aWindow.document.getElementById("detail-uninstall-btn"); michael@0: ok(detailEnable.getAttribute("tooltiptext") == aEnable); michael@0: ok(detailDisable.getAttribute("tooltiptext") == aDisable); michael@0: ok(detailUninstall.getAttribute("tooltiptext") == aRemove); michael@0: } michael@0: michael@0: function showInDetailView(aAddonId) { michael@0: aWindow.gViewController.loadView("addons://detail/" + michael@0: aWindow.encodeURIComponent(aAddonId)); michael@0: } michael@0: michael@0: // enable-disable: michael@0: showInDetailView("restart-enable-disable@tests.mozilla.org"); michael@0: wait_for_view_load(aWindow, function() { michael@0: checkTooltips2.apply(null, ed_args); michael@0: // uninstall: michael@0: showInDetailView("restart-uninstall@tests.mozilla.org"); michael@0: wait_for_view_load(aWindow, function() { michael@0: checkTooltips2.apply(null, un_args); michael@0: // no restart: michael@0: showInDetailView("no-restart-required@tests.mozilla.org"); michael@0: wait_for_view_load(aWindow, function() { michael@0: checkTooltips2.apply(null, no_args); michael@0: aWindow.close(); michael@0: finish(); michael@0: }); michael@0: }); michael@0: }); michael@0: michael@0: }); michael@0: }