diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_temporary_reload_error.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_temporary_reload_error.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_temporary_reload_error.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_temporary_reload_error.js new file mode 100644 index 0000000000..da09727d9e --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_temporary_reload_error.js @@ -0,0 +1,68 @@ +/* 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 the reload button updates the addon list with the correct metadata. +add_task(async function () { + const { document, tab, window } = await openAboutDebugging(); + await selectThisFirefoxPage(document, window.AboutDebugging.store); + + const EXTENSION_ID = "test-devtools@mozilla.org"; + const EXTENSION_NAME = "Temporary web extension"; + + let { xpiFile: addonFile } = await installTemporaryExtensionFromXPI( + { + id: EXTENSION_ID, + name: EXTENSION_NAME, + }, + document + ); + + const target = findDebugTargetByText(EXTENSION_NAME, document); + ok(!!target, "The temporary extension is installed with the expected name"); + + info("Update the name of the temporary extension in the manifest"); + addonFile = updateTemporaryXPI({ id: EXTENSION_ID }, addonFile); + + info("Click on the reload button for the invalid temporary extension"); + const waitForError = waitForDispatch( + window.AboutDebugging.store, + "TEMPORARY_EXTENSION_RELOAD_FAILURE" + ); + const reloadButton = target.querySelector( + ".qa-temporary-extension-reload-button" + ); + reloadButton.click(); + await waitForError; + ok( + target.querySelector(".qa-temporary-extension-reload-error"), + "The error message of reloading appears" + ); + + info("Click on the reload button for the valid temporary extension"); + const waitForSuccess = waitForDispatch( + window.AboutDebugging.store, + "TEMPORARY_EXTENSION_RELOAD_SUCCESS" + ); + updateTemporaryXPI({ id: EXTENSION_ID, name: EXTENSION_NAME }, addonFile); + reloadButton.click(); + await waitForSuccess; + ok( + !target.querySelector(".qa-temporary-extension-reload-error"), + "The error message of reloading disappears" + ); + + info("Click on the remove button for the temporary extension"); + const removeButton = target.querySelector( + ".qa-temporary-extension-remove-button" + ); + removeButton.click(); + + info("Wait until the debug target with the extension disappears"); + await waitUntil(() => !findDebugTargetByText(EXTENSION_NAME, document)); + + await removeTab(tab); +}); |