<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<style>
body[style] { }
</style>
</head>
<body>
<textarea id="target"></textarea>
<div>The text field should accept typed characters.</div>
<pre id="console"></pre>
<script>
document.getElementById("target").addEventListener("textInput", function (evt) { evt.target.style.width = 100; });
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    window.target = document.getElementById("target");
    window.setTimeout(function() {
        window.target.focus();
        eventSender.keyDown("h");
        eventSender.keyDown("e");
        eventSender.keyDown("l");
        eventSender.keyDown("l");
        eventSender.keyDown("o");
        shouldBe("window.target.value", '"hello"');
        finishJSTest();
    }, 0);
}

window.jsTestIsAsync = true;
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
