<!DOCTYPE html>
<html>
<head>
<script src="../../../../resources/js-test.js"></script>
<script src="../../../../resources/ui-helper.js"></script>
</head>
<body>
<input type="file" onchange="changed(event)" multiple></input>
<script>
description("Tests dragging a folder onto a file input without webkitdirectory set and querying input.webkitEntries.");
jsTestIsAsync = true;

function runTest()
{
    inputElement = document.getElementsByTagName('input')[0];
    shouldBeFalse("inputElement.webkitdirectory");
    dragFilesOntoInput(inputElement, ['../../resources/test.txt', 'resources/testFiles']);
}

function moveMouseToCenterOfElement(element) {
    var centerX = element.offsetLeft + element.offsetWidth / 2;
    var centerY = element.offsetTop + element.offsetHeight / 2;
    eventSender.mouseMoveTo(centerX, centerY);
}

function dragFilesOntoInput(input, files) {
    eventSender.beginDragWithFiles(files);
    moveMouseToCenterOfElement(input);
    eventSender.mouseUp();
}

function changed(event)
{
    entries = event.target.webkitEntries;
    shouldBe("entries.length", "2");
    shouldBeEqualToString("entries[0].name", "test.txt");
    shouldBeEqualToString("entries[0].fullPath", "/test.txt");
    shouldBeTrue("entries[0].isFile");

    shouldBeEqualToString("entries[1].name", "testFiles");
    shouldBeEqualToString("entries[1].fullPath", "/testFiles");
    shouldBeTrue("entries[1].isDirectory");

    files = event.target.files;
    shouldBe("files.length", "2");
    shouldBeEqualToString("files[0].name", "test.txt");
    shouldBe("files[0].size", "5");
    shouldBeEqualToString("files[0].type", "text/plain");

    shouldBeEqualToString("files[1].name", "testFiles");
    shouldBeOneOfValues("files[1].size", [0, 272, 256]);
    shouldBeEqualToString("files[1].type", "");

    finishJSTest();
}

runTest();

</script>
</body>
</html>
