<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
if (window.testRunner) {
    window.testRunner.waitUntilDone();
    window.testRunner.dumpAsText();
}

function changeToPasswordField(textField)
{
    textField.setAttribute("type", "password");
}

function test()
{
    if (window.testRunner) {
        var field = document.getElementById("field").focus();

        eventSender.keyDown("p");
        eventSender.keyDown("a");
        eventSender.keyDown("s");
        eventSender.keyDown("s");

        shouldBe('field.value', "'pass'");
        isSuccessfullyParsed();

        window.testRunner.notifyDone();
    }
}
</script>
</head>
<body onload="test()">
<ol><li>Hit Tab key to focus input field.</li><li>Type some text.</li></ol>
<input type="text" id="field" onfocus="changeToPasswordField(this)">
<hr>
<p id="description"></p>
<div id="console"></div>
<script>
description("Test for <a href=\"https://bugs.webkit.org/show_bug.cgi?id=18900\">Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)</a>");
</script>
</body>
</html>
