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

Unified Diff: LayoutTests/editing/undo/undo-delete-boundary.html

Issue 43523002: Make tests related to undo word deletion platform independent (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: All tests modified Created 7 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: LayoutTests/editing/undo/undo-delete-boundary.html
diff --git a/LayoutTests/editing/undo/undo-delete-boundary.html b/LayoutTests/editing/undo/undo-delete-boundary.html
index 770157780c87142b8daeafb8c2776333b34a7a67..daf92cab2a1459a13a4dcf1e489af56f918f66aa 100644
--- a/LayoutTests/editing/undo/undo-delete-boundary.html
+++ b/LayoutTests/editing/undo/undo-delete-boundary.html
@@ -1,40 +1,50 @@
-<html>
-<head>
-
-<style>
-.editing {
- border: 2px solid red;
- padding: 12px;
- font-size: 24px;
-}
-</style>
-<script src="../editing.js" language="JavaScript" type="text/JavaScript" ></script>
-
+<!DOCTYPE html>
+<html>
+<body>
+<div id="container">
+<p id="description"></p>
+<p>To test manually, place the cursor at the end of 'word' and delete it completely character by character. Do ctrl+z. On Mac, 'word' should be selected. On other platforms 'word' should not be selected and the cursor should be placed at the end of 'word'.</p>
+<div id="test" style="border: 2px solid red;" contenteditable >This wo<b>rd </b>should be selected.</div>
+</div>
+<div id="console"></div>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
<script>
+description('Verifies the selection behavior on undoing a text deletion.');
+var sampleHTML = 'This wo<b>rd </b>should be selected.';
+var selectionNode = document.getElementById('test').childNodes[1].firstChild; // Text node 'rd '
+var selectionOffset = selectionNode.length - 1;
+var endNode = document.getElementById('test').firstChild; // Text node 'This wo'
+var endOffset = endNode.data.indexOf(' ') + 1;
+var selection = window.getSelection();
-function editingTest() {
- moveSelectionForwardByWordCommand();
- moveSelectionForwardByWordCommand();
- deleteCommand();
- deleteCommand();
- deleteCommand();
- deleteCommand();
- undoCommand();
-}
+function $(id) { return document.getElementById(id); }
-</script>
+function undoTest(platform, expectedStartNode, expectedStartOffset, expectedEndNode, expectedEndOffset, selectedText) {
+ debug(platform);
+ internals.settings.setEditingBehavior(platform);
-</head>
-<body>
-<div contenteditable id="root" class="editing">
-<span id="test">This wo<b>rd </b>should be selected, since the test deleted it a character at a time and then did an undo.</span>
-</div>
+ selection.collapse(selectionNode, selectionOffset);
+ for (var i = 0; i < 4; i++)
+ document.execCommand('delete');
+ document.execCommand('undo');
-<script>
-if (window.internals)
- internals.settings.setEditingBehavior("mac");
-runEditingTest();
-</script>
+ shouldBeEqualToString('selection.anchorNode.data', expectedStartNode.data);
+ shouldBe('selection.anchorOffset', expectedStartOffset + '');
+ shouldBeEqualToString('selection.focusNode.data', expectedEndNode.data);
+ shouldBe('selection.focusOffset', expectedEndOffset + '');
+ shouldBeEqualToString('selection.toString()', selectedText);
+ shouldBeEqualToString('$("test").innerHTML', sampleHTML);
+}
+if (window.internals) {
+ undoTest('mac', selectionNode, selectionOffset, endNode, endOffset, 'word');
+ undoTest('win', selectionNode, selectionOffset, endNode, endOffset, 'word');
+ undoTest('unix', selectionNode, selectionOffset, endNode, endOffset, 'word');
+ undoTest('android', selectionNode, selectionOffset, endNode, endOffset, 'word');
+}
+if (window.testRunner)
+ document.getElementById('container').outerHTML = '';
+</script>
+<script src="../../fast/js/resources/js-test-post.js"></script>
</body>
</html>
« no previous file with comments | « LayoutTests/editing/undo/undo-delete.html ('k') | LayoutTests/editing/undo/undo-delete-boundary-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698