forked from mirrors/gecko-dev
Differential Revision: https://phabricator.services.mozilla.com/D8589 --HG-- extra : moz-landing-system : lando
91 lines
2.7 KiB
JavaScript
91 lines
2.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
const PACKAGED_ADDON_NAME = "bug 1273184";
|
|
|
|
function getTargetEl(document, id) {
|
|
return document.querySelector(`[data-addon-id="${id}"]`);
|
|
}
|
|
|
|
function getRemoveButton(document, id) {
|
|
return document.querySelector(`[data-addon-id="${id}"] .uninstall-button`);
|
|
}
|
|
|
|
add_task(async function removeLegacyExtension() {
|
|
const addonID = "test-devtools@mozilla.org";
|
|
const addonName = "test-devtools";
|
|
|
|
const { tab, document } = await openAboutDebugging("addons");
|
|
await waitForInitialAddonList(document);
|
|
|
|
// Install this add-on, and verify that it appears in the about:debugging UI
|
|
await installAddon({
|
|
document,
|
|
path: "addons/unpacked/install.rdf",
|
|
name: addonName,
|
|
});
|
|
|
|
ok(getTargetEl(document, addonID), "add-on is shown");
|
|
|
|
info("Click on the remove button and wait until the addon container is removed");
|
|
getRemoveButton(document, addonID).click();
|
|
await waitUntil(() => !getTargetEl(document, addonID), 100);
|
|
|
|
info("add-on is not shown");
|
|
|
|
await closeAboutDebugging(tab);
|
|
});
|
|
|
|
add_task(async function removeWebextension() {
|
|
const addonID = "test-devtools-webextension@mozilla.org";
|
|
const addonName = "test-devtools-webextension";
|
|
|
|
const { tab, document } = await openAboutDebugging("addons");
|
|
await waitForInitialAddonList(document);
|
|
|
|
const addonFile = ExtensionTestCommon.generateXPI({
|
|
manifest: {
|
|
name: addonName,
|
|
applications: {
|
|
gecko: {id: addonID},
|
|
},
|
|
},
|
|
});
|
|
registerCleanupFunction(() => addonFile.remove(false));
|
|
|
|
// Install this add-on, and verify that it appears in the about:debugging UI
|
|
await installAddon({
|
|
document,
|
|
file: addonFile,
|
|
name: addonName,
|
|
isWebExtension: true,
|
|
});
|
|
|
|
ok(getTargetEl(document, addonID), "add-on is shown");
|
|
|
|
info("Click on the remove button and wait until the addon container is removed");
|
|
getRemoveButton(document, addonID).click();
|
|
await waitUntil(() => !getTargetEl(document, addonID), 100);
|
|
|
|
info("add-on is not shown");
|
|
|
|
await closeAboutDebugging(tab);
|
|
});
|
|
|
|
add_task(async function onlyTempInstalledAddonsCanBeRemoved() {
|
|
const { tab, document } = await openAboutDebugging("addons");
|
|
await waitForInitialAddonList(document);
|
|
|
|
await installAddonWithManager(getSupportsFile("addons/bug1273184.xpi").file);
|
|
const addon = await getAddonByID("bug1273184@tests");
|
|
|
|
info("Wait until addon appears in about:debugging#addons");
|
|
await waitUntilAddonContainer(PACKAGED_ADDON_NAME, document);
|
|
|
|
const removeButton = getRemoveButton(document, addon.id);
|
|
ok(!removeButton, "remove button is not shown");
|
|
|
|
await tearDownAddon(addon);
|
|
await closeAboutDebugging(tab);
|
|
});
|