tor-browser

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

test_bug482935.html (2061B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test bug 482935</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="	/tests/SimpleTest/test.css" />
      7 </head>
      8 <body onload="onWindowLoad()">
      9 <script class="testbody" type="text/javascript">
     10 
     11 var url = "bug482935.sjs";
     12 
     13 function clearCache() {
     14    if (SpecialPowers.isMainProcess()) {
     15      SpecialPowers.Cc["@mozilla.org/netwerk/cache-storage-service;1"].
     16                    getService(SpecialPowers.Ci.nsICacheStorageService).
     17                    clear();
     18    }
     19 }
     20 
     21 // Tests that the response is cached if the request is cancelled
     22 // after it has reached state 4
     23 function testCancelInPhase4() {
     24 
     25  clearCache();
     26 
     27  // First request - should be loaded from server
     28  var xhr = new XMLHttpRequest();
     29  xhr.addEventListener("readystatechange", function() {
     30    if (xhr.readyState < xhr.DONE) return;
     31    is(xhr.readyState, xhr.DONE, "wrong readyState");
     32    xhr.abort();
     33    SimpleTest.executeSoon(function() {
     34      // This request was cancelled, so the responseText should be empty string
     35      is(xhr.responseText, "", "Expected empty response to cancelled request");
     36 
     37      // Second request - should be found in cache
     38      var xhr2 = new XMLHttpRequest();
     39 
     40      xhr2.addEventListener("load", function() {
     41        is(xhr2.responseText, "0", "Received fresh value for second request");
     42        SimpleTest.finish();
     43      });
     44 
     45      xhr2.open("GET", url);
     46      xhr2.setRequestHeader("X-Request", "1", false);
     47 
     48      try { xhr2.send(); }
     49      catch(e) {
     50        is(xhr2.status, "200", "Exception!");
     51      }
     52    });
     53  });
     54 
     55  xhr.open("GET", url, true);
     56  xhr.setRequestHeader("X-Request", "0", false);
     57  try { xhr.send(); }
     58  catch(e) {
     59    is("Nothing", "Exception", "Boom: " + e);
     60  }
     61 }
     62 
     63 function onWindowLoad() {
     64  // Disable rcwn to make cache behavior deterministic.
     65  SpecialPowers.pushPrefEnv({set: [["network.http.rcwn.enabled", false]]},
     66                            testCancelInPhase4);
     67 }
     68 
     69 SimpleTest.waitForExplicitFinish();
     70 </script>
     71 </body>
     72 </html>