1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
<!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>
|