Implement Stringifier for Range

This commit is contained in:
Keith Yeung 2016-02-28 12:53:10 -05:00
parent ae67ae9cdb
commit b32e859c3a
5 changed files with 95 additions and 5 deletions

View file

@ -34520,6 +34520,12 @@
"url": "/dom/lists/DOMTokenList-value.html"
}
],
"dom/ranges/Range-stringifier.html": [
{
"path": "dom/ranges/Range-stringifier.html",
"url": "/dom/ranges/Range-stringifier.html"
}
],
"html/webappapis/scripting/events/event-handler-processing-algorithm.html": [
{
"path": "html/webappapis/scripting/events/event-handler-processing-algorithm.html",

View file

@ -129,9 +129,6 @@
[Element interface: calling queryAll(DOMString) on element with too few arguments must throw TypeError]
expected: FAIL
[Range interface: stringifier]
expected: FAIL
[DOMSettableTokenList interface: existence and properties of interface prototype object]
expected: FAIL

View file

@ -0,0 +1,44 @@
<!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>