<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <script>
	  if (window.testRunner) {
		testRunner.waitUntilDone();
		testRunner.dumpAsText();
	  }

	  window.onload = function() {
        if (window.testRunner)
          testRunner.notifyDone();
	  };
  </script>
  <text y="170" x="20" id="console"/>
  <script>
      document.documentElement.addEventListener("load", loaded, false);
      document.documentElement.addEventListener("SVGLoad", loaded, false);

      function loaded(evt) {
		document.getElementById("console").textContent += evt.type + "(" + evt.target.localName + ") ";
      }
  </script>
  <image id="image" onload="loaded(evt)" onerror="loaded(evt)" x="20" y="20"
   width="100" height="100" xlink:href="http://127.0.0.1:8000/svg/resources/delayCachedLoad.php" />
</svg>
