| <!doctype html> |
| <meta charset=utf-8> |
| <title>HTMLTableElement.createTBody</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <div id=log></div> |
| <script> |
| function assert_tbody(tbody) { |
| assert_equals(tbody.localName, "tbody"); |
| assert_equals(tbody.namespaceURI, htmlNS); |
| assert_equals(tbody.prefix, null); |
| } |
| var htmlNS = "http://www.w3.org/1999/xhtml"; |
| test(function() { |
| var table = document.createElement("table"); |
| var tbody = table.createTBody(); |
| assert_equals(table.firstChild, tbody); |
| assert_tbody(tbody); |
| }, "No child nodes"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before = table.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before, tbody]); |
| assert_tbody(tbody); |
| }, "One tbody child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("tbody")); |
| var before2 = table.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before1, before2]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, before2, tbody]); |
| assert_tbody(tbody); |
| }, "Two tbody child nodes"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("thead")); |
| var before2 = table.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before1, before2]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, before2, tbody]); |
| assert_tbody(tbody); |
| }, "A thead and a tbody child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("tfoot")); |
| var before2 = table.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before1, before2]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, before2, tbody]); |
| assert_tbody(tbody); |
| }, "A tfoot and a tbody child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before = table.appendChild(document.createElement("tbody")); |
| var after = table.appendChild(document.createElement("thead")); |
| assert_array_equals(table.childNodes, [before, after]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before, tbody, after]); |
| assert_tbody(tbody); |
| }, "A tbody and a thead child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before = table.appendChild(document.createElement("tbody")); |
| var after = table.appendChild(document.createElement("tfoot")); |
| assert_array_equals(table.childNodes, [before, after]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before, tbody, after]); |
| assert_tbody(tbody); |
| }, "A tbody and a tfoot child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("tbody")); |
| var before2 = table.appendChild(document.createElement("tbody")); |
| var after = table.appendChild(document.createElement("div")); |
| assert_array_equals(table.childNodes, [before1, before2, after]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, before2, tbody, after]); |
| assert_tbody(tbody); |
| }, "Two tbody child nodes and a div"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before = table.appendChild(document.createElement("tbody")); |
| var after = table.appendChild(document.createElementNS("x", "tbody")); |
| assert_array_equals(table.childNodes, [before, after]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before, tbody, after]); |
| assert_tbody(tbody); |
| }, "One HTML and one namespaced tbody child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("tbody")); |
| var before2 = before1.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before1]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, tbody]); |
| assert_tbody(tbody); |
| }, "Two nested tbody child nodes"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("thead")); |
| var before2 = before1.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before1]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, tbody]); |
| assert_tbody(tbody); |
| }, "A tbody node inside a thead child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before1 = table.appendChild(document.createElement("tfoot")); |
| var before2 = before1.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before1]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before1, tbody]); |
| assert_tbody(tbody); |
| }, "A tbody node inside a tfoot child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before = table.appendChild(document.createElement("tbody")); |
| var after1 = table.appendChild(document.createElement("thead")); |
| var after2 = after1.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before, after1]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before, tbody, after1]); |
| assert_tbody(tbody); |
| }, "A tbody node inside a thead child node after a tbody child node"); |
| |
| test(function() { |
| var table = document.createElement("table"); |
| var before = table.appendChild(document.createElement("tbody")); |
| var after1 = table.appendChild(document.createElement("tfoot")); |
| var after2 = after1.appendChild(document.createElement("tbody")); |
| assert_array_equals(table.childNodes, [before, after1]); |
| |
| var tbody = table.createTBody(); |
| assert_array_equals(table.childNodes, [before, tbody, after1]); |
| assert_tbody(tbody); |
| }, "A tbody node inside a tfoot child node after a tbody child node"); |
| |
| test(function() { |
| var table = document.createElementNS(htmlNS, "foo:table"); |
| var tbody = table.createTBody(); |
| |
| assert_equals(tbody.prefix, null); |
| }, "A prefixed table creates tbody without prefix"); |
| |
| </script> |