blob: 5140a60bc6f10fd763ad818270eb84b24304a810 [file] [log] [blame]
rniwa@webkit.orgd22c03e2012-01-24 00:47:28 +00001<!DOCTYPE html>
2<html>
3<head>
4<style type="text/css">
5span, div { display: block; }
6span {
7 -webkit-user-drag: element;
8 -webkit-user-select: none;
9 background: green;
10 padding: 10px;
11}
12div {
13 background: red;
14 padding: 50px;
15}
16</style>
17</head>
18<body>
19<p>This test ensures we clear the drag state at the end of each drag. To test manually, drag the green box below twice.
20You should observe the same list of events in the same order twice.</p>
21<div>
22 <span>Drag me down twice!</span>
23</div>
24<pre id="log">
25</pre>
26<script>
27
28function log(event) {
29 document.getElementById('log').textContent += event.target.localName + ':' + this.localName + ':' + event.type + '\n';
30}
31
32function setLog(log) {
33 var value = document.getElementById('log').textContent;
34 document.getElementById('log').textContent = log;
35 return value;
36}
37
38var div = document.querySelector('div');
39div.addEventListener('dragover', function (event) { event.preventDefault(); });
40div.addEventListener('dragenter', log);
41div.addEventListener('dragleave', log);
42
43var span = document.querySelector('span');
44span.addEventListener('dragenter', log);
45span.addEventListener('dragleave', log);
46
47function dragSpan() {
48 var x = span.offsetLeft + span.offsetWidth / 2;
49 eventSender.mouseMoveTo(x, span.offsetTop + span.offsetHeight / 2);
50 eventSender.mouseDown();
51 eventSender.mouseMoveTo(x, span.offsetTop + 2 * span.offsetHeight / 3);
52 eventSender.leapForward(200);
53 eventSender.mouseMoveTo(x, span.offsetTop + 3 * span.offsetHeight / 2);
54 eventSender.leapForward(200);
55 eventSender.mouseUp();
56}
57
58if (window.eventSender) {
59 layoutTestController.dumpAsText();
60 dragSpan();
61 var firstLog = setLog('');
62 dragSpan();
63 var secondLog = setLog('PASS');
64 if (firstLog != secondLog)
65 setLog('FAIL:\nFirst drag:\n' + firstLog + '\nSecond drag:\n' + secondLog);
66}
67
68</script>
69</body>
70</html>