<html>
<script>
function test() {
    document.getElementById("thebutton").click(); 
    if (window.testRunner) 
        testRunner.dumpAsText();
}

function clicky() {
    document.getElementById("thediv").innerHTML= "test passed";
}

</script>
<head>
<title>Test case for HTMLButtonElement.click()</title>
</head>
<body onload="test();">
<h3>Test case for HTMLButtonElement.click()</h3>
Successful if it reads "test passed" below <span style="color: red">upon loading the page</span> <br>
<BUTTON id=thebutton onclick="clicky();">No need to click me. In fact, don't.</BUTTON>
<div id=thediv>
test failed <br>
</div>
</body>
</html>