<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="runRepaintTest()" >
<script type="text/ecmascript">
<![CDATA[
// This is used to test that we correctly invalidate the original image bounds when the 
// image attributes are changed.  A correct result will be a 100x100px green square
function repaintTest() {
    var target = document.getElementById("target");
    target.setAttributeNS(null,"width", 0);
    target.setAttributeNS(null,"height", 0);
    target.setAttributeNS(null,"x", 50);
    target.setAttributeNS(null,"y", 50);
    if (window.layoutTestController)
        layoutTestController.notifyDone();
    
}

function runRepaintTest()
{
    if (window.layoutTestController) {
        layoutTestController.display();
        layoutTestController.waitUntilDone();
    }
    setTimeout(repaintTest, 50);
}

]]>
</script>
<rect x="0" y="0" width="100" height="100" fill="green" stroke="none"/>
<image xlink:href="../../css2.1/support/swatch-red.png" id="target" x="0" y="0" width="100" height="100" />
</svg>