tor-browser

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

filereader_abort.any.js (1565B)


      1 // META: title=FileAPI Test: filereader_abort
      2 
      3    test(function() {
      4      var readerNoRead = new FileReader();
      5      readerNoRead.abort();
      6      assert_equals(readerNoRead.readyState, readerNoRead.EMPTY);
      7      assert_equals(readerNoRead.result, null);
      8    }, "Aborting before read");
      9 
     10    promise_test(t => {
     11        var blob = new Blob(["TEST THE ABORT METHOD"]);
     12        var readerAbort = new FileReader();
     13 
     14        var eventWatcher = new EventWatcher(t, readerAbort,
     15            ['abort', 'loadstart', 'loadend', 'error', 'load']);
     16 
     17        // EventWatcher doesn't let us inspect the state after the abort event,
     18        // so add an extra event handler for that.
     19        readerAbort.addEventListener('abort', t.step_func(e => {
     20              assert_equals(readerAbort.readyState, readerAbort.DONE);
     21          }));
     22 
     23        readerAbort.readAsText(blob);
     24        return eventWatcher.wait_for('loadstart')
     25          .then(() => {
     26              assert_equals(readerAbort.readyState, readerAbort.LOADING);
     27              // 'abort' and 'loadend' events are dispatched synchronously, so
     28              // call wait_for before calling abort.
     29              var nextEvent = eventWatcher.wait_for(['abort', 'loadend']);
     30              readerAbort.abort();
     31              return nextEvent;
     32            })
     33          .then(() => {
     34              // https://www.w3.org/Bugs/Public/show_bug.cgi?id=24401
     35              assert_equals(readerAbort.result, null);
     36              assert_equals(readerAbort.readyState, readerAbort.DONE);
     37            });
     38      }, "Aborting after read");