content/base/test/test_bug686449.xhtml

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/content/base/test/test_bug686449.xhtml	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,79 @@
     1.4 +<html xmlns="http://www.w3.org/1999/xhtml">
     1.5 +<!--
     1.6 +https://bugzilla.mozilla.org/show_bug.cgi?id=686449
     1.7 +-->
     1.8 +<head>
     1.9 +  <title>Test for Bug 686449</title>
    1.10 +  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    1.11 +  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    1.12 +</head>
    1.13 +<body>
    1.14 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=686449">Mozilla Bug 686449</a>
    1.15 +<p id="display"></p>
    1.16 +<div id="content" style="display: none">
    1.17 +  
    1.18 +</div>
    1.19 +<div id="rangetest">abcd<div id="picontainer1"><?pi efgh?></div><div>ijkl</div><div id="picontainer2"><?pi mnop?></div>qrst</div>
    1.20 +<pre id="test">
    1.21 +<script type="application/javascript">
    1.22 +<![CDATA[
    1.23 +
    1.24 +/** Test for Bug 686449 **/
    1.25 +
    1.26 +var pi = document.createProcessingInstruction("t", "data");
    1.27 +ok("target" in pi, "No target?");
    1.28 +ok("data" in pi, "No data?");
    1.29 +ok("length" in pi, "No length?");
    1.30 +ok("substringData" in pi, "No substringData?");
    1.31 +ok("appendData" in pi, "No appendData?");
    1.32 +ok("insertData" in pi, "No insertData?");
    1.33 +ok("deleteData" in pi, "No deleteData?");
    1.34 +ok("replaceData" in pi, "No replaceData?");
    1.35 +
    1.36 +is(pi.substringData(0, pi.length), pi.data, "wrong data?");
    1.37 +var olddata = pi.data;
    1.38 +var appenddata = "foo"
    1.39 +pi.appendData(appenddata);
    1.40 +is(pi.data, olddata + appenddata, "appendData doesn't work?");
    1.41 +pi.deleteData(olddata.length, appenddata.length);
    1.42 +is(pi.data, olddata, "deleteData doesn't work?");
    1.43 +pi.replaceData(0, 0, olddata);
    1.44 +is(pi.data, olddata + olddata, "replaceData doesn't work?");
    1.45 +pi.insertData(0, olddata);
    1.46 +is(pi.data, olddata + olddata + olddata, "insertData doesn't work?");
    1.47 +pi.data = olddata;
    1.48 +is(pi.data, olddata, "setting data doesn't work?");
    1.49 +
    1.50 +var r = document.createRange();
    1.51 +r.selectNodeContents(pi);
    1.52 +is(r.startContainer, pi, "Wrong startContainer!");
    1.53 +is(r.startOffset, 0, "Wrong startOffset!");
    1.54 +is(r.endContainer, pi, "Wrong endContainer!");
    1.55 +is(r.endOffset, pi.length, "Wrong endOffset!");
    1.56 +
    1.57 +var df = r.cloneContents();
    1.58 +is(df.childNodes.length, 1, "Unexpected child nodes?");
    1.59 +ok(df.firstChild.isEqualNode(pi), "Wrong cloning?");
    1.60 +
    1.61 +r.setStart(pi, 1);
    1.62 +r.setEnd(pi, 3);
    1.63 +df = r.cloneContents();
    1.64 +is(df.childNodes.length, 1, "Unexpected child nodes?");
    1.65 +ok(!df.firstChild.isEqualNode(pi), "Should clone to similar pi!");
    1.66 +is(df.firstChild.data, "at", "Wrong data cloning?");
    1.67 +
    1.68 +r.selectNode(document.getElementById("rangetest"));
    1.69 +is(r.toString(), document.getElementById("rangetest").textContent,
    1.70 +   "Wrong range stringification!");
    1.71 +ok(r.cloneContents().firstChild.firstChild.nextSibling.firstChild.
    1.72 +     isEqualNode(document.getElementById("picontainer1").firstChild),
    1.73 +   "Wrong pi cloning!");
    1.74 +ok(r.cloneContents().firstChild.firstChild.nextSibling.nextSibling.nextSibling.firstChild.
    1.75 +     isEqualNode(document.getElementById("picontainer2").firstChild),
    1.76 +   "Wrong pi cloning!");
    1.77 +
    1.78 +]]>
    1.79 +</script>
    1.80 +</pre>
    1.81 +</body>
    1.82 +</html>

mercurial