<html>
<head>
<script src="../../editing/editing.js"></script>
<script>
function test() {
    if (window.testRunner) {
        testRunner.dumpAsText();
    }
    document.getElementById('tf').focus();
    selectAllCommand();    
    document.getElementById('ta').focus();
    selectAllCommand();
}

function log(msg) {
    document.getElementById('res').innerHTML = document.getElementById('res').innerHTML + msg + "<br>";
}

</script>
</head>
<body onload="test()">
This tests that onSelect will fire for textfields and textareas when select-all is invoked.<br/>
<input id="tf" value="test" onSelect="log('Test Passed: textfield')"><br/>
<textarea id="ta" onSelect="log('Test Passed: textarea')">test</textarea><br/>

<div id="res"></div>
</body>
</html>