tor-browser

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

test_bug42976.html (3386B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=42976
      5 -->
      6 <head>
      7  <title>Test for Bug 42976</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>        
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     10 </head>
     11 <body onload="runTest()">
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=42976">Mozilla Bug 42976</a>
     13 <p id="display"></p>
     14 <div id="content">
     15    <iframe id=specialtest srcdoc="<meta http-equiv='Content-Language' content='ja-JP'><base href='http://www.mozilla.org'><p>asdf"></iframe>;
     16    <iframe id=htmlquirks srcdoc="<html><meta charset=ISO-8859-2><body><div></div></body></html>"></iframe>
     17    <iframe id=htmlstd srcdoc="<!DOCTYPE html><html><meta charset=ISO-8859-3><body><div></div></body></html>"></iframe>
     18    <iframe id=textplain srcdoc="<meta charset=ISO-8859-4>asdf%0Azxcv%0A"></iframe>
     19    <iframe id=xhtmlstd srcdoc="<!DOCTYPE html><html xmlns='http://www.w3.org/1999/xhtml'><meta charset=ISO-8859-5><body><div></div></body></html>"></iframe>
     20    <iframe id=xmlstd srcdoc="<meta charset=ISO-8859-6><svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width='300' height='300'><text x='60' y='150' fill='blue'>Hello, World!</text><text x='60' y='250' fill='blue'>Hello, World!</text></svg>"></iframe>
     21 </div>
     22 <pre id="test">
     23 <script class="testbody" type="text/javascript">
     24 
     25 SimpleTest.waitForExplicitFinish();
     26 
     27 function runTest() {
     28 
     29  var iframes = document.getElementsByTagName("iframe");
     30  for (var i = 1; i < iframes.length; i++) {
     31    var doc = iframes[i].contentDocument;
     32    var clonefalse = doc.cloneNode(false);
     33    // doc.compatMode
     34    ok(doc.compatMode == clonefalse.compatMode, "compatMode not preserved correctly; " + iframes[i].id);
     35  
     36    // doc.contentType
     37    ok(doc.contentType == clonefalse.contentType, "contentType not preserved correctly; " + iframes[i].id);
     38  
     39    // doc.characterSet
     40    ok(doc.characterSet == clonefalse.characterSet, "charset not preserved correctly; " + iframes[i].id);
     41  
     42    // innerHTML+tag case test
     43    var clonetrue = doc.cloneNode(true);
     44    doc.documentElement.firstChild.innerHTML="<div><dD></dD></div>";
     45    clonetrue.documentElement.firstChild.innerHTML="<div><dD></dD></div>";
     46    ok(doc.documentElement.innerHTML == clonetrue.documentElement.innerHTML,
     47       "innerHTML not preserved correctly; " + iframes[i].id);
     48  
     49  }
     50  
     51  // A couple of tests that don't quite fit in the framework.
     52  var doc = iframes[0].contentDocument;
     53 
     54  // Setting document.dir does nothing in a document without an <html> element
     55  doc.dir="rtl";
     56  var docclone = doc.cloneNode(false);
     57  
     58  // doc.dir
     59  ok(docclone.dir == "", "dir set on doc without html element");
     60  
     61  // document.querySelectorAll(":lang(ja)")
     62  docclone.appendChild(docclone.createElement("html"));
     63  ok(docclone.querySelectorAll(":lang(ja)").length == 1, "lang not preserved correctly");
     64  
     65  docclone.documentElement.innerHTML="<body><p><a href='a.html' id=a>asf</a></body>";
     66  ok(docclone.getElementById('a').href == "http://www.mozilla.org/a.html",
     67     "base not preserved correctly");
     68 
     69  // Now that we have an <html> element, deep cloning preserves document.dir
     70  docclone.dir="rtl";
     71  var cloneclone = docclone.cloneNode(true);
     72 
     73  // doc.dir
     74  ok(cloneclone.dir == "rtl", "dir not preserved correctly");
     75 
     76  SimpleTest.finish();
     77 }
     78 </script>
     79 </pre>
     80 </body>
     81 </html>