tor-browser

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

multi-range-user-select-ref.html (4744B)


      1 <!DOCTYPE HTML>
      2 <html class="reftest-wait"><head>
      3    <meta charset="utf-8">
      4    <title>Testcase #1 for bug 1129078</title>
      5    <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6    <script src="selection-utils.js"></script>
      7 
      8 <style type="text/css">
      9 @font-face {
     10  font-family: Ahem;
     11  src: url("Ahem.ttf");
     12 }
     13 html,body { margin:0; padding: 0; }
     14 body,pre { font-family: Ahem; font-size: 20px; }
     15 </style>
     16 </head>
     17 <body>
     18 
     19 <pre id="select">
     20 2af45494-ak7e-11e4-a0c6-a7e7
     21 38222880-bj6d-11e4-8064-fb7b
     22 3d649ae4-ci5c-11e4-995d-17b2
     23 434351bc-dh4b-11e4-9971-4fc8
     24 4dc0e0b4-eg4a-11e4-8c28-5319
     25 a96319c8-ad7d-11e4-b312-039c
     26 </pre>
     27 
     28 <pre id="log" style="border:1px solid green"></pre>
     29 
     30 <script>
     31 
     32 var sel = window.getSelection();
     33 var e = document.querySelector('#select');
     34 function setupSelectionPrev3() {
     35  addChildRanges([[0,150,0,160], [0,65,0,70], [0,15,0,15]], e);
     36  sel.extend(e.firstChild, 10);  // to get eDirPrevious direction
     37 }
     38 function setupSelectionPrev2() {
     39  addChildRanges([[0,150,0,160], [0,70,0,70]], e);
     40  sel.extend(e.firstChild, 65);  // to get eDirPrevious direction
     41 }
     42 function setupSelectionPrev1() {
     43  addChildRanges([[0,160,0,160]], e);
     44  sel.extend(e.firstChild, 150);  // to get eDirPrevious direction
     45 }
     46 
     47 function setupSelectionNext3() {
     48  addChildRanges([[0,10,0,15], [0,65,0,70], [0,150,0,160]], e);
     49 }
     50 function setupSelectionNext2() {
     51  addChildRanges([[0,10,0,15], [0,65,0,70]], e);
     52 }
     53 function setupSelectionNext2b() {
     54  addChildRanges([[0,15,0,80], [0,150,0,160]], e);
     55 }
     56 function setupSelectionNext1() {
     57  addChildRanges([[0,10,0,15]], e);
     58 }
     59 function setupSelectionNext1b() {
     60  addChildRanges([[0,15,0,170]], e);
     61 }
     62 function setupSelectionNext1c() {
     63  addChildRanges([[0,150,0,160]], e);
     64 }
     65 
     66 function runTest() {
     67  sel = window.getSelection();
     68  sel.removeAllRanges();
     69  document.body.offsetHeight;
     70  var hash = window.location.hash
     71  var op = hash.substring(6,8);
     72  var test = hash.substring(0,6);
     73  if (hash.substring(0,5) == "#prev") {
     74    if (test == "#prev1") {
     75      setupSelectionPrev3();
     76      if (op == "SL") {
     77        sel.extend(e.firstChild, 8);
     78      } else if (op == "SR") {
     79        sel.extend(e.firstChild, 12);
     80      } else if (op == "AD") {
     81        addChildRanges([[0,1,0,2]], e);
     82      } else {
     83        sel.extend(e.firstChild, 1);
     84      }
     85    } else if (test == "#prev2") {
     86      setupSelectionPrev3();
     87      sel.extend(e.firstChild, 14); // now eDirNext
     88      sel.extend(e.firstChild, 13); // now eDirPrevious again
     89    } else if (test == "#prev3") {
     90      setupSelectionPrev2();
     91      sel.extend(e.firstChild, 20);
     92    } else if (test == "#prev4") {
     93      setupSelectionPrev2();
     94      sel.extend(e.firstChild, 68); // now eDirNext
     95      sel.extend(e.firstChild, 67); // now eDirPrevious again
     96    } else if (test == "#prev5") {
     97      setupSelectionPrev1();
     98      sel.extend(e.firstChild, 80);
     99    } else if (test == "#prev6") {
    100      setupSelectionPrev1();
    101      sel.extend(e.firstChild, 153); // now eDirNext
    102      sel.extend(e.firstChild, 152); // now eDirPrevious again
    103    } else if (test == "#prev7") {
    104      if (op == "AD") {
    105        setupSelectionPrev3();
    106        addChildRanges([[0,168,0,170]], e);
    107      } else {
    108        addChildRanges([[0,160,0,170]], e);
    109      }
    110    } else if (test == "#prev8") {
    111      if (op == "AD") {
    112        addChildRanges([[0,150,0,155], [0,68,0,70]], e);
    113      }
    114    }
    115  } else {
    116    if (test == "#next1") {
    117      if (op == "SL") {
    118        setupSelectionNext3();
    119        sel.extend(e.firstChild, 158);
    120      } else if (op == "SR") {
    121        setupSelectionNext3();
    122        sel.extend(e.firstChild, 162);
    123      } else if (op == "AD") {
    124        setupSelectionNext3();
    125        addChildRanges([[0,1,0,2]], e);
    126      } else {
    127        setupSelectionNext1();
    128        sel.extend(e.firstChild, 1);
    129      }
    130    } else if (test == "#next2") {
    131      setupSelectionNext1();
    132      sel.extend(e.firstChild, 13);
    133    } else if (test == "#next3") {
    134      setupSelectionNext1();
    135      sel.extend(e.firstChild, 20);
    136    } else if (test == "#next4") {
    137      setupSelectionNext2();
    138      sel.extend(e.firstChild, 67);
    139    } else if (test == "#next5") {
    140      setupSelectionNext2();
    141      sel.extend(e.firstChild, 80);
    142    } else if (test == "#next6") {
    143      setupSelectionNext3();
    144      sel.extend(e.firstChild, 152);
    145    } else if (test == "#next7") {
    146      setupSelectionNext3();
    147      if (op == "AD") {
    148        addChildRanges([[0,168,0,170]], e);
    149      } else {
    150        sel.extend(e.firstChild, 170);
    151      }
    152    } else if (test == "#next8") {
    153      if (op == "AD") {
    154        addChildRanges([[0,68,0,70], [0,150,0,155]], e);
    155      }
    156    }
    157  }
    158  document.documentElement.removeAttribute("class");
    159 }
    160 
    161 SimpleTest.waitForFocus(function(){setTimeout(runTest,0)});
    162 
    163 </script>
    164 
    165 </body>
    166 </html>