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");