/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "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("", root); info("Test copy outerHTML for DOCTYPE node"); const doctype = getElementByType(inspector, Node.DOCUMENT_TYPE_NODE); await setSelectionNodeFront(doctype, inspector); await checkClipboard("", root); info("Test copy outerHTML for ELEMENT node"); await selectAndHighlightNode("div", inspector); await checkClipboard("

Test copy OuterHTML

", 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; }