tor-browser

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

test_meta_refresh_referrer.html (2374B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <meta name='referrer' content='origin'>
      6  <title>Test for referrer of meta refresh request when network.http.referer.sendFromRefresh is disabled.</title>
      7  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      8  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
      9 
     10 <script type="application/javascript">
     11 
     12 SimpleTest.waitForExplicitFinish();
     13 var advance = function() { tests.next(); };
     14 
     15 /**
     16 * Listen for notifications from the child.
     17 */
     18 window.addEventListener("message", function(event) {
     19    if (event.data == "childLoadComplete") {
     20      advance();
     21    }
     22 });
     23 
     24 var tests = (function*() {
     25  var iframe = document.getElementById("testframe");
     26 
     27  // reset counter to make the test pass --repeat test
     28  yield reset();
     29 
     30  // load the test frame
     31  yield iframe.src =
     32    '/tests/dom/base/test/iframe_meta_refresh.sjs?action=test&load=refresh';
     33 
     34  // check the test result
     35  yield checkResults(referrerHeaderChecker);
     36 
     37  // complete.
     38  SimpleTest.finish();
     39 })();
     40 
     41 function referrerHeaderChecker(results) {
     42  var expected = {'count': 2, 'referrers': ['origin', 'none']};
     43  is(results.count, expected.count, "Correct number of referrer header");
     44  is(results.referrers[0], expected.referrers[0], "Correct load referrer header");
     45  is(results.referrers[1], expected.referrers[1], "Correct refresh referrer header");
     46 
     47  advance();
     48 }
     49 
     50 /**
     51 * helper to perform an XHR.
     52 */
     53 function doXHR(url, onSuccess, onFail) {
     54  var xhr = new XMLHttpRequest();
     55  xhr.onload = function () {
     56    if (xhr.status == 200) {
     57      onSuccess(xhr);
     58    } else {
     59      onFail(xhr);
     60    }
     61  };
     62  xhr.open('GET', url, true);
     63  xhr.send(null);
     64 }
     65 
     66 /**
     67 * Grabs the results via XHR and passes to checker.
     68 */
     69 function checkResults(checker) {
     70  doXHR('/tests/dom/base/test/iframe_meta_refresh.sjs?action=results',
     71        function(xhr) {
     72          checker(JSON.parse(xhr.responseText));
     73        },
     74        function(xhr) {
     75          ok(false, "Can't get results from server.");
     76        });
     77 }
     78 
     79 /**
     80 * Reset the counter.
     81 */
     82 function reset() {
     83  doXHR('/tests/dom/base/test/iframe_meta_refresh.sjs?action=reset',
     84    advance,
     85    function(xhr) {
     86      ok(false, "error in reset state");
     87      SimpleTest.finish();
     88    });
     89 }
     90 
     91 </script>
     92 </head>
     93 
     94 <body onload="tests.next();">
     95  <iframe id="testframe"></iframe>
     96 
     97 </body>
     98 </html></html>