Index: LayoutTests/fast/events/setDragImage-with-detached-node.html |
diff --git a/LayoutTests/fast/events/setDragImage-with-detached-node.html b/LayoutTests/fast/events/setDragImage-with-detached-node.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..921949ddfd6c442a8de8c57d21a768057f9a8e4d |
--- /dev/null |
+++ b/LayoutTests/fast/events/setDragImage-with-detached-node.html |
@@ -0,0 +1,61 @@ |
+<!DOCTYPE html> |
+<script src="../../resources/js-test.js"></script> |
+<script> |
+var dragEndExpected = true; |
+ |
+window.onload = function() |
+{ |
+ var dragger = document.getElementById('dragMe'); |
+ dragger.addEventListener('dragstart', dragStart); |
+ dragger.addEventListener('drag', dragging); |
+ dragger.addEventListener('dragend', dragEnd); |
+ if (!window.testRunner) |
+ return; |
+ |
+ var x = dragger.offsetLeft + dragger.offsetWidth / 2; |
+ var y = dragger.offsetTop + dragger.offsetHeight / 2; |
+ |
+ eventSender.mouseMoveTo(x, y); |
+ eventSender.mouseDown(); |
+ eventSender.leapForward(100); |
+ eventSender.mouseMoveTo(x + 100, y + 100); |
+ eventSender.mouseUp(); |
+} |
+ |
+function dragStart(e) |
+{ |
+ if (window.testRunner) |
+ dragEndExpected = false; |
+ debug('Started drag.'); |
+ var emptyDiv = document.createElement('div'); |
+ e.dataTransfer.setDragImage(emptyDiv, 0, 0); |
+} |
+ |
+function dragging() |
+{ |
+ dragEndExpected = true; |
+} |
+ |
+function dragEnd() |
+{ |
+ if (!dragEndExpected) |
+ testFailed('Not expecting drag end!'); |
+ else |
+ testPassed('Ended drag.'); |
+} |
+</script> |
+<style> |
+html, body { |
+ height: 100%; |
+ margin: 0; |
+} |
+ |
+#dragMe { |
+ border: 1px solid black; |
+} |
+</style> |
+<body> |
+<p>Test that calling setDragImage() with a detached node doesn't immediately abort the drag. This test can be manually run by dragging the 'Drag Me' div around and then ending the drag. |
+<div id="dragMe" draggable="true">Drag Me</div> |
+<div id="console"></div> |
+</body> |