<!DOCTYPE html>
<title>document.open with three arguments</title>
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-document-open">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
function open() {
  assert_unreached("The call should be redirected to the real window.open")
}
test(function(t) {
  var w;
  t.add_cleanup(function() {try {w.close()} catch(e) {}});
  w = document.open("/resources/testharness.js", "", "");
  assert_true(w instanceof w.Window, "Expected a window");
}, "document.open should redirect to window.open when called with three arguments");

test(function() {
  var parser = new DOMParser();
  var doc = parser.parseFromString("", "text/html");
  assert_equals(doc.defaultView, null);
  assert_throws("INVALID_ACCESS_ERR", function() {
    doc.open("/resources/testharness.js", "", "");
  });
}, "document.open should throw when it has no window and is called with three arguments");
</script>
