blob: b2e03b3eb27387414391721fa09fd5ab283e1fda [file] [log] [blame]
Andrew Top61a84952019-04-30 15:07:33 -07001<!DOCTYPE html>
2<meta charset=utf-8>
3<title>Process Events for FileReader</title>
4<link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#event-handler-attributes-section">
5<link rel=author title="Jinks Zhao" href="mailto:jinks@maxthon.com">
6<script src="/resources/testharness.js"></script>
7<script src="/resources/testharnessreport.js"></script>
8Please choose one file through this input below.<br>
9<input type="file" id="filer">
10<div id="log"></div>
11<script>
12var input, reader, progressEventCounter, progressEventTimeList,
13 lastProgressEventTime;
14setup(function() {
15 input = document.getElementById('filer');
16 reader = new FileReader();
17 progressEventCounter = 0;
18 progressEventTimeList = [];
19 lastProgressEventTime;
20}, { explicit_timeout: true });
21
22var t = async_test("FileReader progress events.")
23
24reader.onprogress = t.step_func(function () {
25 var newTime = new Date;
26 var timeout = newTime - lastProgressEventTime;
27
28 progressEventTimeList.push(timeout);
29 lastProgressEventTime = newTime;
30 progressEventCounter++;
31
32 assert_less_than_equal(timeout, 50, "The progress event should be fired every 50ms.");
33});
34
35reader.onload = t.step_func_done(function () {
36 assert_greater_than_equal(progressEventCounter, 1,
37 "When read completely, the progress event must be fired at least once.")
38});
39
40input.onchange = t.step_func(function () {
41 var files = input.files;
42
43 assert_greater_than(files.length, 0);
44 var file = files[0];
45
46 lastProgressEventTime = new Date;
47 reader.readAsArrayBuffer(file);
48});
49</script>