/* vim: set ts=2 et sw=2 tw=80: */ /* 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(function* () { let { inspector } = yield openInspectorForURL(TEST_URL); let root = inspector.markup._elt; info("Test copy outerHTML for COMMENT node"); let comment = getElementByType(inspector, Ci.nsIDOMNode.COMMENT_NODE); yield setSelectionNodeFront(comment, inspector); yield checkClipboard("", root); info("Test copy outerHTML for DOCTYPE node"); let doctype = getElementByType(inspector, Ci.nsIDOMNode.DOCUMENT_TYPE_NODE); yield setSelectionNodeFront(doctype, inspector); yield checkClipboard("", root); info("Test copy outerHTML for ELEMENT node"); yield selectAndHighlightNode("div", inspector); yield checkClipboard("

Test copy OuterHTML

", root); }); function* setSelectionNodeFront(node, inspector) { let updated = inspector.once("inspector-updated"); inspector.selection.setNodeFront(node); yield updated; } function* checkClipboard(expectedText, node) { try { yield 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 (let [node] of inspector.markup._containers) { if (node.nodeType === type) { return node; } } return null; }