Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test copy outer HTML from the keyboard/copy event
const TEST_URL = URL_ROOT + "doc_inspector_outerhtml.html";
add_task(async function () {
const { inspector } = await openInspectorForURL(TEST_URL);
const root = inspector.markup._elt;
info("Test copy outerHTML for COMMENT node");
const comment = getElementByType(inspector, Node.COMMENT_NODE);
await setSelectionNodeFront(comment, inspector);
await checkClipboard("<!-- Comment -->", root);
info("Test copy outerHTML for DOCTYPE node");
const doctype = getElementByType(inspector, Node.DOCUMENT_TYPE_NODE);
await setSelectionNodeFront(doctype, inspector);
await checkClipboard("<!DOCTYPE html>", root);
info("Test copy outerHTML for ELEMENT node");
await selectAndHighlightNode("div", inspector);
await checkClipboard("<div><p>Test copy OuterHTML</p></div>", root);
});
async function setSelectionNodeFront(node, inspector) {
const updated = inspector.once("inspector-updated");
inspector.selection.setNodeFront(node);
await updated;
}
async function checkClipboard(expectedText, node) {
try {
await waitForClipboardPromise(() => fireCopyEvent(node), expectedText);
ok(true, "Clipboard successfully filled with : " + expectedText);
} catch (e) {
ok(
false,
"Clipboard could not be filled with the expected text : " + expectedText
);
}
}
function getElementByType(inspector, type) {
for (const [node] of inspector.markup._containers) {
if (node.nodeType === type) {
return node;
}
}
return null;
}