<?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").href.baseVal = "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").href.baseVal = "resources/green-checker.png";
    document.getElementById("image").setAttribute("display", "inherit");

    if (window.testRunner)
        testRunner.notifyDone();
}

</script>
</svg>
