/* 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 outerHTML edition via the markup-view loadHelperScript("helper_outerhtml_test_runner.js"); requestLongerTimeout(2); const TEST_DATA = [ { selector: "#badMarkup1", oldHTML: '
badMarkup1
', newHTML: '
badMarkup1
hanging', validate: function*(pageNode, pageNodeFront, selectedNodeFront, inspector) { is(pageNodeFront, selectedNodeFront, "Original element is selected"); let textNode = pageNode.nextSibling; is(textNode.nodeName, "#text", "Sibling is a text element"); is(textNode.data, " hanging", "New text node has expected text content"); } }, { selector: "#badMarkup2", oldHTML: '
badMarkup2
', newHTML: '
badMarkup2
hanging
', validate: function*(pageNode, pageNodeFront, selectedNodeFront, inspector) { is(pageNodeFront, selectedNodeFront, "Original element is selected"); let textNode = pageNode.nextSibling; is(textNode.nodeName, "#text", "Sibling is a text element"); is(textNode.data, " hanging", "New text node has expected text content"); } }, { selector: "#badMarkup3", oldHTML: '
badMarkup3
', newHTML: '
badMarkup3 Emphasized and strong
', validate: function*(pageNode, pageNodeFront, selectedNodeFront, inspector) { is(pageNodeFront, selectedNodeFront, "Original element is selected"); let em = getNode("#badMarkup3 em"); let strong = getNode("#badMarkup3 strong"); is(em.textContent, "Emphasized and strong", " was auto created"); is(strong.textContent, " and strong", " was auto created"); } }, { selector: "#badMarkup4", oldHTML: '
badMarkup4
', newHTML: '
badMarkup4

', validate: function*(pageNode, pageNodeFront, selectedNodeFront, inspector) { is(pageNodeFront, selectedNodeFront, "Original element is selected"); let div = getNode("#badMarkup4"); let p = getNode("#badMarkup4 p"); is(div.textContent, "badMarkup4", "textContent is correct"); is(div.tagName, "DIV", "did not change to

tag"); is(p.textContent, "", "The

tag has no children"); is(p.tagName, "P", "Created an empty

tag"); } }, { selector: "#badMarkup5", oldHTML: '

badMarkup5

', newHTML: '

badMarkup5

with a nested div

', validate: function*(pageNode, pageNodeFront, selectedNodeFront, inspector) { is(pageNodeFront, selectedNodeFront, "Original element is selected"); let p = getNode("#badMarkup5"); let nodiv = getNode("#badMarkup5 div"); let div = getNode("#badMarkup5 ~ div"); ok(!nodiv, "The invalid markup got created as a sibling"); is(p.textContent, "badMarkup5 ", "The

tag does not take in the

content"); is(p.tagName, "P", "Did not change to a
tag"); is(div.textContent, "with a nested div", "textContent is correct"); is(div.tagName, "DIV", "Did not change to

tag"); } } ]; const TEST_URL = "data:text/html," + "" + "" + "" + TEST_DATA.map(outer => outer.oldHTML).join("\n") + "" + ""; add_task(function*() { let {inspector} = yield addTab(TEST_URL).then(openInspector); inspector.markup._frame.focus(); yield runEditOuterHTMLTests(TEST_DATA, inspector); });