• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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