<html>
<head>
<script>
function log(msg) {
    document.getElementById('res').innerHTML = document.getElementById('res').innerHTML + msg + "<br>";
}
    
function test () {
    if (window.layoutTestController)
        layoutTestController.dumpAsText();

    var tf = document.getElementById('tf');

    tf.setSelectionRange(3, 12);
    log("setSelectionRange(3, 12)");
    if (tf.selectionStart == 3 && tf.selectionEnd == 12)
        log("Passed.");
    else
        log("Failed. selection start: " + tf.selectionStart + " selection end: " + tf.selectionEnd);
        
    tf.style.visibility = "visible";
}
</script>
</head>
<body onload="test()">
This tests the selection methods on the new text field when it is hidden and then made visible.
<p>
<input type="text" id="tf" style="visibility:hidden" value="123456789 ABCDEFGHIJ"></input>
<div id="res"></div>
</p>
</body>
</html>