<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <!-- Test for crbug.com/250001 -->
  <g transform="scale(4)">
    <rect id="clear_rect" width="100%" height="100%"/>
    <rect id="rect" x="25" y="25" width="25" height="25" fill="green" stroke-width="1" stroke="black"/>
  </g>

  <script>
    if (window.testRunner) {
        testRunner.displayAndTrackRepaints();
        testRunner.waitUntilDone();
        setTimeout(runTest, 0);
    } else {
        setTimeout(runTest, 200);
    }

    function runTest() {
document.getElementById('clear_rect').setAttribute('fill', 'white');
document.getElementById('rect').setAttribute('vector-effect', 'non-scaling-stroke');
if (window.testRunner)
    testRunner.notifyDone();
    }
  </script>
</svg>
