<!DOCTYPE html>
<html><head>
	<title> scheduler: document.write several scripts into IFRAME </title>
	<script src="/resources/testharness.js"></script>
	<script src="/resources/testharnessreport.js"></script>
	<script src="testlib/testlib.js"></script>

</head>
<body>

	<div id="log">FAILED (This TC requires JavaScript enabled)</div>

  <iframe style="width:1px;height:1px"></iframe>

  <script type="text/javascript">
    var doc = document.getElementsByTagName('iframe')[0].contentDocument;
    doc.open();

    var html = '<html><head><title>test</title></head>'+
              '<script>top.log("inline script #1");'+
              '<\/script>'+
              /* made url unique because Chrome will change
                 order depending on file cached status */
              '<script src="scripts/include-6.js?'+new Date().getTime()+'"><\/script>'+
              '</head>'+
              '<body>'+
              '<div id="foo"></div>'+
              '</body></html>'+
              '<script>top.log("inline script #2");<\/script>';
    log("calling document.write");
    doc.write(html);

    log("calling document.close");
    doc.close();

    var t = async_test()


    function test() {
      if( !window.include6Loaded )return setTimeout(t.step_func(test),200); //  try checking again if external script didn't run yet
      assert_array_equals(eventOrder, ['calling document.write',
          'inline script #1',
          'calling document.close',
          'external script (#foo found? NO)',
          'inline script #2'
        ]);
      t.done();
}

    onload = t.step_func(test)
  </script>
</head>

</body>
</html>
