| Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/ranges/Range-collapse.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/ranges/Range-collapse.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/ranges/Range-collapse.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6678fb292da2df553184e48bb8558687c66e0a38
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/ranges/Range-collapse.html
|
| @@ -0,0 +1,75 @@
|
| +<!doctype html>
|
| +<title>Range.collapse() and .collapsed tests</title>
|
| +<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
|
| +<meta name=timeout content=long>
|
| +<div id=log></div>
|
| +<script src=../../../../resources/testharness.js></script>
|
| +<script src=../../../../resources/testharnessreport.js></script>
|
| +<script src=../common.js></script>
|
| +<script>
|
| +"use strict";
|
| +
|
| +function testCollapse(rangeEndpoints, toStart) {
|
| + var range;
|
| + if (rangeEndpoints == "detached") {
|
| + range = document.createRange();
|
| + range.detach(); // should be a no-op and therefore the following should not throw
|
| + range.collapse(toStart);
|
| + assert_equals(true, range.collapsed);
|
| + }
|
| +
|
| + // Have to account for Ranges involving Documents!
|
| + var ownerDoc = rangeEndpoints[0].nodeType == Node.DOCUMENT_NODE
|
| + ? rangeEndpoints[0]
|
| + : rangeEndpoints[0].ownerDocument;
|
| + range = ownerDoc.createRange();
|
| + range.setStart(rangeEndpoints[0], rangeEndpoints[1]);
|
| + range.setEnd(rangeEndpoints[2], rangeEndpoints[3]);
|
| +
|
| + var expectedContainer = toStart ? range.startContainer : range.endContainer;
|
| + var expectedOffset = toStart ? range.startOffset : range.endOffset;
|
| +
|
| + assert_equals(range.collapsed, range.startContainer == range.endContainer
|
| + && range.startOffset == range.endOffset,
|
| + "collapsed must be true if and only if the start and end are equal");
|
| +
|
| + if (toStart === undefined) {
|
| + range.collapse();
|
| + } else {
|
| + range.collapse(toStart);
|
| + }
|
| +
|
| + assert_equals(range.startContainer, expectedContainer,
|
| + "Wrong startContainer");
|
| + assert_equals(range.endContainer, expectedContainer,
|
| + "Wrong endContainer");
|
| + assert_equals(range.startOffset, expectedOffset,
|
| + "Wrong startOffset");
|
| + assert_equals(range.endOffset, expectedOffset,
|
| + "Wrong endOffset");
|
| + assert_true(range.collapsed,
|
| + ".collapsed must be set after .collapsed()");
|
| +}
|
| +
|
| +var tests = [];
|
| +for (var i = 0; i < testRanges.length; i++) {
|
| + tests.push([
|
| + "Range " + i + " " + testRanges[i] + ", toStart true",
|
| + eval(testRanges[i]),
|
| + true
|
| + ]);
|
| + tests.push([
|
| + "Range " + i + " " + testRanges[i] + ", toStart false",
|
| + eval(testRanges[i]),
|
| + false
|
| + ]);
|
| + tests.push([
|
| + "Range " + i + " " + testRanges[i] + ", toStart omitted",
|
| + eval(testRanges[i]),
|
| + undefined
|
| + ]);
|
| +}
|
| +generate_tests(testCollapse, tests);
|
| +
|
| +testDiv.style.display = "none";
|
| +</script>
|
|
|