<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    This test is to ensure that we do not crash when loading a SVG image with an invalid feMorphology filter radius.
    <div id="log">
      <span style='color: red;'>FAIL:</span> Did not complete test
    </div>
    <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
      <!-- Simple negative value. -->
      <filter id="f1">
	      <feMorphology operator="erode" radius="-1"/>
      </filter>
      <filter id="f2">
	      <feMorphology operator="erode" radius="-1 1"/>
      </filter>
      <filter id="f3">
	      <feMorphology operator="erode" radius="1 -1"/>
      </filter>
      
      <!-- Produces MIN_INT after converted from float to int.  -->
      <filter id="f4">
	      <feMorphology operator="erode" radius="2147483647"/>
      </filter>
      <filter id="f5">
	      <feMorphology operator="erode" radius="2147483647 1"/>
      </filter>
      <filter id="f6">
	      <feMorphology operator="erode" radius="1 2147483647"/>
      </filter>
      
      <!-- Wraps when added to canvas dimensions. -->
      <filter id="f7">
	      <feMorphology operator="erode" radius="2147483500"/>
      </filter>
      <filter id="f8">
	      <feMorphology operator="erode" radius="2147483500 1"/>
      </filter>
      <filter id="f9">
	      <feMorphology operator="erode" radius="1 2147483500"/>
      </filter>

      <g id="morphology">
	      <rect x="0" y="0" height="252" width="256" fill="green" />
	      <rect x="0" y="0"  height="4"  width="512" fill="red" filter="url(#f1)" />
	      <rect x="0" y="10" height="46" width="512" fill="red" filter="url(#f2)" />
	      <rect x="0" y="20" height="46" width="512" fill="red" filter="url(#f3)" />
	      <rect x="0" y="30" height="46" width="512" fill="red" filter="url(#f4)" />
	      <rect x="0" y="40" height="46" width="512" fill="red" filter="url(#f5)" />
	      <rect x="0" y="50" height="46" width="512" fill="red" filter="url(#f6)" />
	      <rect x="0" y="60" height="46" width="512" fill="red" filter="url(#f7)" />
	      <rect x="0" y="70" height="46" width="512" fill="red" filter="url(#f8)" />
	      <rect x="0" y="80" height="46" width="512" fill="red" filter="url(#f9)" />
	      <rect x="0" y="90" height="46" width="512" fill="red" filter="url(#f4)" />
      </g>
    </svg>
    <script>
      <![CDATA[
        if (window.testRunner)
            testRunner.dumpAsText();

        var log = document.getElementById("log");
        while (log.childNodes.length)
            log.removeChild(log.firstChild);
        var msg = document.createElementNS("http://www.w3.org/1999/xhtml", "span");
        msg.style.color = "green";
        msg.appendChild(document.createTextNode("PASS:"));
        log.appendChild(msg);
        log.appendChild(document.createTextNode(" Did not crash when rendering the SVG image."));
    ]]>
    </script>
  </body>
</html>
