<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<input type="file" ondrop="dropped(event)"></input>
<div id="console"></div>
<script>
description("Tests that FileList objects have an iterator.");
jsTestIsAsync = true;

function runTest()
{
    var inputElement = document.getElementsByTagName('input')[0];
    eventSender.beginDragWithFiles(['test.txt']);
    eventSender.mouseMoveTo(inputElement.offsetLeft + inputElement.offsetWidth / 2,
                            inputElement.offsetTop + inputElement.offsetHeight / 2);
    eventSender.mouseUp();
}

function dropped(event)
{
    fileList = event.dataTransfer.files;
    shouldBe("fileList.__proto__", "FileList.prototype");
    shouldBeTrue("Symbol.iterator in fileList");
    forOfSucceeded = false;
    try {
        for (var file of fileList) { }
        forOfSucceeded = true;
    } catch (e) {
        forOfSucceeded = false;
    }
    shouldBeTrue("forOfSucceeded");

    shouldBeFalse("'entries' in fileList");
    shouldBeFalse("'keys' in fileList");
    shouldBeFalse("'forEach' in fileList");
    shouldBeFalse("'values' in fileList");

    finishJSTest();
}

runTest();

</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
