tor-browser

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

test_bug445004.html (3963B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=445004
      5 -->
      6 <head>
      7  <title>Test for Bug 445004</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>
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=445004">Mozilla Bug 445004</a>
     13 <div id="content" style="display: none">
     14  
     15 </div>
     16 <pre id="test">
     17 <script type="application/javascript">
     18 
     19 /** Test for Bug 445004 */
     20 is(window.location.hostname, "mochi.test", "Unexpected hostname");
     21 is(window.location.port, "8888", "Unexpected port; fix testcase");
     22 
     23 SimpleTest.waitForExplicitFinish();
     24 
     25 var loads = 1;
     26 
     27 function loadStarted() {
     28  ++loads;
     29 }
     30 function loadEnded() {
     31  --loads;
     32  if (loads == 0) {
     33    doTest();
     34  }
     35 }
     36 
     37 window.onload = loadEnded;
     38 
     39 function getMessage(evt) {
     40  ok(evt.data == "start" || evt.data == "end", "Must have start or end");
     41  if (evt.data == "start")
     42    loadStarted();
     43  else
     44    loadEnded();
     45 }
     46 
     47 window.addEventListener("message", getMessage);
     48 
     49 function checkURI(uri, name, type) {
     50  var host = uri.match(/^http:\/\/([a-z.0-9]*)/)[1];
     51  var file = uri.match(/([^\/]*).png$/)[1];
     52  is(host, file, "Unexpected base URI for test " + name +
     53     " when testing " + type);
     54 }
     55 
     56 function checkFrame(num) {
     57  // Just snarf our data
     58  var outer = SpecialPowers.wrap(window.frames[num]);
     59  name = outer.name;
     60 
     61  is(outer.document.baseURI,
     62     "http://example.org/tests/dom/html/test/bug445004-outer.html",
     63     "Unexpected base URI for " + name);
     64 
     65  var iswrite = name.match(/write/);
     66 
     67  var inner = outer.frames[0];
     68  if (iswrite) {
     69    is(inner.document.baseURI,
     70       "http://example.org/tests/dom/html/test/bug445004-outer.html",
     71       "Unexpected inner base URI for " + name);
     72  } else {
     73    is(inner.document.baseURI,
     74       "http://test1.example.org/tests/dom/html/test/bug445004-inner.html",
     75       "Unexpected inner base URI for " + name);
     76  }
     77 
     78  var isrel = name.match(/rel/);
     79  var offsite = name.match(/offsite/);
     80 
     81  if (!iswrite) {
     82    if ((isrel && !offsite) || (!isrel && offsite)) {
     83      is(inner.location.hostname, outer.location.hostname,
     84         "Unexpected hostnames for " + name);
     85    } else {
     86      isnot(inner.location.hostname, outer.location.hostname,
     87            "Unexpected hostnames for " + name);
     88    }
     89  }
     90 
     91  checkURI(inner.frames[0].location.href, name, "direct location");
     92  checkURI(inner.frames[1].document.getElementsByTagName("img")[0].src,
     93           name, "direct write");
     94  if (!iswrite) {
     95    is(inner.frames[1].location.hostname, inner.location.hostname,
     96       "Incorrect hostname for " + name + " direct write")
     97  }
     98  checkURI(inner.frames[2].location.href, name, "indirect location");
     99  checkURI(inner.frames[3].document.getElementsByTagName("img")[0].src,
    100           name, "indirect write");
    101  if (!iswrite) {
    102    is(inner.frames[3].location.hostname, outer.location.hostname,
    103       "Incorrect hostname for " + name + " indirect write")
    104  }
    105  checkURI(inner.document.getElementsByTagName("img")[0].src,
    106           name, "direct image load");
    107 }
    108 
    109 
    110 function doTest() {
    111  for (var num = 0; num < 5; ++num) {
    112    checkFrame(num);
    113  }
    114 
    115  SimpleTest.finish();
    116 }
    117 
    118 </script>
    119 </pre>
    120 <p id="display">
    121  <iframe
    122     src="http://example.org/tests/dom/html/test/bug445004-outer-rel.html"
    123     name="bug445004-outer-rel.html"></iframe>
    124  <iframe
    125     src="http://test1.example.org/tests/dom/html/test/bug445004-outer-rel.html"
    126     name="bug445004-outer-rel.html offsite"></iframe>
    127  <iframe
    128     src="http://example.org/tests/dom/html/test/bug445004-outer-abs.html"
    129     name="bug445004-outer-abs.html"></iframe>
    130  <iframe
    131     src="http://test1.example.org/tests/dom/html/test/bug445004-outer-abs.html"
    132     name="bug445004-outer-abs.html offsite"></iframe>
    133  <iframe
    134     src="http://example.org/tests/dom/html/test/bug445004-outer-write.html"
    135     name="bug445004-outer-write.html"></iframe>
    136 </p>
    137 </body>
    138 </html>