<!doctype html> <meta charset="utf-8"> <title>Range stringifier</title> <link rel="author" title="KiChjang" href="mailto:kungfukeith11@gmail.com"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <div id=test>Test div</div> <div id=another>Another div</div> <div id=last>Last div</div> <div id=log></div> <script> test(function() { var r = new Range(); var testDiv = document.getElementById("test"); test(function() { r.selectNodeContents(testDiv); assert_equals(r.collapsed, false); assert_equals(r.toString(), testDiv.textContent); }, "Node contents of a single div"); var textNode = testDiv.childNodes[0]; test(function() { r.setStart(textNode, 5); r.setEnd(textNode, 7); assert_equals(r.collapsed, false); assert_equals(r.toString(), "di"); }, "Text node with offsets"); var anotherDiv = document.getElementById("another"); test(function() { r.setStart(testDiv, 0); r.setEnd(anotherDiv, 0); assert_equals(r.toString(), "Test div\n"); }, "Two nodes, each with a text node"); var lastDiv = document.getElementById("last"); var lastText = lastDiv.childNodes[0]; test(function() { r.setStart(textNode, 5); r.setEnd(lastText, 4); assert_equals(r.toString(), "div\nAnother div\nLast"); }, "Three nodes with start offset and end offset on text nodes"); }); </script>