<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Make sure embedded SVG is turned on in dashboard</title>
    </head>
    <script>
         if (window.testRunner) {
             testRunner.setUseDashboardCompatibilityMode(true);
             testRunner.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 be created by being embedded in xml documents.  It can not be tested manually.</p>
        <pre id="console"></pre>
        <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
             <circle id="svgCircleNode" cx="100" cy="100" r="50" fill="red"/>
        </svg>
        <script>
           if(document.getElementById('svgCircleNode') instanceof SVGElement)
               debug("PASS: Successfully embedded SVG in document");
           else
               debug("FAIL: SVG Elements could not be created");
        </script>
    </body>
</html>
