<!DOCTYPE html>
<html> 
<head>
<style>
.editing { 
    border: 2px solid red; 
    font-size: 24px; 
}
.explanation { 
    border: 2px solid blue; 
    padding: 12px; 
    font-size: 24px; 
    margin-bottom: 24px;
}
.scenario { margin-bottom: 16px;}
.scenario:first-line { font-weight: bold; margin-bottom: 16px;}
.expected-results:first-line { font-weight: bold }
</style>
<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>
<title>Editing Test</title> 
</head> 
<body>
<div class="explanation">
<div class="scenario">
Tests: 
<br>
Option-delete when a typing command is open.
</div>
<div class="expected-results">
Expected Results:
<br>
Net result is a third "cha". It should like this:
<BR>
one two cha cha cha three four cha cha cha
</div>
</div>
<div contenteditable id="root" style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space;">
<div id="test" class="editing">
one two cha cha three four cha cha cha
</div>
</div>
<script>

if (window.internals)
    internals.settings.setEditingBehavior("mac");

function sendDeleteWordKey()
{
    var deleteWordModifiers;
    if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
        deleteWordModifiers = ["altKey"];
    else
        deleteWordModifiers = ["ctrlKey"];
    if (window.eventSender)
        eventSender.keyDown(String.fromCharCode(8), deleteWordModifiers);
    debugForDumpAsText("DeleteWord");
}

function editingTest()
{
    moveSelectionForwardByWordCommand();
    moveSelectionForwardByWordCommand();
    typeCharacterCommand(' ');
    typeCharacterCommand('a');
    typeCharacterCommand('b');
    typeCharacterCommand('c');
    sendDeleteWordKey();
    typeCharacterCommand('c');
    typeCharacterCommand('h');
    typeCharacterCommand('a');
}

runDumpAsTextEditingTest(true);
</script>
</body>
</html>
