1<!doctype html> 2<html> 3 <head> 4 <title>FileReader States</title> 5 <link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-filereader"> 6 <link rel=author title="Lenient" href="mailto:lenient315@gmail.com"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 </head> 10 <body> 11 <div id="log"></div> 12 <script> 13 test(function() { 14 assert_true("FileReader" in window, "window should have a FileReader property."); 15 }, "FileReader interface object"); 16 17 test(function(){ 18 var fileReader = new FileReader(); 19 assert_true(fileReader instanceof FileReader); 20 }, "no-argument FileReader constructor"); 21 22 var t_abort = async_test("FileReader States -- abort"); 23 t_abort.step(function(){ 24 var fileReader = new FileReader(); 25 assert_equals(fileReader.readyState, 0); 26 assert_equals(fileReader.readyState, FileReader.EMPTY); 27 28 var blob = new Blob(); 29 fileReader.readAsArrayBuffer(blob); 30 assert_equals(fileReader.readyState, 1); 31 assert_equals(fileReader.readyState, FileReader.LOADING); 32 33 fileReader.onabort = this.step_func(function(e) { 34 assert_equals(fileReader.readyState, 2); 35 assert_equals(fileReader.readyState, FileReader.DONE); 36 t_abort.done(); 37 }); 38 fileReader.abort(); 39 fileReader.onabort = this.unreached_func("abort event should fire sync") 40 }); 41 42 var t_event = async_test("FileReader States -- events"); 43 t_event.step(function(){ 44 var fileReader = new FileReader(); 45 46 var blob = new Blob(); 47 fileReader.readAsArrayBuffer(blob); 48 49 fileReader.onloadstart = this.step_func(function(e) { 50 assert_equals(fileReader.readyState, 1); 51 assert_equals(fileReader.readyState, FileReader.LOADING); 52 }); 53 54 fileReader.onprogress = this.step_func(function(e) { 55 assert_equals(fileReader.readyState, 1); 56 assert_equals(fileReader.readyState, FileReader.LOADING); 57 }); 58 59 fileReader.onloadend = this.step_func(function(e) { 60 assert_equals(fileReader.readyState, 2); 61 assert_equals(fileReader.readyState, FileReader.DONE); 62 t_event.done(); 63 }); 64 }); 65 </script> 66 </body> 67</html> 68