layout/reftests/selection/modify-range.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/layout/reftests/selection/modify-range.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] + '; ++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>

mercurial