49 lines
1.5 KiB
HTML
49 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<input type="file" name="file1" id="file1">
|
|
<input type="file" name="file2" id="file2">
|
|
<script>
|
|
description("This tests the files attribute in file input forms");
|
|
|
|
if (window.testRunner) {
|
|
var file1 = document.getElementById("file1");
|
|
var file2 = document.getElementById("file2");
|
|
dragFilesOntoInput(file1, ["foo.txt"]);
|
|
dragFilesOntoInput(file2, ["bar.txt"]);
|
|
|
|
shouldThrow('file1.files = "foo"');
|
|
shouldBe("file1.files.length", "1");
|
|
shouldBeEqualToString("file1.files.item(0).name", "foo.txt");
|
|
|
|
file1.files = null;
|
|
shouldBe("file1.files.length", "1");
|
|
shouldBeEqualToString("file1.files.item(0).name", "foo.txt");
|
|
|
|
// From current W3C spec, files attribute should be read only,
|
|
// but WebKit implement it to be writable intentionally.
|
|
// See: https://bugs.webkit.org/show_bug.cgi?id=87154#c15
|
|
file1.files = file2.files;
|
|
shouldBe("file1.files.length", "1");
|
|
shouldBeEqualToString("file1.files.item(0).name", "bar.txt");
|
|
}
|
|
|
|
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();
|
|
}
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|