<html xmlns="http://www.w3.org/1999/xhtml">
    <body>
        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
            <text>
                PASS
                <textPath>
                    <tref xlink:href="#foo">
                        <animateColor attributeName="keyPoints"></animateColor>
                        <animateColor attributeName="xlink:href"></animateColor>
                    </tref>
                </textPath>
            </text>
        </svg>
        <script>
            if (window.layoutTestController)
                layoutTestController.dumpAsText();
        </script>
    </body>
</html>

