OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script src="../../resources/js-test.js"></script> | 3 <script src="../../resources/js-test.js"></script> |
4 <style> | 4 <style> |
5 #dropTarget, #dragMe { text-align: center; display: table-cell; vertical-align:
middle } | 5 #dropTarget, #dragMe { text-align: center; display: table-cell; vertical-align:
middle } |
6 #dropTarget {width: 256px; height: 256px; border: 1px dashed} | 6 #dropTarget {width: 256px; height: 256px; border: 1px dashed} |
7 #dragMe {-webkit-user-drag: element; -webkit-user-select: none; background: #ff0
000; width: 64px; height: 64px; color: white} | 7 #dragMe {-webkit-user-drag: element; -webkit-user-select: none; background: #ff0
000; width: 64px; height: 64px; color: white} |
8 </style> | 8 </style> |
9 <script> | 9 <script> |
10 var dragMe; | 10 var dragMe; |
11 var dropTarget; | 11 var dropTarget; |
12 var effectAllowedElem; | 12 var effectAllowedElem; |
13 var dropEffectElem; | 13 var dropEffectElem; |
14 var consoleElm; | 14 var consoleElm; |
15 var event; | 15 var event; |
16 | 16 |
17 window.onload = function() | 17 window.onload = function() |
18 { | 18 { |
19 dragMe = document.getElementById("dragMe"); | 19 dragMe = document.getElementById("dragMe"); |
20 dropTarget = document.getElementById("dropTarget"); | 20 dropTarget = document.getElementById("dropTarget"); |
21 consoleElm = document.getElementById("console"); | 21 consoleElm = document.getElementById("console"); |
22 | 22 |
23 if (!dragMe || !dropTarget || !consoleElm) | 23 if (!dragMe || !dropTarget || !consoleElm) |
24 return; | 24 return; |
25 | 25 |
26 dragMe.ondragstart = dragStart; | 26 dragMe.ondragstart = dragStart; |
27 dragMe.ondragend = dragEnd; | 27 dragMe.ondragend = dragEnd; |
28 | 28 |
29 dropTarget.ondragenter = dragEntered; | 29 dropTarget.ondragenter = dragEntered; |
30 dropTarget.ondragover = dragOver; | 30 dropTarget.ondragover = dragOver; |
31 dropTarget.ondrop = drop; | 31 dropTarget.ondrop = drop; |
32 | 32 |
33 runTest(); | 33 runTest(); |
34 } | 34 } |
35 | 35 |
36 function dragStart(e) | 36 function dragStart(e) |
37 { | 37 { |
38 var validEffectAllowedList = ["all", "copy", "copyLink", "copyMove", "li
nk", "linkMove", "move", "none", "uninitialized"]; | 38 var validEffectAllowedList = ["all", "copy", "copyLink", "copyMove", "li
nk", "linkMove", "move", "none", "uninitialized"]; |
39 var effectAllowedListToTest = ["all", "copy", "bogus", "copyLink", "wron
g", "copyMove", "linkCopyMove", "link", | 39 var effectAllowedListToTest = ["all", "copy", "bogus", "copyLink", "wron
g", "copyMove", "linkCopyMove", "link", |
40 "linkMove", "move", "none", "uninitialized", "dummy", "bogus", "fake
", "illegal"]; | 40 "linkMove", "move", "none", "uninitialized", "dummy", "bogus", "fake
", "illegal", null, undefined , ""]; |
41 | 41 |
42 event = e; | 42 event = e; |
43 | 43 |
44 for (var i = 0; i < effectAllowedListToTest.length; i++) { | 44 for (var i = 0; i < effectAllowedListToTest.length; i++) { |
45 var effectAllowedBefore = e.dataTransfer.effectAllowed; | 45 var effectAllowedBefore = e.dataTransfer.effectAllowed; |
46 e.dataTransfer.effectAllowed = effectAllowedListToTest[i]; | 46 e.dataTransfer.effectAllowed = effectAllowedListToTest[i]; |
47 if (validEffectAllowedList.indexOf(effectAllowedListToTest[i]) != -1
) | 47 if (validEffectAllowedList.indexOf(effectAllowedListToTest[i]) != -1
) |
48 shouldBeEqualToString("event.dataTransfer.effectAllowed", effect
AllowedListToTest[i]); | 48 shouldBeEqualToString("event.dataTransfer.effectAllowed", effect
AllowedListToTest[i]); |
49 else | 49 else |
50 shouldBeEqualToString("event.dataTransfer.effectAllowed", effect
AllowedBefore); | 50 shouldBeEqualToString("event.dataTransfer.effectAllowed", effect
AllowedBefore); |
51 } | 51 } |
52 | 52 |
53 e.dataTransfer.setData('Text', e.target.textContent); | 53 e.dataTransfer.setData('Text', e.target.textContent); |
54 } | 54 } |
55 | 55 |
56 function dragEnd(e) | 56 function dragEnd(e) |
57 { | 57 { |
58 return; | 58 return; |
59 } | 59 } |
60 | 60 |
61 function dragEntered(e) | 61 function dragEntered(e) |
62 { | 62 { |
63 dragEnteredAndUpdated(e); | 63 dragEnteredAndUpdated(e); |
64 } | 64 } |
65 | 65 |
66 function dragOver(e) | 66 function dragOver(e) |
67 { | 67 { |
68 dragEnteredAndUpdated(e); | 68 dragEnteredAndUpdated(e); |
69 } | 69 } |
70 | 70 |
71 function dragEnteredAndUpdated(e) | 71 function dragEnteredAndUpdated(e) |
72 { | 72 { |
73 var validDropEffectList = ["none", "copy", "link", "move", "link"]; | 73 var validDropEffectList = ["none", "copy", "link", "move", "link"]; |
74 var dropEffectListToTest = ["all", "copy", "bogus", "copyLink", "wrong",
"copyMove", "linkCopyMove", "link", | 74 var dropEffectListToTest = ["all", "copy", "bogus", "copyLink", "wrong",
"copyMove", "linkCopyMove", "link", |
75 "linkMove", "move", "none", "uninitialized", "dummy", "bogus", "fake
", "illegal"]; | 75 "linkMove", "move", "none", "uninitialized", "dummy", "bogus", "fake
", "illegal", null, undefined , ""]; |
76 | 76 |
77 event = e; | 77 event = e; |
78 | 78 |
79 for (var i = 0; i < dropEffectListToTest.length; i++) { | 79 for (var i = 0; i < dropEffectListToTest.length; i++) { |
80 var dropEffectBefore = e.dataTransfer.dropEffect; | 80 var dropEffectBefore = e.dataTransfer.dropEffect; |
81 e.dataTransfer.dropEffect = dropEffectListToTest[i]; | 81 e.dataTransfer.dropEffect = dropEffectListToTest[i]; |
82 | 82 |
83 if (validDropEffectList.indexOf(dropEffectListToTest[i]) != -1) | 83 if (validDropEffectList.indexOf(dropEffectListToTest[i]) != -1) |
84 shouldBeEqualToString("event.dataTransfer.dropEffect", dropEffec
tListToTest[i]); | 84 shouldBeEqualToString("event.dataTransfer.dropEffect", dropEffec
tListToTest[i]); |
85 else | 85 else |
86 shouldBeEqualToString("event.dataTransfer.dropEffect", dropEffec
tBefore); | 86 shouldBeEqualToString("event.dataTransfer.dropEffect", dropEffec
tBefore); |
87 | 87 |
88 } | 88 } |
89 | 89 |
90 cancelDrag(e); | 90 cancelDrag(e); |
91 } | 91 } |
92 | 92 |
93 function drop(e) | 93 function drop(e) |
94 { | 94 { |
95 cancelDrag(e); | 95 cancelDrag(e); |
96 } | 96 } |
97 | 97 |
98 function cancelDrag(e) | 98 function cancelDrag(e) |
99 { | 99 { |
100 e.preventDefault(); | 100 e.preventDefault(); |
101 } | 101 } |
102 | 102 |
103 function runTest() | 103 function runTest() |
104 { | 104 { |
105 if (!window.eventSender) | 105 if (!window.eventSender) |
106 return; | 106 return; |
107 | 107 |
108 if (window.testRunner) | 108 if (window.testRunner) |
109 testRunner.dumpAsText(); | 109 testRunner.dumpAsText(); |
110 | 110 |
111 var startX = dragMe.offsetLeft + 10; | 111 var startX = dragMe.offsetLeft + 10; |
112 var startY = dragMe.offsetTop + dragMe.offsetHeight / 2; | 112 var startY = dragMe.offsetTop + dragMe.offsetHeight / 2; |
113 var endX = dropTarget.offsetLeft + 10; | 113 var endX = dropTarget.offsetLeft + 10; |
114 var endY = dropTarget.offsetTop + dropTarget.offsetHeight / 2; | 114 var endY = dropTarget.offsetTop + dropTarget.offsetHeight / 2; |
115 | 115 |
116 eventSender.mouseMoveTo(startX, startY); | 116 eventSender.mouseMoveTo(startX, startY); |
117 eventSender.mouseDown(); | 117 eventSender.mouseDown(); |
118 eventSender.leapForward(100); | 118 eventSender.leapForward(100); |
119 eventSender.mouseMoveTo(endX, endY); | 119 eventSender.mouseMoveTo(endX, endY); |
120 eventSender.mouseUp(); | 120 eventSender.mouseUp(); |
121 | 121 |
122 var testContainer = document.getElementById("test-container"); | 122 var testContainer = document.getElementById("test-container"); |
123 if (testContainer) | 123 if (testContainer) |
124 document.body.removeChild(testContainer); | 124 document.body.removeChild(testContainer); |
125 debug('<br /><span class="pass">TEST COMPLETE</span>'); | 125 debug('<br /><span class="pass">TEST COMPLETE</span>'); |
126 } | 126 } |
127 </script> | 127 </script> |
128 </head> | 128 </head> |
129 <body> | 129 <body> |
130 <p id="description"></p> | 130 <p id="description"></p> |
131 <div id="test-container"> | 131 <div id="test-container"> |
132 <br/><br/> | 132 <br/><br/> |
133 <div id="dropTarget">Drop the red square onto me.<br/><br/></div> | 133 <div id="dropTarget">Drop the red square onto me.<br/><br/></div> |
134 <hr/> | 134 <hr/> |
135 <p>Items that can be dragged to the drop target:</p> | 135 <p>Items that can be dragged to the drop target:</p> |
136 <div id="dragMe" draggable="true">Square</div> | 136 <div id="dragMe" draggable="true">Square</div> |
137 <hr/> | 137 <hr/> |
138 </div> | 138 </div> |
139 <div id="console"></div> | 139 <div id="console"></div> |
140 <script> | 140 <script> |
141 description("This test checks that effectAllowed and dropEffect cannot b
e set to values that aren't defined in the spec"); | 141 description("This test checks that effectAllowed and dropEffect cannot b
e set to values that aren't defined in the spec"); |
142 </script> | 142 </script> |
143 </body> | 143 </body> |
144 </html> | 144 </html> |
OLD | NEW |