Source code
Revision control
Copy as Markdown
Other Tools
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>FileAPI Test: filereader_file</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div>
<p>Test step:</p>
<ol>
<li>Download <a href="support/blue-100x100.png">blue-100x100.png</a> to local.</li>
<li>Select the local file (blue-100x100.png) to run the test.</li>
</ol>
</div>
<form name="uploadData">
<input type="file" id="fileChooser">
</form>
<div id="log"></div>
<script>
var fileInput = document.querySelector('#fileChooser');
var reader = new FileReader();
//readType: 1-> ArrayBuffer, 2-> Text, 3-> DataURL
var readType = 1;
setup({
explicit_done: true,
explicit_timeout: true,
});
on_event(fileInput, "change", function(evt) {
reader.readAsArrayBuffer(fileInput.files[0]);
});
on_event(reader, "load", function(evt) {
if (readType == 1) {
test(function() {
assert_true(reader.result instanceof ArrayBuffer, "The result is instanceof ArrayBuffer");
}, "Check if the readAsArrayBuffer works");
readType++;
reader.readAsText(fileInput.files[0]);
} else if (readType == 2) {
test(function() {
assert_equals(typeof reader.result, "string", "The result is typeof string");
}, "Check if the readAsText works");
readType++;
reader.readAsDataURL(fileInput.files[0]);
} else if (readType == 3) {
test(function() {
assert_equals(typeof reader.result, "string", "The result is typeof string");
assert_equals(reader.result.indexOf("data"), 0, "The result starts with 'data'");
assert_true(reader.result.indexOf("base64") > 0, "The result contains 'base64'");
}, "Check if the readAsDataURL works");
done();
}
});
</script>
</body>
</html>