<body>
<p>Test that forward delete key works.</p>
<div id=result>Testing...</div>
<div id="div" contenteditable="true">123456</div>

<script>
if (window.testRunner)
    window.testRunner.dumpAsText();

text = document.getElementById("div").firstChild;
window.getSelection().setBaseAndExtent(text, 0, text, 1);
if (window.eventSender) {
    eventSender.keyDown("delete");
    eventSender.keyDown("delete");
    if (text.data == "3456")
        document.getElementById("result").innerHTML = "PASS";
    else
        document.getElementById("result").innerHTML = "FAIL: " + text.data;
    document.body.removeChild(document.getElementById("div"));
} else {
    document.getElementById("result").innerHTML = "Please verify that forward delete works manually.";
}
</script>
</body>
