<HTML>
<HEAD>
<SCRIPT>
if (window.testRunner)
    testRunner.dumpAsText();

function log(s)
{
    document.getElementById("console").appendChild(document.createTextNode(s));
    document.getElementById("console").appendChild(document.createElement("br"));
}

function resize() {
    var input_field_width_before_resize = document.getElementById('success').clientWidth;
    document.getElementById('success').size=30;
    var input_field_width_after_resize = document.getElementById('success').clientWidth;
    if(input_field_width_after_resize > input_field_width_before_resize) {
        log("SUCCESS");
    } else {
        log("FAIL");
    }
    input_field_width_before_resize = document.getElementById('success').clientWidth;
    document.getElementById('success').setAttribute("size", 40);
    input_field_width_after_resize = document.getElementById('success').clientWidth;
    if(input_field_width_after_resize > input_field_width_before_resize) {
        log("SUCCESS");
    } else {
        log("FAIL");
    }
}
</SCRIPT>
</HEAD>
<BODY onLoad="resize();">
<span id="console"></span>
<input type="text" id="success" size="2">
</BODY>
</HTML>
