fileReader.any.js (1748B)
1 // META: title=FileReader States 2 3 'use strict'; 4 5 test(function () { 6 assert_true( 7 "FileReader" in globalThis, 8 "globalThis should have a FileReader property.", 9 ); 10 }, "FileReader interface object"); 11 12 test(function () { 13 var fileReader = new FileReader(); 14 assert_true(fileReader instanceof FileReader); 15 }, "no-argument FileReader constructor"); 16 17 var t_abort = async_test("FileReader States -- abort"); 18 t_abort.step(function () { 19 var fileReader = new FileReader(); 20 assert_equals(fileReader.readyState, 0); 21 assert_equals(fileReader.readyState, FileReader.EMPTY); 22 23 var blob = new Blob(); 24 fileReader.readAsArrayBuffer(blob); 25 assert_equals(fileReader.readyState, 1); 26 assert_equals(fileReader.readyState, FileReader.LOADING); 27 28 fileReader.onabort = this.step_func(function (e) { 29 assert_equals(fileReader.readyState, 2); 30 assert_equals(fileReader.readyState, FileReader.DONE); 31 t_abort.done(); 32 }); 33 fileReader.abort(); 34 fileReader.onabort = this.unreached_func("abort event should fire sync"); 35 }); 36 37 var t_event = async_test("FileReader States -- events"); 38 t_event.step(function () { 39 var fileReader = new FileReader(); 40 41 var blob = new Blob(); 42 fileReader.readAsArrayBuffer(blob); 43 44 fileReader.onloadstart = this.step_func(function (e) { 45 assert_equals(fileReader.readyState, 1); 46 assert_equals(fileReader.readyState, FileReader.LOADING); 47 }); 48 49 fileReader.onprogress = this.step_func(function (e) { 50 assert_equals(fileReader.readyState, 1); 51 assert_equals(fileReader.readyState, FileReader.LOADING); 52 }); 53 54 fileReader.onloadend = this.step_func(function (e) { 55 assert_equals(fileReader.readyState, 2); 56 assert_equals(fileReader.readyState, FileReader.DONE); 57 t_event.done(); 58 }); 59 });