layout/reftests/selection/modify-range.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.

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

mercurial