<!DOCTYPE html>
<meta charset=utf-8>
<title>Document.importNode</title>
<link rel=help href="https://dom.spec.whatwg.org/#dom-document-importnode">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
  var doc = document.implementation.createHTMLDocument("Title");
  var div = doc.body.appendChild(doc.createElement("div"));
  div.appendChild(doc.createElement("span"));
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  var newDiv = document.importNode(div);
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  assert_equals(newDiv.ownerDocument, document);
  assert_equals(newDiv.firstChild, null);
}, "No 'deep' argument.")
test(function() {
  var doc = document.implementation.createHTMLDocument("Title");
  var div = doc.body.appendChild(doc.createElement("div"));
  div.appendChild(doc.createElement("span"));
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  var newDiv = document.importNode(div, undefined);
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  assert_equals(newDiv.ownerDocument, document);
  assert_equals(newDiv.firstChild, null);
}, "Undefined 'deep' argument.")
test(function() {
  var doc = document.implementation.createHTMLDocument("Title");
  var div = doc.body.appendChild(doc.createElement("div"));
  div.appendChild(doc.createElement("span"));
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  var newDiv = document.importNode(div, true);
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  assert_equals(newDiv.ownerDocument, document);
  assert_equals(newDiv.firstChild.ownerDocument, document);
}, "True 'deep' argument.")
test(function() {
  var doc = document.implementation.createHTMLDocument("Title");
  var div = doc.body.appendChild(doc.createElement("div"));
  div.appendChild(doc.createElement("span"));
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  var newDiv = document.importNode(div, false);
  assert_equals(div.ownerDocument, doc);
  assert_equals(div.firstChild.ownerDocument, doc);
  assert_equals(newDiv.ownerDocument, document);
  assert_equals(newDiv.firstChild, null);
}, "False 'deep' argument.")
</script>
