<!DOCTYPE html>
<html>
<body>
<input type="file" name="file" id="file" onchange="onInputFileChange(testFileInfoList)" multiple>
<pre id='console'></pre>

<script src="resources/setup-for-read-common.js"></script>
<script src="resources/read-common.js"></script>
<script src="resources/read-file-test-cases.js"></script>
<script>
var testFileInfoList = [
    { 'name': 'non-existent', 'path': 'resources/non-existent' },
    { 'name': 'empty-file', 'path': 'resources/empty-file' },
    { 'name': 'UTF8-file', 'path': 'resources/UTF8.txt' },
    { 'name': 'UTF16BE-BOM-file', 'path': 'resources/UTF16BE-BOM.txt' },
    { 'name': 'UTF16LE-BOM-file', 'path': 'resources/UTF16LE-BOM.txt' },
    { 'name': 'UTF8-BOM-file', 'path': 'resources/UTF8-BOM.txt' },
    { 'name': 'UTF16BE-file', 'path': 'resources/UTF16BE.txt' },
    { 'name': 'binary-file', 'path': 'resources/binary-file' },
];

function isReadAsAsync()
{
    return true;
}

function startTest(testFiles)
{
    runNextTest(testFiles);
}

if (window.eventSender) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    window.onload = function() { runTests(testFileInfoList); }
}
</script>
</body>
</html>
