Explicitely setting the final id/class from the callsite to createNode is better for search, and overally maintainability in the long run. Differential Revision: https://phabricator.services.mozilla.com/D259527
87 lines
2.9 KiB
HTML
87 lines
2.9 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
Test the PausedDebuggerOverlay highlighter.
|
|
-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>PausedDebuggerOverlay test</title>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
|
|
</head>
|
|
<body>
|
|
<pre id="test">
|
|
<script>
|
|
"use strict";
|
|
|
|
window.onload = async function() {
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
const {require} = ChromeUtils.importESModule("resource://devtools/shared/loader/Loader.sys.mjs");
|
|
require("devtools/server/actors/inspector/inspector");
|
|
const {HighlighterEnvironment} = require("devtools/server/actors/highlighters");
|
|
const {PausedDebuggerOverlay} = require("devtools/server/actors/highlighters/paused-debugger");
|
|
|
|
const env = new HighlighterEnvironment();
|
|
env.initFromWindow(window);
|
|
|
|
const highlighter = new PausedDebuggerOverlay(env);
|
|
await highlighter.isReady;
|
|
const anonymousContent = highlighter.markup.content;
|
|
|
|
function isHidden(elementID) {
|
|
const attr = anonymousContent.root.getElementById(elementID).getAttribute("hidden");
|
|
return typeof attr === "string" && attr == "true";
|
|
}
|
|
|
|
function getReason() {
|
|
return anonymousContent.root.getElementById("paused-dbg-reason").textContent;
|
|
}
|
|
|
|
function isOverlayShown() {
|
|
const attr = anonymousContent.root.getElementById("paused-dbg-root").getAttribute("overlay");
|
|
return typeof attr === "string" && attr == "true";
|
|
}
|
|
|
|
info("Test that the various elements with IDs exist");
|
|
ok(highlighter.getElement("paused-dbg-root"), "The root wrapper element exists");
|
|
ok(highlighter.getElement("paused-dbg-toolbar"), "The toolbar element exists");
|
|
ok(highlighter.getElement("paused-dbg-reason"), "The reason label element exists");
|
|
|
|
info("Test that the highlighter is hidden by default");
|
|
ok(isHidden("paused-dbg-root"), "The highlighter is hidden");
|
|
|
|
info("Show the highlighter with overlay and toolbar");
|
|
let didShow = highlighter.show("breakpoint");
|
|
ok(didShow, "Calling show returned true");
|
|
ok(!isHidden("paused-dbg-root"), "The highlighter is shown");
|
|
ok(isOverlayShown(), "The overlay is shown");
|
|
is(
|
|
getReason(),
|
|
"Debugger paused",
|
|
"The reason displayed in the toolbar is correct"
|
|
);
|
|
|
|
info("Call show again with another reason");
|
|
didShow = highlighter.show("debuggerStatement");
|
|
ok(didShow, "Calling show returned true too");
|
|
ok(!isHidden("paused-dbg-root"), "The highlighter is still shown");
|
|
is(getReason(), "Debugger paused",
|
|
"The reason displayed in the toolbar is correct again");
|
|
ok(isOverlayShown(), "The overlay is still shown too");
|
|
|
|
info("Call show again but with no reason");
|
|
highlighter.show();
|
|
ok(isOverlayShown(), "The overlay is shown however");
|
|
|
|
info("Hide the highlighter");
|
|
highlighter.hide();
|
|
ok(isHidden("paused-dbg-root"), "The highlighter is now hidden");
|
|
|
|
SimpleTest.finish();
|
|
};
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|