<html>
<head>
<script src="../../resources/js-test.js"></script>
<script src="resources/fs-test-util.js"></script>
</head>
<body>
<input type="file">
<script>
description('This test tries calling various FileAPI functions with too few arguments.');

var reader = new FileReader();

shouldThrow('reader.readAsArrayBuffer()');
shouldThrow('reader.readAsBinaryString()');
shouldThrow('reader.readAsText()');
shouldThrow('reader.readAsDataURL()');

var fileInput = document.getElementsByTagName('input')[0];

shouldThrow('fileInput.files.item()');
</script>
</body>
</html>
