<!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>
