<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../../editing.js"></script>
</head>
<body>
<div id="dropzone" style="width: 200px; height: 200px; background-color: grey;"></div>
<script>
description("Basic test coverage for dataTransferItem.webkitGetAsEntry()");
jsTestIsAsync = true;

var dropzone = document.getElementById('dropzone');
dropzone.ondrop = function(e) {
    e.preventDefault();
    dataTransfer = e.dataTransfer;

    shouldBe("dataTransfer.items.length", "2");

    firstDataTransferItem = dataTransfer.items[0];
    shouldBeEqualToString("firstDataTransferItem.kind", "file");
    shouldBeEqualToString("firstDataTransferItem.type", "text/plain");
    firstFile = firstDataTransferItem.getAsFile();
    shouldBeEqualToString("firstFile.name", "test.txt");
    shouldBe("firstFile.size", "5");
    shouldBeEqualToString("firstFile.type", "text/plain");

    firstEntry = firstDataTransferItem.webkitGetAsEntry();
    shouldBeFalse("firstEntry.isDirectory");
    shouldBeTrue("firstEntry.isFile");
    shouldBeEqualToString("firstEntry.name", "test.txt");
    shouldBeEqualToString("firstEntry.fullPath", "/test.txt");

    // Second item.
    secondDataTransferItem = dataTransfer.items[1];
    shouldBeEqualToString("secondDataTransferItem.kind", "file");
    shouldBeEqualToString("secondDataTransferItem.type", "");
    secondFile = secondDataTransferItem.getAsFile();
    shouldBeEqualToString("secondFile.name", "testFiles");
    shouldBeOneOfValues("secondFile.size", [0, 272, 256]); // Chrome returns folder size, Firefox returns 0. 256 in APFS, 272 in HFS+ 
    shouldBeEqualToString("secondFile.type", "");

    secondEntry = secondDataTransferItem.webkitGetAsEntry();
    shouldBeTrue("secondEntry.isDirectory");
    shouldBeFalse("secondEntry.isFile");
    shouldBeEqualToString("secondEntry.name", "testFiles");
    shouldBeEqualToString("secondEntry.fullPath", "/testFiles");

    fileSystemRoot = secondEntry.filesystem.root;
    shouldBeTrue("fileSystemRoot.isDirectory");
    shouldBeFalse("fileSystemRoot.isFile");
    shouldBeEqualToString("fileSystemRoot.name", "");
    shouldBeEqualToString("fileSystemRoot.fullPath", "/");

    finishJSTest();
};

dropzone.ondragover = function(ev) {
    ev.preventDefault();
}

onload = function() {
    dragFilesOntoElement(dropzone, ['../../../fast/forms/resources/test.txt', '../../../fast/forms/file/entries-api/resources/testFiles']);
}
</script>
</body>
</html>
