blob: ef5366739e92995b872c9cfaf1cfcb685d1ec6ee [file] [log] [blame]
<!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>