browser/devtools/markupview/test/browser_markupview_html_edit_02.js

changeset 0
6474c204b198
     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 +});

mercurial