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

Unified Diff: third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html

Issue 2393903003: [LayoutTest] Fix flakey test "inputevent-drag-drop.html" (Closed)
Patch Set: Clear composition after merging with command wrapper Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html
diff --git a/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html b/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html
index 56eb083951fadec452d1c82307c33375eced044b..40769a55063ff6d136a486bf21ab80b1b0cf473d 100644
--- a/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html
+++ b/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-drag-drop.html
@@ -5,19 +5,27 @@
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<style>
-div, img {
+div {
width: 100px;
height: 100px;
}
</style>
</head>
<body>
-<div id="editable1" contenteditable><img id="img" src="../resources/greenbox.png"></div>
+<div id="editable1" contenteditable><b id="boldtext">EditableText</b></div>
<div id="editable2" contenteditable></div>
<textarea id="textarea1">Text</textarea>
<textarea id="barrier"></textarea>
<script>
function simulateDragDrop(dragElement, dropElement) {
+ if (dragElement.select) {
+ dragElement.select();
+ } else {
+ var selection = window.getSelection();
+ selection.collapse(dragElement, 0);
+ selection.extend(dragElement, 1);
+ }
+
eventSender.mouseMoveTo(dragElement.offsetLeft + dragElement.offsetWidth / 2,
dragElement.offsetTop + dragElement.offsetHeight / 2);
eventSender.mouseDown();
@@ -32,7 +40,7 @@ function assertCleanInitialDOM(logInfo) {
const editable2 = document.getElementById('editable2');
const textarea1 = document.getElementById('textarea1');
assert_equals(editable1.children.length, 1, `${logInfo}, DOM is dirty`);
- assert_equals(editable1.children[0].tagName, 'IMG', `${logInfo}, DOM is dirty`);
+ assert_equals(editable1.children[0].innerHTML, 'EditableText', `${logInfo}, DOM is dirty`);
assert_equals(editable2.children.length, 0, `${logInfo}, DOM is dirty`);
assert_equals(textarea1.value, 'Text', `${logInfo}, DOM is dirty`);
}
@@ -59,15 +67,17 @@ test(function() {
const undoBarrier = document.getElementById('barrier');
undoBarrier.focus();
document.execCommand('insertText', false, 'abc');
- function assertBarrierUnchanged() {
- assert_equals(undoBarrier.value, 'abc');
+ function assertBarrierUnchanged(log) {
+ assert_equals(undoBarrier.value, 'abc', log);
}
// Normally Drag&Drop requires a single Undo.
simulateDragDrop(editable1, editable2);
+ assert_equals(editable1.children.length, 0, `Normal Drag&Drop should remove data from editable1.`);
+ assert_equals(editable2.children.length, 1, `Normal Drag&Drop should insert data into editable2.`);
testRunner.execCommand('undo');
assertCleanInitialDOM('Normal Drag&Drop');
- assertBarrierUnchanged();
+ assertBarrierUnchanged('step 1');
// Canceling |DeleteByDrag|, still require a single Undo.
editable1.addEventListener('beforeinput', preventDeleteByDragListener);
@@ -75,7 +85,7 @@ test(function() {
testRunner.execCommand('undo');
assertCleanInitialDOM('Canceling |DeleteByDrag|');
editable1.removeEventListener('beforeinput', preventDeleteByDragListener);
- assertBarrierUnchanged();
+ assertBarrierUnchanged('step 2');
// Canceling |InsertFromDrop|, still require a single Undo.
editable2.addEventListener('beforeinput', preventInsertFromDropListener);
@@ -83,7 +93,7 @@ test(function() {
testRunner.execCommand('undo');
assertCleanInitialDOM('Canceling |InsertFromDrop|');
editable2.removeEventListener('beforeinput', preventInsertFromDropListener);
- assertBarrierUnchanged();
+ assertBarrierUnchanged('step 3');
// Canceling both, shouldn't create undo entry.
editable1.addEventListener('beforeinput', preventDeleteByDragListener);
@@ -93,7 +103,7 @@ test(function() {
testRunner.execCommand('undo');
assert_equals(undoBarrier.value, '');
testRunner.execCommand('redo');
- assertBarrierUnchanged();
+ assertBarrierUnchanged('step 4');
editable1.removeEventListener('beforeinput', preventDeleteByDragListener);
editable2.removeEventListener('beforeinput', preventInsertFromDropListener);
@@ -119,7 +129,7 @@ test(function() {
assert_equals(editable2.innerHTML, '');
assert_equals(textarea1.value, 'Text');
// More undo should reach to |undoBarrier|.
- assertBarrierUnchanged();
+ assertBarrierUnchanged('step 5');
testRunner.execCommand('undo');
assert_equals(undoBarrier.value, '');
testRunner.execCommand('redo');
@@ -150,7 +160,7 @@ test(function() {
// Test Drag and Drop.
testDragDropEventOrder(editable1, editable2,
- ['editable2:drop', 'beforeinput:img:deleteByDrag', 'input:editable1:deleteByDrag',
+ ['editable2:drop', 'beforeinput:boldtext:deleteByDrag', 'input:editable1:deleteByDrag',
'beforeinput:editable2:insertFromDrop', 'input:editable2:insertFromDrop', 'editable1:dragend']);
testRunner.execCommand('undo');
}, 'Testing Drag and Drop event order');
@@ -188,7 +198,7 @@ test(function() {
// Test Drag and Drop.
testDragDropDataTransfer('deleteByDrag', editable1, editable2, null, null);
testRunner.execCommand('undo');
- testDragDropDataTransfer('insertFromDrop', editable1, editable2, '', /^<img.*greenbox\.png".*>$/);
+ testDragDropDataTransfer('insertFromDrop', editable1, editable2, 'EditableText', /^.*EditableText<\/b>$/);
testRunner.execCommand('undo');
}, 'Testing Drag and Drop dataTransfer');

Powered by Google App Engine
This is Rietveld 408576698