blob: cd3d2a578720a509bdd9cb56f48e606ea832f1d4 [file] [log] [blame]
<!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)" webkitdirectory></input>
<script>
description("Tests dragging a folder onto a file input with webkitdirectory set.");
jsTestIsAsync = true;
function runTest()
{
inputElement = document.getElementsByTagName('input')[0];
shouldBeTrue("inputElement.webkitdirectory");
dragFilesOntoInput(inputElement, ['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)
{
fileList = Array.from(event.target.files).sort(function (a, b) {
if (a.name > b.name)
return 1;
else if (a.name < b.name)
return -1;
return 0;
});
shouldBe("fileList.length", "5");
shouldBeEqualToString("fileList[0].name", "file1.txt");
shouldBeEqualToString("fileList[0].webkitRelativePath", "testFiles/file1.txt");
shouldBeEqualToString("fileList[1].name", "file2.txt");
shouldBeEqualToString("fileList[1].webkitRelativePath", "testFiles/file2.txt");
shouldBeEqualToString("fileList[2].name", "file3.txt");
shouldBeEqualToString("fileList[2].webkitRelativePath", "testFiles/subfolder1/file3.txt");
shouldBeEqualToString("fileList[3].name", "file4.txt");
shouldBeEqualToString("fileList[3].webkitRelativePath", "testFiles/subfolder2/file4.txt");
shouldBeEqualToString("fileList[4].name", "file5.txt");
shouldBeEqualToString("fileList[4].webkitRelativePath", "testFiles/subfolder2/subfolder2a/file5.txt");
finishJSTest();
}
runTest();
</script>
</body>
</html>