tor-browser

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

event-upload-progress.any.js (1118B)


      1 // META: title=XMLHttpRequest: upload progress event
      2 // META: script=/common/get-host-info.sub.js
      3 
      4 const remote = get_host_info().HTTP_REMOTE_ORIGIN + "/xhr/resources/corsenabled.py",
      5  redirect = "resources/redirect.py?code=307&location=" + remote;
      6 
      7 [remote, redirect].forEach(url => {
      8  async_test(test => {
      9    const client = new XMLHttpRequest();
     10    const data = "On time: " + url;
     11    client.upload.onprogress = test.step_func_done(e => {
     12      assert_true(e.lengthComputable);
     13      assert_equals(e.total, data.length);
     14    });
     15    client.onload = test.unreached_func();
     16    client.open("POST", url);
     17    client.send(data);
     18  }, "Upload events registered on time (" + url + ")");
     19 });
     20 
     21 [remote, redirect].forEach(url => {
     22  async_test(test => {
     23    const client = new XMLHttpRequest();
     24    client.onload = test.step_func_done();
     25    client.open("POST", url);
     26    client.send("Too late: " + url);
     27    client.upload.onloadstart = test.unreached_func(); // registered too late
     28    client.upload.onprogress = test.unreached_func(); // registered too late
     29  }, "Upload events registered too late (" + url + ")");
     30 });