diff options
Diffstat (limited to 'dom/base/test/test_bug686449.xhtml')
-rw-r--r-- | dom/base/test/test_bug686449.xhtml | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/dom/base/test/test_bug686449.xhtml b/dom/base/test/test_bug686449.xhtml new file mode 100644 index 000000000..fe59afb62 --- /dev/null +++ b/dom/base/test/test_bug686449.xhtml @@ -0,0 +1,79 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=686449 +--> +<head> + <title>Test for Bug 686449</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=686449">Mozilla Bug 686449</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<div id="rangetest">abcd<div id="picontainer1"><?pi efgh?></div><div>ijkl</div><div id="picontainer2"><?pi mnop?></div>qrst</div> +<pre id="test"> +<script type="application/javascript"> +<![CDATA[ + +/** Test for Bug 686449 **/ + +var pi = document.createProcessingInstruction("t", "data"); +ok("target" in pi, "No target?"); +ok("data" in pi, "No data?"); +ok("length" in pi, "No length?"); +ok("substringData" in pi, "No substringData?"); +ok("appendData" in pi, "No appendData?"); +ok("insertData" in pi, "No insertData?"); +ok("deleteData" in pi, "No deleteData?"); +ok("replaceData" in pi, "No replaceData?"); + +is(pi.substringData(0, pi.length), pi.data, "wrong data?"); +var olddata = pi.data; +var appenddata = "foo" +pi.appendData(appenddata); +is(pi.data, olddata + appenddata, "appendData doesn't work?"); +pi.deleteData(olddata.length, appenddata.length); +is(pi.data, olddata, "deleteData doesn't work?"); +pi.replaceData(0, 0, olddata); +is(pi.data, olddata + olddata, "replaceData doesn't work?"); +pi.insertData(0, olddata); +is(pi.data, olddata + olddata + olddata, "insertData doesn't work?"); +pi.data = olddata; +is(pi.data, olddata, "setting data doesn't work?"); + +var r = document.createRange(); +r.selectNodeContents(pi); +is(r.startContainer, pi, "Wrong startContainer!"); +is(r.startOffset, 0, "Wrong startOffset!"); +is(r.endContainer, pi, "Wrong endContainer!"); +is(r.endOffset, pi.length, "Wrong endOffset!"); + +var df = r.cloneContents(); +is(df.childNodes.length, 1, "Unexpected child nodes?"); +ok(df.firstChild.isEqualNode(pi), "Wrong cloning?"); + +r.setStart(pi, 1); +r.setEnd(pi, 3); +df = r.cloneContents(); +is(df.childNodes.length, 1, "Unexpected child nodes?"); +ok(!df.firstChild.isEqualNode(pi), "Should clone to similar pi!"); +is(df.firstChild.data, "at", "Wrong data cloning?"); + +r.selectNode(document.getElementById("rangetest")); +is(r.toString(), document.getElementById("rangetest").textContent, + "Wrong range stringification!"); +ok(r.cloneContents().firstChild.firstChild.nextSibling.firstChild. + isEqualNode(document.getElementById("picontainer1").firstChild), + "Wrong pi cloning!"); +ok(r.cloneContents().firstChild.firstChild.nextSibling.nextSibling.nextSibling.firstChild. + isEqualNode(document.getElementById("picontainer2").firstChild), + "Wrong pi cloning!"); + +]]> +</script> +</pre> +</body> +</html> |