Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const TEST_PAGE_URL = URL_ROOT + "page_dom_nodes.html";
/**
* Checks that hovering nodes highlights them in the content page
*/
add_task(async function () {
info("Test DOM panel node highlight started");
const { panel, tab } = await addTestTab(TEST_PAGE_URL);
const toolbox = gDevTools.getToolboxForTab(tab);
const highlighter = toolbox.getHighlighter();
const tests = [
{
expected: "h1",
getNode: async () => {
return getRowByIndex(panel, 0).querySelector(".objectBox-node");
},
},
{
expected: "h2",
getNode: async () => {
info("Expand specified row and wait till children are displayed");
await expandRow(panel, "B");
return getRowByIndex(panel, 1).querySelector(".objectBox-node");
},
},
];
for (const test of tests) {
info(`Get the NodeFront for ${test.expected}`);
const node = await test.getNode();
info("Highlight the node by moving the cursor on it");
const onHighlighterShown = highlighter.waitForHighlighterShown();
EventUtils.synthesizeMouseAtCenter(
node,
{
type: "mouseover",
},
node.ownerDocument.defaultView
);
const { nodeFront } = await onHighlighterShown;
is(
nodeFront.displayName,
test.expected,
"The correct node was highlighted"
);
info("Unhighlight the node by moving the cursor away from it");
const onHighlighterHidden = highlighter.waitForHighlighterHidden();
const btn = toolbox.doc.querySelector("#toolbox-meatball-menu-button");
EventUtils.synthesizeMouseAtCenter(
btn,
{
type: "mouseover",
},
btn.ownerDocument.defaultView
);
const { nodeFront: unhighlightedNode } = await onHighlighterHidden;
is(
unhighlightedNode.displayName,
test.expected,
"The node was unhighlighted"
);
}
});