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

Unified Diff: LayoutTests/editing/selection/drag-selection-nodes.html

Issue 50433002: Fix dragging text inside a input element nested in a draggable element. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Better names and comments Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: LayoutTests/editing/selection/drag-selection-nodes.html
diff --git a/LayoutTests/editing/selection/drag-selection-nodes.html b/LayoutTests/editing/selection/drag-selection-nodes.html
new file mode 100644
index 0000000000000000000000000000000000000000..e25e8ac1d1bb4407302bf9357e7a3efac45dfc38
--- /dev/null
+++ b/LayoutTests/editing/selection/drag-selection-nodes.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+function log(s)
+{
+ document.getElementById('console')
+ .appendChild(document.createElement('div'))
+ .appendChild(document.createTextNode(s));
+}
+
+function onDragStart1(e)
+{
+ if (e.target.parentNode.id == 'drag1'
+ && e.target.nodeType == Node.TEXT_NODE)
+ log('Test 1: PASS');
+ else
+ log('Test 1: FAIL: target element was ' + e.target);
+}
+
+function onDragStart2(e)
+{
+ if (e.target.id == 'drag2')
+ log('Test 2: PASS');
+ else
+ log('Test 2: FAIL: target element was ' + e.target);
+}
+
+function onDragStart3(e)
+{
+ if (e.target.id == 'dragImage')
+ log('Test 3: PASS');
+ else
+ log('Test 3: FAIL: target element was ' + e.target);
+}
+
+function dragAndDrop(n)
+{
+ var startX = n.offsetLeft + n.offsetWidth / 2;
+ var startY = n.offsetTop + n.offsetHeight / 2;
+ eventSender.mouseMoveTo(startX, startY);
+ eventSender.mouseDown();
+ eventSender.leapForward(200);
+ eventSender.mouseMoveTo(startX + 400, startY);
+ eventSender.mouseUp();
+}
+
+function runTest()
+{
+ var drag1 = document.getElementById('drag1');
+ var drag2 = document.getElementById('drag2');
+ var drag3 = document.getElementById('drag3');
+
+ drag1.addEventListener('dragstart', onDragStart1);
+ drag2.addEventListener('dragstart', onDragStart2);
+ drag3.addEventListener('dragstart', onDragStart3);
+
+ if (!window.testRunner)
+ return;
+ testRunner.dumpAsText();
+
+ var s = window.getSelection();
+ var r;
+
+ s.removeAllRanges();
+ r = document.createRange();
+ r.selectNode(drag1);
+ s.addRange(r);
+ dragAndDrop(drag1);
+
+ s.removeAllRanges();
+ drag2.focus();
+ drag2.select();
+ dragAndDrop(drag2);
+
+ s.removeAllRanges();
+ r = document.createRange();
+ r.selectNode(drag3);
+ dragAndDrop(document.getElementById('dragImage'));
+}
+</script>
+</head>
+<body onload="runTest()">
+<p>Simple test that dragging and dropping a selection targets the right node.
+<div id="drag1">Test 1: select this line and drag me.</div>
+<p>Test 2: <input id="drag2" type="text" value="Select the text in this input and drag me"></input>
+<div id="drag3">Test 3: select this line and <img id="dragImage" src="../resources/abe.png"> drag me from the image.</div>
+<div id="console"></div>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698