<html>
    <head>
        <script>
            if (window.testRunner)
            {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }

            function runTest() {
                brElement = document.getElementById('test');
                document.open();
                setTimeout(function () {
                    document.appendChild(brElement);
                    
                    alert('PASS');
                    if (window.testRunner)
                        testRunner.notifyDone();
                }, 0);
            }
        </script>
    </head>
    <body onload="runTest()">
        <br id='test'>
    </body>
</html>

