layout/reftests/selection/dom-mutations-ref.html

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 <!DOCTYPE HTML>
     2 <html class="reftest-wait">
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=619273
     5 -->
     6 <head>
     7   <title>Test for Bug 619273</title>
     8 <script type="application/javascript;version=1.7">
     9 /** Test DOM mutations inside selection **/
    10 function createDOM(doc) {
    11   let s = doc.createElement('span');
    12   s.appendChild(doc.createTextNode('|'))
    13   let s2 = doc.createElement('span');
    14   s2.appendChild(doc.createTextNode('z'))
    15   s.appendChild(s2)
    16   return s;
    17 }
    19 var tests_done = 0;
    20 var tests = [
    21   function(win,doc,sel) {
    22     doc.body.innerHTML = '.I<br>B<br>C|z'
    23     let a = doc.body.firstChild;
    24     let r = doc.createRange();
    25     r.setStart(a, 1);
    26     r.setEnd(a, 2);
    27     sel.addRange(r);
    28   },
    29    function(win,doc,sel) {
    30     doc.body.innerHTML = '.I<br>B<br>C|z'
    31     let a = doc.body.firstChild;
    32     let r = doc.createRange();
    33     r.setStart(doc.firstChild, 0);
    34     r.setEnd(a, 2);
    35     sel.addRange(r);
    36   },
    37  function(win,doc,sel) {
    38     doc.body.innerHTML = 'I<br>.B<br>C|z'
    39     let a = doc.body.firstChild;
    40     let b = doc.body.childNodes[2];
    41     let c = doc.body.childNodes[4];
    42     let r = doc.createRange();
    43     r.setStart(a, 0);
    44     r.setEnd(c, 1);
    45     sel.addRange(r);
    46   },
    47   function(win,doc,sel) {
    48     doc.body.innerHTML = 'I<br>.B<br>C|z'
    49     let b = doc.body.childNodes[2];
    50     let c = doc.body.childNodes[4];
    51     let r = doc.createRange();
    52     r.setStart(doc.body, 0);
    53     r.setEnd(c, 1);
    54     sel.addRange(r);
    55   },
    56   function(win,doc,sel) {
    57     doc.body.innerHTML = 'I<br>.B<br>C|z'
    58     let b = doc.body.childNodes[2];
    59     let c = doc.body.childNodes[4];
    60     let r = doc.createRange();
    61     r.setStart(doc, 0);
    62     r.setEnd(c, 1);
    63     sel.addRange(r);
    64   },
    65   function(win,doc,sel) {
    66     doc.body.innerHTML = 'I<br>B<br>.C|z'
    67     let a = doc.body.firstChild;
    68     let c = doc.body.childNodes[4];
    69     let r = doc.createRange();
    70     r.setStart(a, 0);
    71     r.setEnd(c, 2);
    72     sel.addRange(r);
    73   },
    75   function(win,doc,sel) {
    76     doc.body.innerHTML = '|z|zI<br>B<br>C'
    77     let a = doc.body.firstChild;
    78     let r = doc.createRange();
    79     r.setStart(a, 4);
    80     r.setEnd(a, 5);
    81     sel.addRange(r);
    82   },
    83    function(win,doc,sel) {
    84     doc.body.innerHTML = '|z|zI<br>B<br>C'
    85     let a = doc.body.firstChild;
    86     let r = doc.createRange();
    87     r.setStart(doc.firstChild, 0);
    88     r.setEnd(a, 5);
    89     sel.addRange(r);
    90   },
    91  function(win,doc,sel) {
    92     doc.body.innerHTML = 'I<br>|z|zB<br>C'
    93     let a = doc.body.firstChild;
    94     let b = doc.body.childNodes[2];
    95     let c = doc.body.childNodes[4];
    96     let r = doc.createRange();
    97     r.setStart(a, 0);
    98     r.setEnd(c, 1);
    99     sel.addRange(r);
   100   },
   101   function(win,doc,sel) {
   102     doc.body.innerHTML = 'I<br>|z|zB<br>C'
   103     let b = doc.body.childNodes[2];
   104     let c = doc.body.childNodes[4];
   105     let r = doc.createRange();
   106     r.setStart(doc.body, 0);
   107     r.setEnd(c, 1);
   108     sel.addRange(r);
   109   },
   110   function(win,doc,sel) {
   111     doc.body.innerHTML = 'I<br>|z|zB<br>C'
   112     let b = doc.body.childNodes[2];
   113     let c = doc.body.childNodes[4];
   114     let r = doc.createRange();
   115     r.setStart(doc, 0);
   116     r.setEnd(c, 1);
   117     sel.addRange(r);
   118   },
   119   function(win,doc,sel) {
   120     doc.body.innerHTML = 'I<br>B<br>|z|zC'
   121     let a = doc.body.firstChild;
   122     let c = doc.body.childNodes[4];
   123     let r = doc.createRange();
   124     r.setStart(a, 0);
   125     r.setEnd(c, 5);
   126     sel.addRange(r);
   127   },
   129   function(win,doc,sel) {
   130     doc.body.innerHTML = '<br>B<br>CI'
   131   },
   132   function(win,doc,sel) {
   133     doc.body.innerHTML = '<br>B<br>C'
   134   },
   135   function(win,doc,sel) {
   136     doc.body.innerHTML = 'I<br>B<br>C'
   137     let a = doc.body.firstChild;
   138     let c = doc.body.childNodes[4];
   139     let r = doc.createRange();
   140     r.setStart(a, 0);
   141     r.setEnd(c, 1);
   142     sel.addRange(r);
   143   },
   145   function(win,doc,sel) {
   146     doc.body.innerHTML = 'I|z'
   147     let a = doc.body.firstChild;
   148     let r = doc.createRange();
   149     r.setStart(a, 1);
   150     r.setEnd(a, 2);
   151     sel.addRange(r);
   152   },
   154   function(win,doc,sel) {
   155     doc.body.innerHTML = 'Iz|'
   156     let a = doc.body.firstChild;
   157     let r = doc.createRange();
   158     r.setStart(a, 1);
   159     r.setEnd(a, 2);
   160     sel.addRange(r);
   162     document.body.appendChild(document.createTextNode('I'));
   163     document.body.appendChild(document.createTextNode(' '));
   164     document.body.appendChild(createDOM(document));
   165   },
   166 ]
   168 function runTestInIframe(run,t) {
   169   let f = document.createElement('iframe');
   170   f.setAttribute('frameborder','0');
   171   f.setAttribute('height','100');
   172   f.setAttribute('width','200');
   173   f.src = 'data:text/html,<body style="margin:0;padding:0;font-family:monospace">';
   174   f.onload = function () {
   175     try {
   176       run(f.contentWindow, f.contentDocument, f.contentWindow.getSelection());
   177     } finally { ++tests_done; }
   178   }
   179   return f;
   180 }
   182 var id;
   183 function checkFinished() {
   184   if (window.frames.length == tests_done) {
   185     clearInterval(id);
   186     document.documentElement.className = "";
   187   }
   188 }
   190 function runTest() {
   191   for (let i=0; i < tests.length; ++i) {
   192     let t = tests[i];
   193     document.body.appendChild(runTestInIframe(t));
   194   }
   195   id = setInterval(checkFinished,500);
   196 }
   197 </script>
   198 </head>
   199 <body onload="runTest()"></body>
   200 </html>

mercurial