blob: e099315a8b7b164033a8abd0a1de12bdcb9d9794 [file] [log] [blame] [edit]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/accessibility-helper.js"></script>
<script src="../resources/js-test.js"></script>
<style>
td, th {
border: 1px solid black;
}
</style>
</head>
<body>
<table id="table">
<thead id="thead">
<tr id="r0">
<th id="r0c0">Header 0</th>
<th id="r0c1">Header 1</th>
<th id="r0c2">Header 2</th>
</tr>
</thead>
<tbody id="tbody">
<tr id="r1">
<td id="r1c0">R1C0</td>
<td id="r1c1">R1C1</td>
<td id="r1c2">R1C2</td>
</tr>
<tr id="r2">
<td id="r2c0">R2C0</td>
<td id="r2c1">R2C1</td>
</tr>
</tbody>
</table>
<script>
var output = "This test ensures that the 'cell for column and row' API works correctly after dynamic rowspan changes.\n\n";
if (window.accessibilityController) {
window.jsTestIsAsync = true;
var table = accessibilityController.accessibleElementById("table");
output += expect("table.cellForColumnAndRow(0, 0).domIdentifier", "'r0c0'");
output += expect("table.cellForColumnAndRow(2, 2) === null", "true");
output += expect("accessibilityController.accessibleElementById('r1c2').rowIndexRange()", "'{1, 1}'");
output += evalAndReturn("document.getElementById('r1c2').setAttribute('rowspan', '2')");
setTimeout(async function() {
await waitFor(() => table.cellForColumnAndRow(2, 2) !== null);
output += expect("table.cellForColumnAndRow(2, 2).domIdentifier", "'r1c2'");
output += expect("accessibilityController.accessibleElementById('r1c2').rowIndexRange()", "'{1, 2}'");
output += evalAndReturn("document.getElementById('r1c2').removeAttribute('rowspan')");
output += await expectAsync("table.cellForColumnAndRow(2, 2) === null", "true");
output += expect("accessibilityController.accessibleElementById('r1c2').rowIndexRange()", "'{1, 1}'");
output += evalAndReturn("document.getElementById('r1c2').setAttribute('aria-rowspan', '2')");
await waitFor(() => table.cellForColumnAndRow(2, 2) !== null);
output += expect("table.cellForColumnAndRow(2, 2).domIdentifier", "'r1c2'");
output += expect("accessibilityController.accessibleElementById('r1c2').rowIndexRange()", "'{1, 2}'");
debug(output);
finishJSTest();
}, 0);
}
</script>
</body>
</html>