| // META: title=FileReader States |
| |
| 'use strict'; |
| |
| test(function () { |
| assert_true( |
| "FileReader" in globalThis, |
| "globalThis should have a FileReader property.", |
| ); |
| }, "FileReader interface object"); |
| |
| test(function () { |
| var fileReader = new FileReader(); |
| assert_true(fileReader instanceof FileReader); |
| }, "no-argument FileReader constructor"); |
| |
| var t_abort = async_test("FileReader States -- abort"); |
| t_abort.step(function () { |
| var fileReader = new FileReader(); |
| assert_equals(fileReader.readyState, 0); |
| assert_equals(fileReader.readyState, FileReader.EMPTY); |
| |
| var blob = new Blob(); |
| fileReader.readAsArrayBuffer(blob); |
| assert_equals(fileReader.readyState, 1); |
| assert_equals(fileReader.readyState, FileReader.LOADING); |
| |
| fileReader.onabort = this.step_func(function (e) { |
| assert_equals(fileReader.readyState, 2); |
| assert_equals(fileReader.readyState, FileReader.DONE); |
| t_abort.done(); |
| }); |
| fileReader.abort(); |
| fileReader.onabort = this.unreached_func("abort event should fire sync"); |
| }); |
| |
| var t_event = async_test("FileReader States -- events"); |
| t_event.step(function () { |
| var fileReader = new FileReader(); |
| |
| var blob = new Blob(); |
| fileReader.readAsArrayBuffer(blob); |
| |
| fileReader.onloadstart = this.step_func(function (e) { |
| assert_equals(fileReader.readyState, 1); |
| assert_equals(fileReader.readyState, FileReader.LOADING); |
| }); |
| |
| fileReader.onprogress = this.step_func(function (e) { |
| assert_equals(fileReader.readyState, 1); |
| assert_equals(fileReader.readyState, FileReader.LOADING); |
| }); |
| |
| fileReader.onloadend = this.step_func(function (e) { |
| assert_equals(fileReader.readyState, 2); |
| assert_equals(fileReader.readyState, FileReader.DONE); |
| t_event.done(); |
| }); |
| }); |