layout/reftests/selection/modify-range-ref.html

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 <!DOCTYPE HTML>
     2 <html class="reftest-wait"><head>
     3     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     4     <title>Testcase for bug </title>
     5 <script>
     6 var tests_done = 0;
     7 var tests = [
     8   'window.getSelection().getRangeAt(0).setEnd(document.getElementsByTagName("pre")[0].firstChild,9)',
     9   'window.getSelection().getRangeAt(0).setEndAfter(document.getElementsByTagName("pre")[0].firstChild)',
    10   'window.getSelection().getRangeAt(0).setEndBefore(document.getElementsByTagName("pre")[0].childNodes[1])',
    11   'pre=document.getElementsByTagName("pre")[0]; r=window.getSelection().getRangeAt(0); r.setEnd(pre.childNodes[1],3); r.setStartAfter(pre.firstChild)',
    12   'window.getSelection().getRangeAt(0).setStartBefore(document.getElementsByTagName("pre")[0].firstChild)',
    13   'window.getSelection().getRangeAt(0).selectNode(document.getElementsByTagName("pre")[0].firstChild)',
    14   'window.getSelection().getRangeAt(0).selectNodeContents(document.getElementsByTagName("pre")[0])',
    15   'window.getSelection().getRangeAt(0).collapse(true)',
    16   'window.getSelection().getRangeAt(0).surroundContents(document.createElement("span"))',
    17   'window.getSelection().getRangeAt(0).setStart(document,0)',
    18   'window.getSelection().getRangeAt(0).detach()',
    19   'window.getSelection().getRangeAt(0).extractContents()',
    20   'window.getSelection().getRangeAt(0).deleteContents()'
    21 ];
    22 function init_iframe(d) {
    23   var pre = d.createElement('pre');
    24   pre.appendChild(d.createTextNode('first\nfirst\n'));
    25   pre.appendChild(d.createTextNode('second'));
    26   d.documentElement.appendChild(pre);
    27   var text = pre.firstChild;
    28   var sel = d.defaultView.getSelection();
    29   var r = d.createRange();
    30   r.setStart(text,0)
    31   r.setEnd(text,3)
    32   sel.addRange(r);
    33   d.documentElement.offsetHeight;
    34 }
    35 function test_iframe(iframe, i) {
    36   iframe.contentDocument.write(
    37     '<'+'style>span { text-decoration:underline; } <'+'/style>' +
    38     '<'+'script>' + 
    39         'window.parent.init_iframe(document);' +
    40         'setTimeout(function(){' + window.parent.tests[i] + '; sel=window.getSelection(); try{r=sel.getRangeAt(0); sel.removeRange(r); sel.addRange(r);}catch(e){};  ++window.parent.tests_done; },0)' +
    41     '<'+'/script>'
    42   );
    43 }
    44 function create_iframe(i) {
    45   var div = document.createElement('div');
    46   document.body.appendChild(div);
    47   div.innerHTML = "<iframe src='about:blank' style='height:6em; width:12em; float:left;' frameborder='0' onload='test_iframe(this,"+i+")'><iframe>"
    48 }
    50 var id;
    51 function check_if_done() {
    52   if (tests_done == tests.length) {
    53     clearInterval(id);
    54     document.documentElement.className = "";
    55   }
    56 }
    58 function test() {
    59   for (i = 0; i < tests.length; ++i) {
    60     create_iframe(i);
    61   }
    62   id = setInterval(check_if_done,500);
    63 }
    64 </script>
    66 </head>
    67 <body onload="test()"></body>
    68 </html>

mercurial