108 lines
3.2 KiB
HTML
108 lines
3.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
description(
|
|
"Test modification of contents of a range"
|
|
);
|
|
|
|
var r;
|
|
|
|
// TEST 1: Initial values
|
|
debug('<span>Start test 1</span>');
|
|
var r = document.createRange();
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "0");
|
|
shouldBe("r.startContainer", "document");
|
|
shouldBe("r.endContainer", "document");
|
|
shouldBeTrue("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "document");
|
|
|
|
// TEST 2: Insert a comment into the document
|
|
debug('<span>Start test 2</span>');
|
|
r.insertNode(document.createComment("test comment"));
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "1");
|
|
shouldBe("r.startContainer", "document");
|
|
shouldBe("r.endContainer", "document");
|
|
shouldBeFalse("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "document");
|
|
|
|
// TEST 3: Remove the comment again
|
|
debug('<span>Start test 3</span>');
|
|
r.deleteContents();
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "0");
|
|
shouldBe("r.startContainer", "document");
|
|
shouldBe("r.endContainer", "document");
|
|
shouldBeTrue("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "document");
|
|
|
|
// TEST 4: Insert a document fragment
|
|
debug('<span>Start test 4</span>');
|
|
var f = document.createDocumentFragment();
|
|
var c = document.getElementById("description");
|
|
r.setStart(c, 0);
|
|
f.appendChild(document.createTextNode("test text node"));
|
|
f.appendChild(document.createComment("another text comment"));
|
|
f.appendChild(document.createTextNode("another test text node"));
|
|
r.insertNode(f);
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "3");
|
|
shouldBe("r.startContainer", "c");
|
|
shouldBe("r.endContainer", "c");
|
|
shouldBeFalse("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "c");
|
|
|
|
// TEST 5: Remove the fragment again
|
|
debug('<span>Start test 5</span>');
|
|
r.deleteContents();
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "0");
|
|
shouldBe("r.startContainer", "c");
|
|
shouldBe("r.endContainer", "c");
|
|
shouldBeTrue("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "c");
|
|
|
|
// TEST 6: Insert an empty document fragment
|
|
debug('<span>Start test 6</span>');
|
|
f = document.createDocumentFragment();
|
|
r.insertNode(f);
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "0");
|
|
shouldBe("r.startContainer", "c");
|
|
shouldBe("r.endContainer", "c");
|
|
shouldBeTrue("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "c");
|
|
|
|
// TEST 7: Insert a div
|
|
debug('<span>Start test 7</span>');
|
|
var d = document.createElement("div");
|
|
d.appendChild(document.createTextNode("test text node"));
|
|
d.appendChild(document.createComment("another text comment"));
|
|
d.appendChild(document.createTextNode("another test text node"));
|
|
r.insertNode(d);
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "1");
|
|
shouldBe("r.startContainer", "c");
|
|
shouldBe("r.endContainer", "c");
|
|
shouldBeFalse("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "c");
|
|
|
|
// TEST 8: Remove the div
|
|
debug('<span>Start test 8</span>');
|
|
r.deleteContents();
|
|
shouldBe("r.startOffset", "0");
|
|
shouldBe("r.endOffset", "0");
|
|
shouldBe("r.startContainer", "c");
|
|
shouldBe("r.endContainer", "c");
|
|
shouldBeTrue("r.collapsed");
|
|
shouldBe("r.commonAncestorContainer", "c");
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|