2 <script src=
"/js-test-resources/ahem.js"></script>
5 Tests the string displayed when a File created using the FileSystem API is used
6 in the FileList of a <input type="file"> element. To run this test manually,
7 drag the black box over the input field.
9 Expectation: the file name displayed by the <input> UI should be hello.txt. The
10 renderer should not crash after the name shows up.
16 -webkit-font-smoothing: none;
19 border:
1px solid black;
31 <div id=
"dragSource" draggable=
"true"
32 title=
"Drag this box onto the file input below">
37 <input id=
"fileInput" type=
"file" />
42 if (window
.testRunner
)
43 testRunner
.waitUntilDone();
45 // FIXME: dragging will become unnecessary if/when we implement a FileList constructor
46 var dragSource
= document
.getElementById('dragSource');
47 var inputElement
= document
.getElementById('fileInput');
49 inputElement
.disabled
= true;
51 webkitRequestFileSystem(window
.TEMPORARY
, 1024 * 1024, function (fs
) {
52 fs
.root
.getFile('hello.txt', {create
: true, exclusive
: false}, function (entry
) {
53 entry
.createWriter(function (writer
) {
54 writer
.onwriteend = function (event
) {
55 entry
.file(function (file
) {
57 inputElement
.disabled
= false;
61 writer
.write(new Blob(['Hello world!']));
66 var outputFileList
= null;
67 dragSource
.addEventListener('dragstart', function (event
) {
68 event
.dataTransfer
.items
.add(testFile
);
69 outputFileList
= event
.dataTransfer
.files
;
72 inputElement
.addEventListener('dragenter', function (event
) {
73 event
.preventDefault();
75 inputElement
.addEventListener('dragover', function (event
) {
76 event
.preventDefault();
78 inputElement
.addEventListener('drop', function (event
) {
79 event
.target
.files
= outputFileList
;
80 if (window
.testRunner
)
81 testRunner
.notifyDone();
84 function dragSourceToInput() {
85 var startX
= dragSource
.offsetLeft
+ dragSource
.offsetWidth
/ 2;
86 var startY
= dragSource
.offsetTop
+ dragSource
.offsetHeight
/ 2;
87 var targetX
= inputElement
.offsetLeft
+ inputElement
.offsetWidth
/ 2;
88 var targetY
= inputElement
.offsetTop
+ inputElement
.offsetHeight
/ 2;
90 if (window
.eventSender
) {
91 eventSender
.dragMode
= true;
92 eventSender
.mouseMoveTo(startX
, startY
);
93 eventSender
.mouseDown();
94 eventSender
.leapForward(250);
95 eventSender
.mouseMoveTo(targetX
, targetY
);
96 eventSender
.mouseUp();