tor-browser

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

FileReader-multiple-reads.any.js (3229B)


      1 // META: title=FileReader: starting new reads while one is in progress
      2 
      3 test(function() {
      4  var blob_1 = new Blob(['TEST000000001'])
      5  var blob_2 = new Blob(['TEST000000002'])
      6  var reader = new FileReader();
      7  reader.readAsText(blob_1)
      8  assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING")
      9  assert_throws_dom("InvalidStateError", function () {
     10    reader.readAsText(blob_2)
     11  })
     12 }, 'test FileReader InvalidStateError exception for readAsText');
     13 
     14 test(function() {
     15  var blob_1 = new Blob(['TEST000000001'])
     16  var blob_2 = new Blob(['TEST000000002'])
     17  var reader = new FileReader();
     18  reader.readAsDataURL(blob_1)
     19  assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING")
     20  assert_throws_dom("InvalidStateError", function () {
     21    reader.readAsDataURL(blob_2)
     22  })
     23 }, 'test FileReader InvalidStateError exception for readAsDataURL');
     24 
     25 test(function() {
     26  var blob_1 = new Blob(['TEST000000001'])
     27  var blob_2 = new Blob(['TEST000000002'])
     28  var reader = new FileReader();
     29  reader.readAsArrayBuffer(blob_1)
     30  assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING")
     31  assert_throws_dom("InvalidStateError", function () {
     32    reader.readAsArrayBuffer(blob_2)
     33  })
     34 }, 'test FileReader InvalidStateError exception for readAsArrayBuffer');
     35 
     36 async_test(function() {
     37  var blob_1 = new Blob(['TEST000000001'])
     38  var blob_2 = new Blob(['TEST000000002'])
     39  var reader = new FileReader();
     40  var triggered = false;
     41  reader.onloadstart = this.step_func_done(function() {
     42    assert_false(triggered, "Only one loadstart event should be dispatched");
     43    triggered = true;
     44    assert_equals(reader.readyState, FileReader.LOADING,
     45                  "readyState must be LOADING")
     46    assert_throws_dom("InvalidStateError", function () {
     47      reader.readAsArrayBuffer(blob_2)
     48    })
     49  });
     50  reader.readAsArrayBuffer(blob_1)
     51  assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING")
     52 }, 'test FileReader InvalidStateError exception in onloadstart event for readAsArrayBuffer');
     53 
     54 async_test(function() {
     55  var blob_1 = new Blob(['TEST000000001'])
     56  var blob_2 = new Blob(['TEST000000002'])
     57  var reader = new FileReader();
     58  reader.onloadend = this.step_func_done(function() {
     59    assert_equals(reader.readyState, FileReader.DONE,
     60                  "readyState must be DONE")
     61    reader.readAsArrayBuffer(blob_2)
     62    assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING")
     63  });
     64  reader.readAsArrayBuffer(blob_1)
     65  assert_equals(reader.readyState, FileReader.LOADING, "readyState Must be LOADING")
     66 }, 'test FileReader no InvalidStateError exception in loadend event handler for readAsArrayBuffer');
     67 
     68 async_test(function() {
     69  var blob_1 = new Blob([new Uint8Array(0x414141)]);
     70  var blob_2 = new Blob(['TEST000000002']);
     71  var reader = new FileReader();
     72  reader.onloadstart = this.step_func(function() {
     73    reader.abort();
     74    reader.onloadstart = null;
     75    reader.onloadend = this.step_func_done(function() {
     76      assert_equals('TEST000000002', reader.result);
     77    });
     78    reader.readAsText(blob_2);
     79  });
     80  reader.readAsText(blob_1);
     81 }, 'test abort and restart in onloadstart event for readAsText');