blob: f08c79542e7b30faa5f53c28c23806e6babb9bf1 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<p>This tests WebKit preserves non-directional selection after unapplying replacement on Mac. To manually test on Mac,</p>
<ol>
<li>Select "world" by double-clicking the word</li>
<li>Replace "world" by a character by pressing a key</li>
<li>Undo</li>
<li>Extend selection to the left</li>
</ol>
<p>" world" should be selected.</p>
<div contenteditable>hello wo<span id="target">r</span>ld WebKit</div>
<script>
if (window.testRunner && window.internals) {
testRunner.dumpAsText();
if (!window.eventSender)
document.writeln('FAIL - this test requires eventSender');
else {
internals.settings.setEditingBehavior('mac');
var test = document.getElementById('target');
eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2, target.offsetTop + target.offsetHeight / 2);
eventSender.mouseDown();
eventSender.mouseUp();
eventSender.leapForward(200);
eventSender.mouseDown();
eventSender.mouseUp();
document.execCommand('InsertText', false, 'a');
document.execCommand('Undo');
window.getSelection().modify('extend', 'left', 'character');
var actual = window.getSelection().toString();
// Windows has a trailing whitespace, other platforms don't.
document.writeln((actual == ' world' || actual == ' world ') ? 'PASS' : 'FAIL - expected " world" but got "' + actual + '"');
}
}
</script>
</body>
</html>