chromium/third_party/blink/web_tests/svg/custom/mouse-move-on-svg-root-standalone.svg

<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" style="border: solid">
    <circle cx="350" cy="350" r="50" fill="green" onmousedown="startMove()"/>
    <text x="200" y="50" text-anchor="middle">The circle should be in the middle</text>
    <script>
        var root = document.getElementsByTagName("svg")[0];
        var circle = document.getElementsByTagName("circle")[0];
    
        function move(evt) {
            var matrix = root.getScreenCTM();
            var point = root.createSVGPoint();
            point.x = evt.clientX;
            point.y = evt.clientY;
            point = point.matrixTransform(matrix.inverse());
            circle.cx.baseVal.value = point.x;
            circle.cy.baseVal.value = point.y;
        }
    
        function startMove() {
            root.addEventListener("mousemove", move, false);
            root.addEventListener("mouseup", stopMove, false);
        }
    
        function stopMove() {
            root.removeEventListener("mousemove", move, false);
            root.removeEventListener("mouseup", stopMove, false);
    
            if (window.testRunner)
                testRunner.notifyDone();
        }
    
        if (window.testRunner)
            testRunner.waitUntilDone();
    
        if (window.eventSender) {
            eventSender.mouseMoveTo(350, 350);
            eventSender.mouseDown();
            eventSender.mouseMoveTo(200, 200);
            eventSender.mouseUp();
        }
    </script>
</svg>