<html>
<head>
    <script src="../../resources/js-test.js"></script>
    <script>
    description("Tests some special cases of the outerHTML setter.");
    function runTest()
    {
        // Parent does not need to be a HTML element.
        document.getElementById('testSVG').outerHTML = '<g></g>';
        shouldBeEqualToString("document.getElementById('svgElement').innerHTML", "<g></g>");

        // We should throw a NoModificationAllowedError if the parent is a Document.
        shouldThrowErrorName("document.documentElement.outerHTML = ''", "NoModificationAllowedError");

        // We currently throw an exception when the parent is null, as does Blink. Gecko and the specification
        // say this should be a no-op though.
        a = document.createElement("a");
        shouldBe("a.parentNode", "null");
        shouldNotThrow("a.outerHTML = ''");
    }
    </script>
</head>
<body onload="runTest()">
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svgElement"><symbol id="testSVG"></symbol></svg>
</body>
</html>

