mirror of
https://github.com/servo/servo.git
synced 2025-06-23 16:44:33 +01:00
49 lines
1.6 KiB
HTML
49 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset=utf-8>
|
|
<title>Process Events for FileReader</title>
|
|
<link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#event-handler-attributes-section">
|
|
<link rel=author title="Jinks Zhao" href="mailto:jinks@maxthon.com">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
Please choose one file through this input below.<br>
|
|
<input type="file" id="filer">
|
|
<div id="log"></div>
|
|
<script>
|
|
var input, reader, progressEventCounter, progressEventTimeList,
|
|
lastProgressEventTime;
|
|
setup(function() {
|
|
input = document.getElementById('filer');
|
|
reader = new FileReader();
|
|
progressEventCounter = 0;
|
|
progressEventTimeList = [];
|
|
lastProgressEventTime;
|
|
}, { explicit_timeout: true });
|
|
|
|
var t = async_test("FileReader progress events.")
|
|
|
|
reader.onprogress = t.step_func(function () {
|
|
var newTime = new Date;
|
|
var timeout = newTime - lastProgressEventTime;
|
|
|
|
progressEventTimeList.push(timeout);
|
|
lastProgressEventTime = newTime;
|
|
progressEventCounter++;
|
|
|
|
assert_less_than_equal(timeout, 50, "The progress event should be fired every 50ms.");
|
|
});
|
|
|
|
reader.onload = t.step_func_done(function () {
|
|
assert_greater_than_equal(progressEventCounter, 1,
|
|
"When read completely, the progress event must be fired at least once.")
|
|
});
|
|
|
|
input.onchange = t.step_func(function () {
|
|
var files = input.files;
|
|
|
|
assert_greater_than(files.length, 0);
|
|
var file = files[0];
|
|
|
|
lastProgressEventTime = new Date;
|
|
reader.readAsArrayBuffer(file);
|
|
});
|
|
</script>
|