|
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 } |
|
49 |
|
50 var id; |
|
51 function check_if_done() { |
|
52 if (tests_done == tests.length) { |
|
53 clearInterval(id); |
|
54 document.documentElement.className = ""; |
|
55 } |
|
56 } |
|
57 |
|
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> |
|
65 |
|
66 </head> |
|
67 <body onload="test()"></body> |
|
68 </html> |