chromium/third_party/blink/web_tests/svg/dynamic-updates/resources/SVGTestCase.js

// Force activating pixel tests - this variable is used in resources/js-test.js, when calling setDumpAsText().
window.enablePixelTesting = true;

var svgNS = "http://www.w3.org/2000/svg";
var xlinkNS = "http://www.w3.org/1999/xlink";
var xhtmlNS = "http://www.w3.org/1999/xhtml";

var rootSVGElement;
var iframeElement;

if (window.testRunner) {
    var s = document.createElement('style');
    s.innerHTML += "h1, pre, div#console, p { opacity: 0 }";
    s.innerHTML += "body { overflow: hidden }";
    document.head.appendChild(s);
}

function afterTest() {
    finishJSTest();
}

function createSVGElement(name) {
    return document.createElementNS(svgNS, "svg:" + name);
}

function shouldHaveBBox(element, width, height)
{
    shouldBe(element + ".getBBox().width", width);
    shouldBe(element + ".getBBox().height", height);
}

function createSVGTestCase() {
    window.jsTestIsAsync = true;
    if (window.testRunner)
        testRunner.waitUntilDone();

    rootSVGElement = createSVGElement("svg");
    rootSVGElement.setAttribute("width", "300");
    rootSVGElement.setAttribute("height", "300");

    var bodyElement = document.documentElement.lastChild;
    bodyElement.insertBefore(rootSVGElement, document.getElementById("description"));
}

function embedSVGTestCase(uri) {
    window.jsTestIsAsync = true;
    if (window.testRunner)
        testRunner.waitUntilDone();

    iframeElement = document.createElement("iframe");
    iframeElement.setAttribute("style", "width: 300px; height: 300px;");
    iframeElement.setAttribute("src", uri);
    iframeElement.setAttribute("onload", "iframeLoaded()");

    var bodyElement = document.documentElement.lastChild;
    bodyElement.insertBefore(iframeElement, document.getElementById("description"));
}

function iframeLoaded() {
    rootSVGElement = iframeElement.getSVGDocument().rootElement;
}

function clickAt(x, y) {
    // Translation due to <h1> above us
    var clientRect = rootSVGElement.getBoundingClientRect();
    x = x + clientRect.left;
    y = y + clientRect.top;

    if (window.eventSender) {
        eventSender.mouseMoveTo(x, y);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
}