<!DOCTYPE html>
<html><head>
	<title> scheduler: document.write into IFRAME a script that creates new external script in parent </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>'+
              '</head>'+
              '<body>'+
              '<div id="foo"></div>'+
              '</body></html>'+
              '<script>top.testlib.addScript( \'\', { src:\'scripts/include-1.js\' }, top.document.body, true )<\/script>';
    log("calling document.write");
    doc.write(html);

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

    var t = async_test()


    function test() {

      assert_array_equals(eventOrder, ['calling document.write',
          'inline script #1',
          'calling document.close',
	  'external script #1'
        ]);

      t.done();
}

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

</body>
</html>