<html>
    <head>
        <link rel="stylesheet" href="fake.css" type="text/css" >
        <script>	
                if (window.layoutTestController) {
                    layoutTestController.dumpAsText();
                }
                function testForm() {
                    if (document.LoginForm)
                    {
                        alert("Test passed: " + document.LoginForm);
                    }
                    else
                    {
                        alert("Test failed: " + document.LoginForm);
                    }
                }
        </script>
    </head>

<body onLoad="testForm();">
<form name="LoginForm"> 
<embed src="" type="application/x-shockwave-flash"></embed>
</form>			
</body>
</html>
