зеркало из https://github.com/mozilla/pjs.git
69 строки
2.7 KiB
HTML
69 строки
2.7 KiB
HTML
<!DOCTYPE HTML>
|
|
<html class="reftest-wait"><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<title>Testcase for bug </title>
|
|
<script>
|
|
var tests_done = 0;
|
|
var tests = [
|
|
'window.getSelection().getRangeAt(0).setEnd(document.getElementsByTagName("pre")[0].firstChild,9)',
|
|
'window.getSelection().getRangeAt(0).setEndAfter(document.getElementsByTagName("pre")[0].firstChild)',
|
|
'window.getSelection().getRangeAt(0).setEndBefore(document.getElementsByTagName("pre")[0].childNodes[1])',
|
|
'pre=document.getElementsByTagName("pre")[0]; r=window.getSelection().getRangeAt(0); r.setEnd(pre.childNodes[1],3); r.setStartAfter(pre.firstChild)',
|
|
'window.getSelection().getRangeAt(0).setStartBefore(document.getElementsByTagName("pre")[0].firstChild)',
|
|
'window.getSelection().getRangeAt(0).selectNode(document.getElementsByTagName("pre")[0].firstChild)',
|
|
'window.getSelection().getRangeAt(0).selectNodeContents(document.getElementsByTagName("pre")[0])',
|
|
'window.getSelection().getRangeAt(0).collapse(true)',
|
|
'window.getSelection().getRangeAt(0).surroundContents(document.createElement("span"))',
|
|
'window.getSelection().getRangeAt(0).setStart(document,0)',
|
|
'window.getSelection().getRangeAt(0).detach()',
|
|
'window.getSelection().getRangeAt(0).extractContents()',
|
|
'window.getSelection().getRangeAt(0).deleteContents()'
|
|
];
|
|
function init_iframe(d) {
|
|
var pre = d.createElement('pre');
|
|
pre.appendChild(d.createTextNode('first\nfirst\n'));
|
|
pre.appendChild(d.createTextNode('second'));
|
|
d.documentElement.appendChild(pre);
|
|
var text = pre.firstChild;
|
|
var sel = d.defaultView.getSelection();
|
|
var r = d.createRange();
|
|
r.setStart(text,0)
|
|
r.setEnd(text,3)
|
|
sel.addRange(r);
|
|
d.documentElement.offsetHeight;
|
|
}
|
|
function test_iframe(iframe, i) {
|
|
iframe.contentDocument.write(
|
|
'<'+'style>span { text-decoration:underline; } <'+'/style>' +
|
|
'<'+'script>' +
|
|
'window.parent.init_iframe(document);' +
|
|
'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)' +
|
|
'<'+'/script>'
|
|
);
|
|
}
|
|
function create_iframe(i) {
|
|
var div = document.createElement('div');
|
|
document.body.appendChild(div);
|
|
div.innerHTML = "<iframe src='about:blank' style='height:6em; width:12em; float:left;' frameborder='0' onload='test_iframe(this,"+i+")'><iframe>"
|
|
}
|
|
|
|
var id;
|
|
function check_if_done() {
|
|
if (tests_done == tests.length) {
|
|
clearInterval(id);
|
|
document.documentElement.className = "";
|
|
}
|
|
}
|
|
|
|
function test() {
|
|
for (i = 0; i < tests.length; ++i) {
|
|
create_iframe(i);
|
|
}
|
|
id = setInterval(check_if_done,500);
|
|
}
|
|
</script>
|
|
|
|
</head>
|
|
<body onload="test()"></body>
|
|
</html>
|