<!DOCTYPE html>
<head>
    <style>
        * { margin: 0; padding: 0; }
        svg { width: 200px; height: 100px; }
        a div { width: 200px; height: 100px; background-color: yellow; }
    </style>
</head>
<body>
    <a href="#" class="icon-link">
        <svg>
            <defs>
                <rect id="blue-rectangle" width="200" height="100" style="fill:#00f;" />
            </defs>
            <use xlink:href="#blue-rectangle"></use>
        </svg>
        <div></div>
    </a>

    <div class="log"></div>

    <script>
        var expected = null;

        if (window.testRunner)
            testRunner.dumpAsText();

        function clickAt(x, y, expectedElement)
        {
            expected = expectedElement;
            if (window.eventSender) {
                eventSender.mouseMoveTo(x, y);
                eventSender.mouseDown();
                eventSender.mouseUp();
            }
            expected = null;
        }

        document.querySelector("a").addEventListener("click", function(event) {
            var result = "";
            if (event.target == expected)
                result = "PASS - " + event.target + " was clicked.";
            else
                result = "FAIL - expected " + expected + " but got " + event.target + ".";
            document.querySelector('.log').innerHTML += result + '<br />';
            event.preventDefault();
        }, false);

        clickAt(50, 50, document.querySelector("use"));
        clickAt(50, 130, document.querySelector("a div"));
    </script>
</body>
