diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_warnings.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_warnings.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_warnings.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_warnings.js new file mode 100644 index 0000000000..db46754caa --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_warnings.js @@ -0,0 +1,49 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/* import-globals-from helper-addons.js */ +Services.scriptloader.loadSubScript(CHROME_URL_ROOT + "helper-addons.js", this); + +// Test that extension warnings are displayed in about:debugging. +add_task(async function () { + const EXTENSION_NAME = "Temporary web extension"; + const EXTENSION_ID = "test-devtools@mozilla.org"; + + const { document, tab, window } = await openAboutDebugging(); + await selectThisFirefoxPage(document, window.AboutDebugging.store); + + await pushPref("extensions.webextensions.warnings-as-errors", false); + await installTemporaryExtensionFromXPI( + { + id: EXTENSION_ID, + name: EXTENSION_NAME, + extraProperties: { + // This property is not expected in the manifest and should trigger a warning! + wrongProperty: {}, + }, + }, + document + ); + await SpecialPowers.popPrefEnv(); + + info("Wait until a debug target item appears"); + await waitUntil(() => findDebugTargetByText(EXTENSION_NAME, document)); + const target = findDebugTargetByText(EXTENSION_NAME, document); + + const warningMessage = target.querySelector(".qa-message"); + ok( + !!warningMessage, + "A warning message is displayed for the installed addon" + ); + + const warningText = warningMessage.textContent; + ok( + warningText.includes("wrongProperty"), + "The warning message mentions wrongProperty" + ); + + await removeTemporaryExtension(EXTENSION_NAME, document); + await removeTab(tab); +}); |