<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="reportLoadEvent(this);runTest();">
  <script>
    <![CDATA[
      if (window.layoutTestController)
        layoutTestController.dumpAsText();

      var results = new Array();

      function reportLoadEvent(el) {
        results.push(el.localName);
      }
      function runTest()
      {
        var test = document.getElementById("console");
        if ( results.length != 4 || results[0] != "text" ||
             results[1] != "image" || results[2] != "g" ||
             results[3] != "svg") {
          test.appendChild(document.createTextNode("Failed"));
        } else {
          test.appendChild(document.createTextNode("Passed"));
        }
      }
    ]]>
  </script>
  <g onload="reportLoadEvent(this)">
    <image display="none" externalResourcesRequired="true" id="image" onload="reportLoadEvent(this)" width="100" height="100" xlink:href="resources/green-checker.png" />
    <text y="130" x="20">This tests load dispatching order with externalResourcesRequired and an image that does not render(display=none). Bug 16447</text>
    <text y="150" x="20" id="console" onload="reportLoadEvent(this)"/>
  </g>
</svg>
