diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser_addons_install.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser_addons_install.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser_addons_install.js b/devtools/client/aboutdebugging/test/browser_addons_install.js new file mode 100644 index 000000000..4c3a97c9f --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser_addons_install.js @@ -0,0 +1,51 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +const ADDON_ID = "test-devtools@mozilla.org"; +const ADDON_NAME = "test-devtools"; + +add_task(function* () { + let { tab, document } = yield openAboutDebugging("addons"); + yield waitForInitialAddonList(document); + + // Install this add-on, and verify that it appears in the about:debugging UI + yield installAddon({ + document, + path: "addons/unpacked/install.rdf", + name: ADDON_NAME, + }); + + // Install the add-on, and verify that it disappears in the about:debugging UI + yield uninstallAddon({document, id: ADDON_ID, name: ADDON_NAME}); + + yield closeAboutDebugging(tab); +}); + +add_task(function* () { + let { tab, document } = yield openAboutDebugging("addons"); + yield waitForInitialAddonList(document); + + // Start an observer that looks for the install error before + // actually doing the install + let top = document.querySelector(".addons-top"); + let promise = waitForMutation(top, { childList: true }); + + // Mock the file picker to select a test addon + let MockFilePicker = SpecialPowers.MockFilePicker; + MockFilePicker.init(null); + let file = getSupportsFile("addons/bad/manifest.json"); + MockFilePicker.returnFiles = [file.file]; + + // Trigger the file picker by clicking on the button + document.getElementById("load-addon-from-file").click(); + + // Now wait for the install error to appear. + yield promise; + + // And check that it really is there. + let err = document.querySelector(".addons-install-error"); + isnot(err, null, "Addon install error message appeared"); + + yield closeAboutDebugging(tab); +}); |