<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html lang="en">
 <head>
  <title>XMLHttpRequest and responseXML -- script in the response</title>
 </head>
 <body>
  <p>The following line should say "PASS" twice, and you should not
  get any alerts or see the word "FAIL" anywhere on the next line.</p>
  <p>FAIL: Script did not run.</p>
  <script type="text/javascript">
   if (window.layoutTestController)
     layoutTestController.dumpAsText();

   var p = document.getElementsByTagName('p')[1];
   p.firstChild.data = 'FAIL: Test script did not finish.';
   window.onerror = function (error, file, line) { p.firstChild.data += ' (ERROR: ' + error + ' (line ' + line + '))'; }
   if (!window.XMLHttpRequest)
     window.XMLHttpRequest = function () { return new ActiveXObject("Microsoft.XMLHTTP"); }
   var r = new XMLHttpRequest();
   r.open('GET', 'resources/018-test.xml', false);
   r.send(null);
   var form = r.responseXML.getElementsByTagNameNS('http://www.w3.org/1999/xhtml', 'form')[0];
   form.submit();
   p.firstChild.data = form.firstChild.data + " " + r.responseXML.title;
  </script>
 </body>
</html>
