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> |