tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Range-collapse.html (2065B)


      1 <!doctype html>
      2 <title>Range.collapse() and .collapsed tests</title>
      3 <link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
      4 <meta name=timeout content=long>
      5 <div id=log></div>
      6 <script src=/resources/testharness.js></script>
      7 <script src=/resources/testharnessreport.js></script>
      8 <script src=../common.js></script>
      9 <script>
     10 "use strict";
     11 
     12 function testCollapse(rangeEndpoints, toStart) {
     13  // Have to account for Ranges involving Documents!
     14  var ownerDoc = rangeEndpoints[0].nodeType == Node.DOCUMENT_NODE
     15    ? rangeEndpoints[0]
     16    : rangeEndpoints[0].ownerDocument;
     17  var range = ownerDoc.createRange();
     18  range.setStart(rangeEndpoints[0], rangeEndpoints[1]);
     19  range.setEnd(rangeEndpoints[2], rangeEndpoints[3]);
     20 
     21  var expectedContainer = toStart ? range.startContainer : range.endContainer;
     22  var expectedOffset = toStart ? range.startOffset : range.endOffset;
     23 
     24  assert_equals(range.collapsed, range.startContainer == range.endContainer
     25    && range.startOffset == range.endOffset,
     26    "collapsed must be true if and only if the start and end are equal");
     27 
     28  if (toStart === undefined) {
     29    range.collapse();
     30  } else {
     31    range.collapse(toStart);
     32  }
     33 
     34  assert_equals(range.startContainer, expectedContainer,
     35    "Wrong startContainer");
     36  assert_equals(range.endContainer, expectedContainer,
     37    "Wrong endContainer");
     38  assert_equals(range.startOffset, expectedOffset,
     39    "Wrong startOffset");
     40  assert_equals(range.endOffset, expectedOffset,
     41    "Wrong endOffset");
     42  assert_true(range.collapsed,
     43    ".collapsed must be set after .collapsed()");
     44 }
     45 
     46 var tests = [];
     47 for (var i = 0; i < testRanges.length; i++) {
     48  tests.push([
     49    "Range " + i + " " + testRanges[i] + ", toStart true",
     50    eval(testRanges[i]),
     51    true
     52  ]);
     53  tests.push([
     54    "Range " + i + " " + testRanges[i] + ", toStart false",
     55    eval(testRanges[i]),
     56    false
     57  ]);
     58  tests.push([
     59    "Range " + i + " " + testRanges[i] + ", toStart omitted",
     60    eval(testRanges[i]),
     61    undefined
     62  ]);
     63 }
     64 generate_tests(testCollapse, tests);
     65 
     66 testDiv.style.display = "none";
     67 </script>