Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dnd/file-drop-on-webkitdropzone-element.html

Issue 2729353002: Remove webkitdropzone. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <meta charset="utf-8" />
3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script>
5 <script src="resources/copy-data-transfer.js"></script>
6 <style>
7 #dropzone {
8 display: block;
9 border: 1px solid black;
10 width: 200px;
11 height: 200px;
12 }
13 </style>
14
15 <p>
16 Please download <a download href="resources/dragged-file.txt">this file</a>,
17 and drag it into the box below.
18 </p>
19
20 <div id="dropzone" webkitdropzone="copy file:text/plain">
21 Drop Here
22 </div>
23
24 <script>
25 'use strict';
26
27 const dropZone = document.querySelector('#dropzone');
28
29 const dropPromise = new Promise((resolve, reject) => {
30 dropZone.ondrop = event => {
31 event.preventDefault(); // Needed to prevent drop navigation.
32 resolve(copyDataTransfer(event.dataTransfer));
33 };
34 });
35
36 const clientRect = dropZone.getBoundingClientRect();
37 if (window.eventSender) {
38 eventSender.beginDragWithFiles(['resources/dragged-file.txt']);
39 const centerX = (clientRect.left + clientRect.right) / 2;
40 const centerY = (clientRect.top + clientRect.bottom) / 2;
41 eventSender.mouseMoveTo(centerX, centerY);
42 eventSender.mouseUp();
43 }
44
45 promise_test(() => {
46 return dropPromise.then((dataTransfer) => {
47 assert_array_equals(dataTransfer.types, ['Files']);
48 });
49 }, 'DataTransfer.types in drop');
50
51 promise_test(() => {
52 return dropPromise.then((dataTransfer) => {
53 assert_object_equals(dataTransfer.data, {Files: ''});
54 });
55 }, 'DataTransfer.getData() return values in drop');
56
57 promise_test(() => {
58 return dropPromise.then((dataTransfer) => {
59 assert_equals(
60 dataTransfer.files.length, 1,
61 'DataTransfer.files should have one element');
62 const file = dataTransfer.files[0];
63 assert_equals(file.file.name, 'dragged-file.txt');
64 assert_equals(file.file.type, 'text/plain');
65 assert_equals(file.file.size, 21);
66 assert_equals(file.data, 'The test has FAILED.\n');
67 });
68 }, 'DataTransfer.files in drop');
69
70 promise_test(() => {
71 return dropPromise.then((dataTransfer) => {
72 const file = dataTransfer.files[0].file;
73 assert_true(
74 file instanceof File,
75 'DataTransfer.files[0] should be a File instance');
76 assert_equals(
77 file.name, 'dragged-file.txt',
78 "File.name should reflect the dropped file's name");
79 assert_equals(
80 file.type, 'text/plain',
81 "File.type should reflect the dropped file's MIME type");
82 assert_equals(
83 file.size, 21,
84 "File.type should reflect the dropped file's size");
85 });
86 }, 'DataTransfer.files[0] File metadata in drop');
87
88 promise_test(() => {
89 return dropPromise.then((dataTransfer) => {
90 assert_equals(dataTransfer.files[0].data, 'The test has FAILED.\n');
91 });
92 }, 'Using FileReader to read DataTransfer.files[0] in drop');
93
94 promise_test(() => {
95 return dropPromise.then((dataTransfer) => {
96 assert_equals(
97 dataTransfer.items.length, 1,
98 'DataTransfer.items should have 1 element');
99 const item = dataTransfer.items[0];
100 assert_equals(
101 item.kind, 'file',
102 'DataTransferItem.kind should indicate that a file was dropped');
103 assert_equals(
104 item.type, 'text/plain', // Firefox returns application/x-moz-file
105 "DataTransferItem.type should reflect the dropped file's MIME type");
106 });
107 }, 'DataTransfer.items in drop');
108
109 promise_test(() => {
110 return dropPromise.then((dataTransfer) => {
111 assert_equals(
112 dataTransfer.items[0].error, undefined,
113 'Reading the file in DataTransfer.items[0] should not throw');
114
115 const file = dataTransfer.items[0].file;
116 assert_true(
117 file instanceof File,
118 'DataTransfer.items[0].getAsFile() should return a File instance');
119 assert_equals(
120 file.name, 'dragged-file.txt',
121 "File.name should reflect the dropped file's name");
122 assert_equals(
123 file.type, 'text/plain',
124 "File.type should reflect the dropped file's MIME type");
125 assert_equals(
126 file.size, 21,
127 "File.type should reflect the dropped file's size");
128 });
129 }, 'DataTransfer.items[0].getAsFile() File metadata in drop');
130
131 promise_test(() => {
132 return dropPromise.then((dataTransfer) => {
133 assert_equals(dataTransfer.items[0].data, 'The test has FAILED.\n');
134 });
135 }, 'Using FileReader to read DataTransfer.items[0].getAsFile() in drop');
136
137 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698