| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>HTMLTableRowElement.sectionRowIndex</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <table> |
| <thead> |
| <tr id="ht1"></tr> |
| </thead> |
| <tr id="t1"></tr> |
| <tr id="t2"> |
| <td> |
| <table> |
| <thead> |
| <tr id="nht1"></tr> |
| </thead> |
| <tr></tr> |
| <tr id="nt1"></tr> |
| <tbody> |
| <tr id="nbt1"></tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tbody> |
| <tr></tr> |
| <tr id="bt1"></tr> |
| </tbody> |
| <tfoot> |
| <tr></tr> |
| <tr></tr> |
| <tr id="ft1"></tr> |
| </tfoot> |
| </table> |
| |
| <script> |
| test(function() { |
| var tHeadRow = document.getElementById('ht1'); |
| assert_equals(tHeadRow.sectionRowIndex, 0); |
| }, "Row in thead in HTML"); |
| |
| test(function() { |
| var tRow1 = document.getElementById('t1'); |
| assert_equals(tRow1.sectionRowIndex, 0); |
| }, "Row in implicit tbody in HTML"); |
| |
| test(function() { |
| var tRow2 = document.getElementById('t2'); |
| assert_equals(tRow2.sectionRowIndex, 1); |
| }, "Other row in implicit tbody in HTML"); |
| |
| test(function() { |
| var tBodyRow = document.getElementById('bt1'); |
| assert_equals(tBodyRow.sectionRowIndex, 1); |
| }, "Row in explicit tbody in HTML"); |
| |
| test(function() { |
| var tFootRow = document.getElementById('ft1'); |
| assert_equals(tFootRow.sectionRowIndex, 2); |
| }, "Row in tfoot in HTML"); |
| |
| test(function() { |
| var childHeadRow = document.getElementById('nht1'); |
| assert_equals(childHeadRow.sectionRowIndex, 0); |
| }, "Row in thead in nested table in HTML"); |
| |
| test(function() { |
| var childRow = document.getElementById('nt1'); |
| assert_equals(childRow.sectionRowIndex, 1); |
| }, "Row in implicit tbody in nested table in HTML"); |
| |
| test(function() { |
| var childBodyRow = document.getElementById('nbt1'); |
| assert_equals(childBodyRow.sectionRowIndex, 0); |
| }, "Row in explicit tbody in nested table in HTML"); |
| |
| /* script create element test */ |
| var mkTrElm = function (elst) { |
| var elm = document.createElement("table"); |
| elst.forEach(function(item) { |
| elm = elm.appendChild(document.createElement(item)); |
| }); |
| return elm.appendChild(document.createElement("tr")); |
| }; |
| |
| test(function() { |
| assert_equals(mkTrElm([]).sectionRowIndex, 0); |
| }, "Row in script-created table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["div"]).sectionRowIndex, -1); |
| }, "Row in script-created div in table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["thead"]).sectionRowIndex, 0); |
| }, "Row in script-created thead in table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody"]).sectionRowIndex, 0); |
| }, "Row in script-created tbody in table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tfoot"]).sectionRowIndex, 0); |
| }, "Row in script-created tfoot in table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody", "tr"]).sectionRowIndex, -1); |
| }, "Row in script-created tr in tbody in table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody", "tr", "td"]).sectionRowIndex, -1); |
| }, "Row in script-created td in tr in tbody in table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody", "tr", "td", "table"]).sectionRowIndex, 0); |
| }, "Row in script-created nested table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody", "tr", "td", "table", "thead"]).sectionRowIndex, 0); |
| }, "Row in script-created thead in nested table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody", "tr", "td", "table", "tbody"]).sectionRowIndex, 0); |
| }, "Row in script-created tbody in nested table"); |
| |
| test(function() { |
| assert_equals(mkTrElm(["tbody", "tr", "td", "table", "tfoot"]).sectionRowIndex, 0); |
| }, "Row in script-created tfoot in nested table"); |
| </script> |