| Index: LayoutTests/editing/undo/undo-delete.html | 
| diff --git a/LayoutTests/editing/undo/undo-delete.html b/LayoutTests/editing/undo/undo-delete.html | 
| index 1e78d2e28f052bfe5515124070fc28a8aaf376e5..6c99881146c5892fb25c19a790fc9985a2c9abbb 100644 | 
| --- a/LayoutTests/editing/undo/undo-delete.html | 
| +++ b/LayoutTests/editing/undo/undo-delete.html | 
| @@ -1,40 +1,45 @@ | 
| -<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 word 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 selectionNode = document.getElementById('test').firstChild; | 
| +var selectionOffset = selectionNode.data.indexOf('d') + 1; | 
| +var endOffset = selectionNode.data.indexOf(' ') + 1; | 
| +var selection = window.getSelection(); | 
|  | 
| -function editingTest() { | 
| -    moveSelectionForwardByWordCommand(); | 
| -    moveSelectionForwardByWordCommand(); | 
| -    deleteCommand(); | 
| -    deleteCommand(); | 
| -    deleteCommand(); | 
| -    deleteCommand(); | 
| -    undoCommand(); | 
| -} | 
| +function undoTest(platform, expectedStartNode, expectedStartOffset, expectedEndNode, expectedEndOffset, selectedText) { | 
| +    debug(platform); | 
| +    internals.settings.setEditingBehavior(platform); | 
|  | 
| -</script> | 
| +    selection.collapse(selectionNode, selectionOffset); | 
| +    for (var i = 0; i < 4; i++) | 
| +        document.execCommand('delete'); | 
| +    document.execCommand('undo'); | 
|  | 
| -</head> | 
| -<body> | 
| -<div contenteditable id="root" class="editing"> | 
| -<span id="test">This word should be selected, since the test deleted it a character at a time and then did an undo.</span> | 
| -</div> | 
| +    shouldBeEqualToString('selection.anchorNode.data', expectedStartNode.data); | 
| +    shouldBe('selection.anchorOffset', expectedStartOffset + ''); | 
| +    shouldBeEqualToString('selection.focusNode.data', expectedEndNode.data); | 
| +    shouldBe('selection.focusOffset', expectedEndOffset + ''); | 
| +    shouldBeEqualToString('selection.toString()', selectedText); | 
| +} | 
|  | 
| -<script> | 
| -if (window.internals) | 
| -    internals.settings.setEditingBehavior("mac"); | 
| -runEditingTest(); | 
| +if (window.internals) { | 
| +    undoTest('mac', selectionNode, selectionOffset, selectionNode, endOffset, 'word'); | 
| +    undoTest('win', selectionNode, selectionOffset, selectionNode, endOffset, 'word'); | 
| +    undoTest('unix', selectionNode, selectionOffset, selectionNode, endOffset, 'word'); | 
| +    undoTest('android', selectionNode, selectionOffset, selectionNode, endOffset, 'word'); | 
| +} | 
| +if (window.testRunner) | 
| +  document.getElementById('container').outerHTML = ''; | 
| </script> | 
| - | 
| +<script src="../../fast/js/resources/js-test-post.js"></script> | 
| </body> | 
| </html> | 
|  |