1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/reftests/selection/modify-range-ref.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,68 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html class="reftest-wait"><head> 1.6 + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 1.7 + <title>Testcase for bug </title> 1.8 +<script> 1.9 +var tests_done = 0; 1.10 +var tests = [ 1.11 + 'window.getSelection().getRangeAt(0).setEnd(document.getElementsByTagName("pre")[0].firstChild,9)', 1.12 + 'window.getSelection().getRangeAt(0).setEndAfter(document.getElementsByTagName("pre")[0].firstChild)', 1.13 + 'window.getSelection().getRangeAt(0).setEndBefore(document.getElementsByTagName("pre")[0].childNodes[1])', 1.14 + 'pre=document.getElementsByTagName("pre")[0]; r=window.getSelection().getRangeAt(0); r.setEnd(pre.childNodes[1],3); r.setStartAfter(pre.firstChild)', 1.15 + 'window.getSelection().getRangeAt(0).setStartBefore(document.getElementsByTagName("pre")[0].firstChild)', 1.16 + 'window.getSelection().getRangeAt(0).selectNode(document.getElementsByTagName("pre")[0].firstChild)', 1.17 + 'window.getSelection().getRangeAt(0).selectNodeContents(document.getElementsByTagName("pre")[0])', 1.18 + 'window.getSelection().getRangeAt(0).collapse(true)', 1.19 + 'window.getSelection().getRangeAt(0).surroundContents(document.createElement("span"))', 1.20 + 'window.getSelection().getRangeAt(0).setStart(document,0)', 1.21 + 'window.getSelection().getRangeAt(0).detach()', 1.22 + 'window.getSelection().getRangeAt(0).extractContents()', 1.23 + 'window.getSelection().getRangeAt(0).deleteContents()' 1.24 +]; 1.25 +function init_iframe(d) { 1.26 + var pre = d.createElement('pre'); 1.27 + pre.appendChild(d.createTextNode('first\nfirst\n')); 1.28 + pre.appendChild(d.createTextNode('second')); 1.29 + d.documentElement.appendChild(pre); 1.30 + var text = pre.firstChild; 1.31 + var sel = d.defaultView.getSelection(); 1.32 + var r = d.createRange(); 1.33 + r.setStart(text,0) 1.34 + r.setEnd(text,3) 1.35 + sel.addRange(r); 1.36 + d.documentElement.offsetHeight; 1.37 +} 1.38 +function test_iframe(iframe, i) { 1.39 + iframe.contentDocument.write( 1.40 + '<'+'style>span { text-decoration:underline; } <'+'/style>' + 1.41 + '<'+'script>' + 1.42 + 'window.parent.init_iframe(document);' + 1.43 + '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)' + 1.44 + '<'+'/script>' 1.45 + ); 1.46 +} 1.47 +function create_iframe(i) { 1.48 + var div = document.createElement('div'); 1.49 + document.body.appendChild(div); 1.50 + div.innerHTML = "<iframe src='about:blank' style='height:6em; width:12em; float:left;' frameborder='0' onload='test_iframe(this,"+i+")'><iframe>" 1.51 +} 1.52 + 1.53 +var id; 1.54 +function check_if_done() { 1.55 + if (tests_done == tests.length) { 1.56 + clearInterval(id); 1.57 + document.documentElement.className = ""; 1.58 + } 1.59 +} 1.60 + 1.61 +function test() { 1.62 + for (i = 0; i < tests.length; ++i) { 1.63 + create_iframe(i); 1.64 + } 1.65 + id = setInterval(check_if_done,500); 1.66 +} 1.67 +</script> 1.68 + 1.69 +</head> 1.70 +<body onload="test()"></body> 1.71 +</html>