Make sure that the FileReader operations throw when passed in an invalid blob.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS fileReader.readAsArrayBuffer(undefined) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsArrayBuffer must be an instance of Blob.
PASS fileReader.readAsArrayBuffer(null) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsArrayBuffer must be an instance of Blob.
PASS fileReader.readAsArrayBuffer(window) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsArrayBuffer must be an instance of Blob.
PASS fileReader.readAsBinaryString(undefined) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsBinaryString must be an instance of Blob.
PASS fileReader.readAsBinaryString(null) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsBinaryString must be an instance of Blob.
PASS fileReader.readAsBinaryString(window) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsBinaryString must be an instance of Blob.
PASS fileReader.readAsText(undefined) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsText must be an instance of Blob.
PASS fileReader.readAsText(null) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsText must be an instance of Blob.
PASS fileReader.readAsText(window) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsText must be an instance of Blob.
PASS fileReader.readAsDataURL(undefined) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsDataURL must be an instance of Blob.
PASS fileReader.readAsDataURL(null) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsDataURL must be an instance of Blob.
PASS fileReader.readAsDataURL(window) threw exception TypeError: Argument 1 ('blob') to FileReader.readAsDataURL must be an instance of Blob.
PASS successfullyParsed is true

TEST COMPLETE

