<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Make sure embedded SVG is turned off in dashboard</title>
    </head>
    <script>
         if (window.layoutTestController) {
             layoutTestController.setUseDashboardCompatibilityMode(true);
             layoutTestController.dumpAsText();
         }
         function debug(str) {
             var c = document.getElementById('console')
             c.appendChild(document.createTextNode(str + '\n'));
         }
    </script>
    <body>
        <p>This test is to ensure SVG elements can't be created by being embedded in xml documents.  It can not be tested manually.</p>
        <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
             <circle id="svgCircleNode" cx="100" cy="100" r="50" fill="red"/>
        </svg>
        <pre id="console"></pre> 
        <script>
           if(document.getElementById('svgCircleNode'))
               debug("FAIL: Successfully embedded SVG in document");
           else
               debug("PASS: SVG Elements could not be created");
        </script>
    </body>
</html>
