<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="test()">
<image id="image" xlink:href="" width="75" height="75" />
<script>
if (window.testRunner)
    testRunner.waitUntilDone();

function test() {
    // set
    document.getElementById("image").setAttributeNS("http://www.w3.org/1999/xlink", "href", "resources/green-checker.png");
    document.getElementById("image").setAttribute("display", "inherit");

    // unset
    document.getElementById("image").setAttributeNS("http://www.w3.org/1999/xlink", "href", "");
    document.getElementById("image").setAttribute("display", "none");

    // set
    document.getElementById("image").setAttributeNS("http://www.w3.org/1999/xlink", "href", "resources/green-checker.png");
    document.getElementById("image").setAttribute("display", "inherit");

    document.getElementById("image").onload = function() {
        if (window.testRunner)
            testRunner.notifyDone();
    }
}

</script>
</svg>
