Test for slicing a dragged file and sending it via XMLHttpRequest.

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


Test slicing and sending an empty file.
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 0
PASS subfile.type is ""
PASS Expected response data received: OK
Test slicing and sending a small file.
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 4
PASS subfile.type is ""
PASS Expected response data received: OK
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 8
PASS subfile.type is "type/foo"
PASS Expected response data received: OK
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 0
PASS subfile.type is "type/bar"
PASS Expected response data received: OK
Test slicing and sending a big file.
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 40
PASS subfile.type is ""
PASS Expected response data received: OK
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 3000
PASS subfile.type is ""
PASS Expected response data received: OK
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 9242
PASS subfile.type is ""
PASS Expected response data received: OK
Test slicing and sending a file that has been changed right before sending.
PASS event.dataTransfer contains a File object on drop.
PASS subfile.size is 5
PASS subfile.type is ""
PASS Expected response data received: OK
PASS Expected exception thrown: NetworkError:  A network error occurred.
PASS successfullyParsed is true

TEST COMPLETE

