<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="clickLinkNow()">
    <script>
        if (window.testRunner)
            window.testRunner.waitUntilDone();

        function clickLinkNow() {
            if (window.eventSender) {
                eventSender.mouseMoveTo(20, 20);
                eventSender.mouseDown();
                eventSender.mouseUp();
                if (window.testRunner)
                    testRunner.notifyDone();
            }
        }
    </script>
    <defs>
        <rect id="rect-to-use" x="10" y="10" width="20" height="20" fill="green" />
    </defs>
    <a xlink:href="resources/red-checker.png"><rect x="5" y="5" width="30" height="30" fill="red"/></a>
    <a xlink:href="resources/green-checker.png"><use xlink:href="#rect-to-use" /></a>
</svg>
