1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/devtools/markupview/test/browser_markupview_html_edit_02.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,100 @@ 1.4 +/* vim: set ts=2 et sw=2 tw=80: */ 1.5 +/* Any copyright is dedicated to the Public Domain. 1.6 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.7 + 1.8 +"use strict"; 1.9 + 1.10 +// Test outerHTML edition via the markup-view 1.11 + 1.12 +loadHelperScript("helper_outerhtml_test_runner.js"); 1.13 + 1.14 +const TEST_DATA = [ 1.15 + { 1.16 + selector: "#badMarkup1", 1.17 + oldHTML: '<div id="badMarkup1">badMarkup1</div>', 1.18 + newHTML: '<div id="badMarkup1">badMarkup1</div> hanging</div>', 1.19 + validate: function(pageNode, selectedNode) { 1.20 + is(pageNode, selectedNode, "Original element is selected"); 1.21 + 1.22 + let textNode = pageNode.nextSibling; 1.23 + 1.24 + is(textNode.nodeName, "#text", "Sibling is a text element"); 1.25 + is(textNode.data, " hanging", "New text node has expected text content"); 1.26 + } 1.27 + }, 1.28 + { 1.29 + selector: "#badMarkup2", 1.30 + oldHTML: '<div id="badMarkup2">badMarkup2</div>', 1.31 + newHTML: '<div id="badMarkup2">badMarkup2</div> hanging<div></div></div></div></body>', 1.32 + validate: function(pageNode, selectedNode) { 1.33 + is(pageNode, selectedNode, "Original element is selected"); 1.34 + 1.35 + let textNode = pageNode.nextSibling; 1.36 + 1.37 + is(textNode.nodeName, "#text", "Sibling is a text element"); 1.38 + is(textNode.data, " hanging", "New text node has expected text content"); 1.39 + } 1.40 + }, 1.41 + { 1.42 + selector: "#badMarkup3", 1.43 + oldHTML: '<div id="badMarkup3">badMarkup3</div>', 1.44 + newHTML: '<div id="badMarkup3">badMarkup3 <em>Emphasized <strong> and strong</div>', 1.45 + validate: function(pageNode, selectedNode) { 1.46 + is(pageNode, selectedNode, "Original element is selected"); 1.47 + 1.48 + let em = getNode("#badMarkup3 em"); 1.49 + let strong = getNode("#badMarkup3 strong"); 1.50 + 1.51 + is(em.textContent, "Emphasized and strong", "<em> was auto created"); 1.52 + is(strong.textContent, " and strong", "<strong> was auto created"); 1.53 + } 1.54 + }, 1.55 + { 1.56 + selector: "#badMarkup4", 1.57 + oldHTML: '<div id="badMarkup4">badMarkup4</div>', 1.58 + newHTML: '<div id="badMarkup4">badMarkup4</p>', 1.59 + validate: function(pageNode, selectedNode) { 1.60 + is(pageNode, selectedNode, "Original element is selected"); 1.61 + 1.62 + let div = getNode("#badMarkup4"); 1.63 + let p = getNode("#badMarkup4 p"); 1.64 + 1.65 + is(div.textContent, "badMarkup4", "textContent is correct"); 1.66 + is(div.tagName, "DIV", "did not change to <p> tag"); 1.67 + is(p.textContent, "", "The <p> tag has no children"); 1.68 + is(p.tagName, "P", "Created an empty <p> tag"); 1.69 + } 1.70 + }, 1.71 + { 1.72 + selector: "#badMarkup5", 1.73 + oldHTML: '<p id="badMarkup5">badMarkup5</p>', 1.74 + newHTML: '<p id="badMarkup5">badMarkup5 <div>with a nested div</div></p>', 1.75 + validate: function(pageNode, selectedNode) { 1.76 + is(pageNode, selectedNode, "Original element is selected"); 1.77 + 1.78 + let p = getNode("#badMarkup5"); 1.79 + let nodiv = getNode("#badMarkup5 div"); 1.80 + let div = getNode("#badMarkup5 ~ div"); 1.81 + 1.82 + ok(!nodiv, "The invalid markup got created as a sibling"); 1.83 + is(p.textContent, "badMarkup5 ", "The <p> tag does not take in the <div> content"); 1.84 + is(p.tagName, "P", "Did not change to a <div> tag"); 1.85 + is(div.textContent, "with a nested div", "textContent is correct"); 1.86 + is(div.tagName, "DIV", "Did not change to <p> tag"); 1.87 + } 1.88 + } 1.89 +]; 1.90 + 1.91 +const TEST_URL = "data:text/html," + 1.92 + "<!DOCTYPE html>" + 1.93 + "<head><meta charset='utf-8' /></head>" + 1.94 + "<body>" + 1.95 + [outer.oldHTML for (outer of TEST_DATA)].join("\n") + 1.96 + "</body>" + 1.97 + "</html>"; 1.98 + 1.99 +let test = asyncTest(function*() { 1.100 + let {inspector} = yield addTab(TEST_URL).then(openInspector); 1.101 + inspector.markup._frame.focus(); 1.102 + yield runEditOuterHTMLTests(TEST_DATA, inspector); 1.103 +});