Tests access to event.dataTransfer.files and .types

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


Dragging no files should return an empty file list (arbitrary implementation detail):
On dragenter:
PASS event.dataTransfer.types does not contain Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types does not contain Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types does not contain Files.
PASS event.dataTransfer.files.length is 0
Drag drop a single (non-existant) file onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 1
PASS event.dataTransfer.files[0].name is "DRTFakeFile"
PASS event.dataTransfer.files[0].size is 0
FIXME: File.size always returns 0 for files dropped by eventSender.beginDragWithFiles from http tests:  https://bugs.webkit.org/show_bug.cgi?id=25909
Drag files over an element, leave that element and release the mouse:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragleave:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
Drag drop a real file onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 1
PASS event.dataTransfer.files[0].name is "apple.gif"
FAIL event.dataTransfer.files[0].size should be 1476. Was 0.
Drag drop two files onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 2
PASS event.dataTransfer.files[0].name is "apple.gif"
FAIL event.dataTransfer.files[0].size should be 1476. Was 0.
PASS event.dataTransfer.files[1].name is "mozilla.gif"
FAIL event.dataTransfer.files[1].size should be 2593. Was 0.
Drag drop two files in reverse alphabetical order onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 2
PASS event.dataTransfer.files[0].name is "mozilla.gif"
FAIL event.dataTransfer.files[0].size should be 2593. Was 0.
PASS event.dataTransfer.files[1].name is "apple.gif"
FAIL event.dataTransfer.files[1].size should be 1476. Was 0.
FIXME: We should not allow element to accept drops including directories unless https://bugs.webkit.org/show_bug.cgi?id=25879 is fixed to make directory File objects useful from JavaScript.  The page is given File objects corresponding to directories, but form submission and xhr.send() will fail.
Drag drop a directory onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
FAIL event.dataTransfer.files.length should be 0. Was 1.
Drag drop a file and a directory onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
FAIL event.dataTransfer.files.length should be 0. Was 2.
Drag drop a directory and a file onto an element:
On dragenter:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On dragover:
PASS event.dataTransfer.types contains Files.
PASS event.dataTransfer.files.length is 0
On drop:
PASS event.dataTransfer.types contains Files.
FAIL event.dataTransfer.files.length should be 0. Was 2.
PASS successfullyParsed is true

TEST COMPLETE

