<html>
<head>

<style>
.editing {
    border: 2px solid red;
    padding: 12px;
    font-size: 24px;
}
</style>
<script src="../../LayoutTests/editing/editing.js"></script>

<script>
function editingTest() {
    typeCharacterCommand('t');
    typeCharacterCommand('h');
    typeCharacterCommand('e');
    typeCharacterCommand(' ');
    typeCharacterCommand('m');
    typeCharacterCommand('e');
    typeCharacterCommand('s');
    typeCharacterCommand('a');
    typeCharacterCommand('g');
    typeCharacterCommand('e');
    setTimeout(function () {
        typeCharacterCommand(' ');
        setTimeout(function () {
            execDeleteCommand();
        }, 100);
    }, 100);
}

</script>

<title>Delete to End of Word to Show Reversion Panel Test</title>
</head>
<body>
<div><p>This test verifies that reversion panel is shown when user moves carret to previously corrected word using delete key.</p>
<p>After seeing the reversion panel, press down key followed by return key. You should see the phrase "the mesage". </p>
<p  style="color:green">Note, this test can fail due to user specific spell checking data. If the user has previously frequently revert 'message' to 'mesage'. To fix this, remove all files in ~/Library/Spelling, then kill AppleSpell.service process.</p>
<div contenteditable id="root" class="editing">
<span id="test"></span>
</div>


<script>
runEditingTest();
</script>

</body>
</html>
