tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug480972.html (3183B)


      1 <!DOCTYPE HTML>
      2 <html><head>
      3 <title>Test for bug 480972</title>
      4 <style src="/tests/SimpleTest/test.css" type="text/css"></style>
      5 <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6 <script src="/tests/SimpleTest/EventUtils.js"></script>
      7 
      8 <script class="testbody" type="application/javascript">
      9 
     10 function runTest() {
     11  function verifyContent(s) {
     12    var e = document.getElementById("i1");
     13    var doc = e.contentDocument;
     14    is(doc.body.innerHTML, s, "");
     15  }
     16 
     17  function pasteInto(html, target_id) {
     18    var e = document.getElementById("i1");
     19    var doc = e.contentDocument;
     20    doc.designMode = "on";
     21    doc.body.innerHTML = html;
     22    doc.defaultView.focus();
     23    if (target_id)
     24      e = doc.getElementById(target_id);
     25    else
     26      e = doc.body;
     27    var selection = doc.defaultView.getSelection();
     28    selection.removeAllRanges();
     29    selection.selectAllChildren(e);
     30    selection.collapseToEnd();
     31    SpecialPowers.wrap(doc).execCommand("paste", false, null);
     32   return e;
     33  }
     34 
     35  function copyToClipBoard(s, asHTML, target_id) {
     36    var e = document.getElementById("i2");
     37    var doc = e.contentDocument;
     38    if (asHTML) {
     39      doc.body.innerHTML = s;
     40    } else {
     41      var text = doc.createTextNode(s);
     42      doc.body.appendChild(text);
     43    }
     44    doc.designMode = "on";
     45    doc.defaultView.focus();
     46    var selection = doc.defaultView.getSelection();
     47    selection.removeAllRanges();
     48    if (!target_id) {
     49      selection.selectAllChildren(doc.body);
     50    } else {
     51      var range = document.createRange();
     52      range.selectNode(doc.getElementById(target_id));
     53      selection.addRange(range);
     54    }
     55    SpecialPowers.wrap(doc).execCommand("copy", false, null);
     56    return e;
     57  }
     58 
     59  copyToClipBoard("<span>Hello</span><span>Kitty</span>", true);
     60  pasteInto("");
     61  verifyContent("<span>Hello</span><span>Kitty</span>");
     62 
     63  copyToClipBoard("<dl><dd>Hello Kitty</dd></dl><span>Hello</span><span>Kitty</span>", true);
     64  pasteInto('<ol><li id="paste_here">X</li></ol>', "paste_here");
     65  verifyContent('<ol><li id="paste_here">X<dl><dd>Hello Kitty</dd></dl><span>Hello</span><span>Kitty</span></li></ol>');
     66 
     67 // The following test doesn't do what I expected, because the special handling
     68 // of IsList nodes in nsHTMLEditor::InsertHTMLWithContext simply removes
     69 // non-list/item children.  See bug 481177.
     70 //  copyToClipBoard("<ol><li>Hello Kitty</li><span>Hello</span></ol>", true);
     71 //  pasteInto('<ol><li id="paste_here">X</li></ol>',"paste_here");
     72 //  verifyContent('<ol><li id="paste_here">X</li><li>Hello Kitty</li><span>Hello</span></ol>');
     73 
     74  copyToClipBoard("<pre>Kitty</pre><span>Hello</span>", true);
     75  pasteInto('<pre id="paste_here">Hello </pre>', "paste_here");
     76  verifyContent('<pre id="paste_here">Hello Kitty<span>Hello</span></pre>');
     77 
     78  SimpleTest.finish();
     79 }
     80 
     81 SimpleTest.waitForExplicitFinish();
     82 addLoadEvent(runTest);
     83 </script>
     84 </head>
     85 <body>
     86 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=480972">Mozilla Bug 480972</a>
     87 <p id="display"></p>
     88 
     89 <pre id="test">
     90 </pre>
     91 
     92 
     93 <iframe id="i1" width="200" height="100" src="about:blank"></iframe><br>
     94 <iframe id="i2" width="200" height="100" src="about:blank"></iframe><br>
     95 
     96 </body>
     97 </html>