<!doctype html> <html> <head> <title>FileReader States</title> <link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-filereader"> <link rel=author title="Lenient" href="mailto:lenient315@gmail.com"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> </head> <body> <div id="log"></div> <script> test(function() { assert_true("FileReader" in window, "window 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(); }); }); </script> </body> </html>