<!DOCTYPE html>
<meta charset=utf-8>
<title>Node.appendChild applied to CharacterData</title>
<link rel=help href="https://dom.spec.whatwg.org/#dom-node-appendchild">
<link rel=help href="https://dom.spec.whatwg.org/#introduction-to-the-dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
function create(type) {
  switch (type) {
    case "Text": return document.createTextNode("test"); break;
    case "Comment": return document.createComment("test"); break;
    case "ProcessingInstruction": return document.createProcessingInstruction("target", "test"); break;
  }
}

function testNode(type1, type2) {
  test(function() {
    var node1 = create(type1);
    var node2 = create(type2);
    assert_throws_dom("HierarchyRequestError", function () {
      node1.appendChild(node2);
    }, "CharacterData type " + type1 + " must not have children");
  }, type1 + ".appendChild(" + type2 + ")");
}

var types = ["Text", "Comment", "ProcessingInstruction"];
types.forEach(function(type1) {
  types.forEach(function(type2) {
    testNode(type1, type2);
  });
});
</script>
