<!DOCTYPE html><!-- webkit-test-runner [ spellCheckingDots=true ] -->
<html>
<head>

<style>
@font-face {
    font-family: "WebFont";
    src: url("resources/VerySmallDescentAhem.ttf") format("truetype");
}
.editing {
    font: 36px "WebFont";
}
</style>
<script src=../editing.js language="JavaScript" type="text/JavaScript" ></script>

<script>
function editingTest() {
    typeCharacterCommand('w');
    typeCharacterCommand('a');
    typeCharacterCommand('f');
    typeCharacterCommand('e');
    typeCharacterCommand('w');
    typeCharacterCommand('e');
    typeCharacterCommand('r');
    typeCharacterCommand('e');
    typeCharacterCommand('w');
    typeCharacterCommand('d');
    typeCharacterCommand('f');
    typeCharacterCommand('e');
    typeCharacterCommand('a');
    typeCharacterCommand(' ');
    window.setTimeout(function() {
        let root = document.getElementById("root");
        root.parentElement.removeChild(root);
        if (window.testRunner)
            testRunner.notifyDone();
    }, 20);
}

</script>

<title>Editing Test</title>
</head>
<body>
This test passes if you don't see any dots below.
<div contenteditable id="root" class="editing">
<span id="test"></span>
</div>

<script>
    if (window.internals)
        internals.setContinuousSpellCheckingEnabled(true);
    if (window.testRunner)
        testRunner.waitUntilDone();
    runEditingTest();
</script>

</body>
</html>
