fune/browser/base/content/test/webextensions/browser_permissions_unsigned.js
Jonathan Kingston 555f89c8d7 Bug 1485305 - browser/ tests Ensure loadURI always passes a triggeringPrincipal() r=Mossop
Differential Revision: https://phabricator.services.mozilla.com/D4552

--HG--
extra : source : 2cf17e4974823d09d0fdd1aef64e69e840b288a1
extra : intermediate-source : 4771e6948a78507aa95a56e5b324d87dc82e9009
2018-08-29 15:44:56 +01:00

41 lines
1.5 KiB
JavaScript

"use strict";
const ID = "permissions@test.mozilla.org";
const WARNING_ICON = "chrome://browser/skin/warning.svg";
add_task(async function test_unsigned() {
await SpecialPowers.pushPrefEnv({set: [
["extensions.webapi.testing", true],
["extensions.install.requireBuiltInCerts", false],
]});
let testURI = makeURI("https://example.com/");
Services.perms.add(testURI, "install", Services.perms.ALLOW_ACTION);
registerCleanupFunction(() => Services.perms.remove(testURI, "install"));
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
BrowserTestUtils.loadURI(gBrowser.selectedBrowser, `${BASE}/file_install_extensions.html`);
await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
ContentTask.spawn(gBrowser.selectedBrowser, `${BASE}/browser_webext_unsigned.xpi`, async function(url) {
content.wrappedJSObject.installTrigger(url);
});
let panel = await promisePopupNotificationShown("addon-webext-permissions");
is(panel.getAttribute("icon"), WARNING_ICON);
checkPermissionString(document.getElementById("addon-webext-perm-text").textContent,
"webextPerms.unsignedWarning", null,
"Install notification includes unsigned warning");
// cancel the install
let promise = promiseInstallEvent({id: ID}, "onInstallCancelled");
panel.secondaryButton.click();
await promise;
let addon = await AddonManager.getAddonByID(ID);
is(addon, null, "Extension is not installed");
BrowserTestUtils.removeTab(tab);
});