tor-browser

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

test_xhr_abort_after_load.html (1969B)


      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">"use strict";
     10 SimpleTest.waitForExplicitFinish();
     11 
     12 var url = "file_XHR_pass1.xml";
     13 
     14 function onWindowLoad() {
     15  runTest();
     16 }
     17 
     18 function runTest() {
     19  var testFunctions = [
     20    startTest1,
     21    startTest2,
     22    startTest3,
     23  ];
     24 
     25  function nextTest() {
     26    if (!testFunctions.length) {
     27      SimpleTest.finish();
     28      return;
     29    }
     30    (testFunctions.shift())();
     31  }
     32 
     33  nextTest();
     34 
     35  var xhr;
     36  function startTest1() {
     37    xhr = new XMLHttpRequest();
     38    xhr.onload = onLoad1;
     39    xhr.open("GET", url);
     40    xhr.send();
     41  }
     42 
     43  function onLoad1() {
     44    is(xhr.readyState, xhr.DONE, "readyState should be DONE");
     45    xhr.onabort = onAbort1;
     46    xhr.abort();
     47 
     48    function onAbort1(e) {
     49      ok(false, e.type + " event should not be fired!");
     50    }
     51 
     52    is(xhr.readyState, xhr.UNSENT, "readyState should be UNSENT");
     53    nextTest();
     54  }
     55 
     56  function startTest2() {
     57    xhr = new XMLHttpRequest();
     58    xhr.onloadstart = onAfterSend;
     59    xhr.open("GET", url);
     60    xhr.send();
     61  }
     62 
     63  function startTest3() {
     64    xhr = new XMLHttpRequest();
     65    xhr.open("GET", url);
     66    xhr.send();
     67    onAfterSend();
     68  }
     69 
     70  function onAfterSend() {
     71    is(xhr.readyState, xhr.OPENED, "readyState should be OPENED");
     72    var sent = false;
     73    try {
     74      xhr.send();
     75    } catch (e) {
     76      sent = true;
     77    }
     78    ok(sent, "send() flag should be set");
     79    var aborted = false;
     80    xhr.onabort = onAbort2;
     81    xhr.abort();
     82 
     83    function onAbort2() {
     84      is(xhr.readyState, xhr.DONE, "readyState should be DONE");
     85      aborted = true;
     86    }
     87 
     88    ok(aborted, "abort event should be fired");
     89    is(xhr.readyState, xhr.UNSENT, "readyState should be UNSENT");
     90    nextTest();
     91  }
     92 }
     93 
     94 </script>
     95 </body>
     96 </html>