diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_inspector.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_inspector.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_inspector.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_inspector.js new file mode 100644 index 0000000000..a652ab41a8 --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_inspector.js @@ -0,0 +1,86 @@ +/* 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); + +// There are shutdown issues for which multiple rejections are left uncaught. +// See bug 1018184 for resolving these issues. +const { PromiseTestUtils } = ChromeUtils.importESModule( + "resource://testing-common/PromiseTestUtils.sys.mjs" +); +PromiseTestUtils.allowMatchingRejectionsGlobally(/File closed/); + +// Avoid test timeouts that can occur while waiting for the "addon-console-works" message. +requestLongerTimeout(2); + +const ADDON_ID = "test-devtools-webextension@mozilla.org"; +const ADDON_NAME = "test-devtools-webextension"; + +/** + * This test file ensures that the webextension addon developer toolbox: + * - the webextension developer toolbox has a working Inspector panel, with the + * background page as default target; + */ +add_task(async function testWebExtensionsToolboxWebConsole() { + await enableExtensionDebugging(); + const { document, tab, window } = await openAboutDebugging(); + await selectThisFirefoxPage(document, window.AboutDebugging.store); + + await installTemporaryExtensionFromXPI( + { + background() { + document.body.innerText = "Background Page Body Test Content"; + }, + id: ADDON_ID, + name: ADDON_NAME, + }, + document + ); + + info("Open a toolbox to debug the addon"); + const { devtoolsWindow } = await openAboutDevtoolsToolbox( + document, + tab, + window, + ADDON_NAME + ); + const toolbox = getToolbox(devtoolsWindow); + + const inspector = await toolbox.selectTool("inspector"); + const nodeActor = await inspector.walker.querySelector( + inspector.walker.rootNode, + "body" + ); + ok(nodeActor, "Got a nodeActor"); + ok(nodeActor.inlineTextChild, "Got a nodeActor with an inline text child"); + + const actualValue = nodeActor.inlineTextChild._form.nodeValue; + + is( + String(actualValue).trim(), + "Background Page Body Test Content", + "nodeActor has the expected inlineTextChild value" + ); + + info("Check that the color scheme simulation buttons are hidden"); + const lightButtonIsHidden = inspector.panelDoc + .querySelector("#color-scheme-simulation-light-toggle") + ?.hasAttribute("hidden"); + const darkButtonIsHidded = inspector.panelDoc + .querySelector("#color-scheme-simulation-dark-toggle") + ?.hasAttribute("hidden"); + ok( + lightButtonIsHidden, + "The light color scheme simulation button exists and is hidden" + ); + ok( + darkButtonIsHidded, + "The dark color scheme simulation button exists and is hidden" + ); + + await closeWebExtAboutDevtoolsToolbox(devtoolsWindow, window); + await removeTemporaryExtension(ADDON_NAME, document); + await removeTab(tab); +}); |