<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script>
var successfullyParsed = false;
</script>
<style>
table, th, td {
    border: 1px solid black;
}
</style>
</head>
<body>

<table>
<thead><tr>
<td></td>
<th aria-label="ColHeader1">ColHeader1</th>
<th aria-label="ColHeader2" colspan="2">ColHeader2</th>
</tr></thead>

<tbody>
<tr>
<th aria-label="Rowheader1">Rowheader1</th>
<td id="content1">content1</td>
<td id="content2">content2</td>
<td>content3</td>
</tr>
<tr>
<th aria-label="Rowheader2" rowspan="2">RowHeader2</th>
<td>content4</td>
<td>content5</td>
<td>content6</td>
</tr>
<tr>
<td id="content7">content7</td>
<td>content8</td>
<td id="content9">content9</td>
</tr>
</tbody>
</table>

<p id="description"></p>
<div id="console"></div>

<script>

    description("This test makes sure that cells are getting the correct header elements.");
    
    if (window.accessibilityController) {
        
        var cell;
        var colDescription, rowDescription;
        var rowHeaderLabel1 = "Rowheader1";
        var rowHeaderLabel2 = "Rowheader2";
        var colHeaderLabel1 = "ColHeader1";
        var colHeaderLabel2 = "ColHeader2";
        
        verifyCellAndHeaders("content1", colHeaderLabel1, rowHeaderLabel1);
        verifyCellAndHeaders("content2", colHeaderLabel2, rowHeaderLabel1);
        verifyCellAndHeaders("content7", colHeaderLabel1, rowHeaderLabel2);
        verifyCellAndHeaders("content9", colHeaderLabel2, rowHeaderLabel2);
    }
    
    function verifyCellAndHeaders(cellID, colHeader, rowHeader) {
        cell = accessibilityController.accessibleElementById(cellID);
        colDescription = "AXLabel: " + colHeader;
        rowDescription = "AXLabel: " + rowHeader;
        debug("Verifying \"" + cellID + "\" with col header: \"" + colHeader + "\" row header: \"" + rowHeader + "\".");
        shouldBe("cell.headerElementAtIndex(0).description", "colDescription");
        shouldBe("cell.headerElementAtIndex(1).description", "rowDescription");
        debug("\n");
    }

    successfullyParsed = true;
</script>

<script src="../../resources/js-test-post.js"></script>

</body>
</html>

