<!DOCTYPE html>
<html>
    <svg width="100px" height="100px">
        <rect width="100px" height="100px" fill="none" />
    </svg>

    <head>
        <title>HTML 5 Foreign Content SVG in HTML </title>
        <meta description="Test to verify SVG inside HTML 'HTML' element parses correctly" />
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <script type="text/javascript">
            function RunTest()
            {
                try
                {
                    if(document.body.childNodes[0].localName=="svg")
                    {
                        document.getElementsByTagName("rect")[0].setAttribute("fill","green");
                    }
                    else
                    {
                        document.getElementsByTagName("rect")[0].setAttribute("fill","red");
                    }
                }
                catch(ex)
                {
                    document.getElementsByTagName("rect")[0].setAttribute("fill","red")
                }
            }
        </script>
    </head>

    <body onLoad="RunTest()">
        <div class="testdata">
            <p id="instructions">Test passes if a green rectangle is visible on the page above this line.</p>
        </div>
    </body>
</html>
