<!DOCTYPE html>
<html><head>
	<title> scheduler: document.write into IFRAME a script that creates new inline 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( \'log("inline script added to parent")\', null, 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',
	  'inline script added to parent',
          'calling document.close',
        ]);
      t.done();
}

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

</body>
</html>
