Element-insertAdjacentElement.html (3552B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title></title> 4 <script src=/resources/testharness.js></script> 5 <script src=/resources/testharnessreport.js></script> 6 7 <div id="target"></div> 8 <div id="parent"><span id=target2></span></div> 9 <div id="log" style="visibility:visible"></div> 10 <span id="test1"></span> 11 <span id="test2"></span> 12 <span id="test3"></span> 13 <span id="test4"></span> 14 <script> 15 var target = document.getElementById("target"); 16 var target2 = document.getElementById("target2"); 17 18 test(function() { 19 assert_throws_dom("SyntaxError", function() { 20 target.insertAdjacentElement("test", document.getElementById("test1")) 21 }); 22 23 assert_throws_dom("SyntaxError", function() { 24 target2.insertAdjacentElement("test", document.getElementById("test1")) 25 }); 26 }, "Inserting to an invalid location should cause a Syntax Error exception") 27 28 test(function() { 29 var el = target.insertAdjacentElement("beforebegin", document.getElementById("test1")); 30 assert_equals(target.previousSibling.id, "test1"); 31 assert_equals(el.id, "test1"); 32 33 el = target2.insertAdjacentElement("beforebegin", document.getElementById("test1")); 34 assert_equals(target2.previousSibling.id, "test1"); 35 assert_equals(el.id, "test1"); 36 }, "Inserted element should be target element's previous sibling for 'beforebegin' case") 37 38 test(function() { 39 var el = target.insertAdjacentElement("afterbegin", document.getElementById("test2")); 40 assert_equals(target.firstChild.id, "test2"); 41 assert_equals(el.id, "test2"); 42 43 el = target2.insertAdjacentElement("afterbegin", document.getElementById("test2")); 44 assert_equals(target2.firstChild.id, "test2"); 45 assert_equals(el.id, "test2"); 46 }, "Inserted element should be target element's first child for 'afterbegin' case") 47 48 test(function() { 49 var el = target.insertAdjacentElement("beforeend", document.getElementById("test3")); 50 assert_equals(target.lastChild.id, "test3"); 51 assert_equals(el.id, "test3"); 52 53 el = target2.insertAdjacentElement("beforeend", document.getElementById("test3")); 54 assert_equals(target2.lastChild.id, "test3"); 55 assert_equals(el.id, "test3"); 56 }, "Inserted element should be target element's last child for 'beforeend' case") 57 58 test(function() { 59 var el = target.insertAdjacentElement("afterend", document.getElementById("test4")); 60 assert_equals(target.nextSibling.id, "test4"); 61 assert_equals(el.id, "test4"); 62 63 el = target2.insertAdjacentElement("afterend", document.getElementById("test4")); 64 assert_equals(target2.nextSibling.id, "test4"); 65 assert_equals(el.id, "test4"); 66 }, "Inserted element should be target element's next sibling for 'afterend' case") 67 68 test(function() { 69 var docElement = document.documentElement; 70 docElement.style.visibility="hidden"; 71 72 assert_throws_dom("HierarchyRequestError", function() { 73 var el = docElement.insertAdjacentElement("beforebegin", document.getElementById("test1")); 74 assert_equals(el, null); 75 }); 76 77 var el = docElement.insertAdjacentElement("afterbegin", document.getElementById("test2")); 78 assert_equals(docElement.firstChild.id, "test2"); 79 assert_equals(el.id, "test2"); 80 81 el = docElement.insertAdjacentElement("beforeend", document.getElementById("test3")); 82 assert_equals(docElement.lastChild.id, "test3"); 83 assert_equals(el.id, "test3"); 84 85 assert_throws_dom("HierarchyRequestError", function() { 86 var el = docElement.insertAdjacentElement("afterend", document.getElementById("test4")); 87 assert_equals(el, null); 88 }); 89 }, "Adding more than one child to document should cause a HierarchyRequestError exception") 90 91 </script>