<!DOCTYPE html>
<head>
</head>
<body>
<div>When the caret reaches the edge of the input box, on the next input if must jump to the center of the control.</div>
<input type="text" name="input-edit" id="input-edit" size="10" value="012345678901234567890123456789" />
<script>

if (window.testRunner)
    testRunner.waitUntilDone();

var inputEdit = document.getElementById("input-edit");
inputEdit.focus();
setTimeout(() => {
    var inputEditContent = inputEdit.value;
    inputEdit.setSelectionRange(0, 0);

    if (window.eventSender) {
        for (var i = 0; i < inputEdit.size * 1.2; ++i)
            eventSender.keyDown(inputEditContent[i]);
        testRunner.notifyDone();
    }
}, 0);

</script>
</body>
