<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
</head>
<body id="body">

<div id="grid" role="grid" aria-colcount="16" aria-rowcount="30">
  <div role="rowgroup">
    <div role="row" aria-rowindex="7">
      <span id="cell1" role="columnheader" aria-colindex="2">First Name</span>
      <span role="columnheader" aria-colindex="3">Last Name</span>
      <span role="columnheader" aria-colindex="4">Company</span>
      <span role="columnheader" aria-colindex="5">Address</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row" aria-rowindex="8">
      <span role="gridcell" aria-colindex="2" aria-rowindex="8">Fred</span>
      <span role="gridcell" aria-colindex="3" aria-rowindex="8">Jackson</span>
      <span id="cell2" role="gridcell" aria-colindex="4" aria-rowindex="8" aria-rowspan="2">Acme, Inc.</span>
      <span id="cell3" role="gridcell" aria-colindex="5" aria-rowindex="8" aria-rowspan="0">123 Broad St.</span>
    </div>
    <div role="row" aria-rowindex="9">
      <span role="gridcell" aria-colindex="2">Sara</span>
      <span role="gridcell" aria-colindex="3">James</span>
    </div>
  </div>
  <div role="rowgroup">
    <div role="row" aria-rowindex="15">
      <span role="gridcell" aria-colindex="2">Footer 1</span>
      <span role="gridcell" aria-colindex="3">Footer 2</span>
      <span role="gridcell" aria-colindex="4" aria-colspan="2">Footer 3</span>
    </div>
  </div>
</div>

<div id="grid2" role="grid" aria-colcount="16">
  <div role="rowgroup">
    <div role="row" aria-colindex="2">
      <span role="columnheader">Name</span>
      <span id="cell4" role="columnheader">Company</span>
      <span id="cell5" role="columnheader" aria-colspan="3">Address</span>
    </div>
  </div>
</div>

<div id="grid3" role="grid">
  <div role="row">
    <span role="gridcell">Cell</span>
    <span id="cell6" role="gridcell" aria-rowspan="0">Span Cell</span>
  </div>
  <div role="row">
    <span role="gridcell">Cell</span>
  </div>
</div>

<table role="grid">
  <tr>
    <td>January</td>
    <td id="cell7" rowspan="2" aria-rowspan="3">$100</td>
  </tr>
  <tr><td>February</td></tr>
</table>

<script>

    description("This tests that attributes related to aria table/grid are working correctly.");

    if (window.accessibilityController) {
    
          var grid = accessibilityController.accessibleElementById("grid");
          var cell1 = accessibilityController.accessibleElementById("cell1");
          var cell2 = accessibilityController.accessibleElementById("cell2");
          var cell3 = accessibilityController.accessibleElementById("cell3");
          var cell4 = accessibilityController.accessibleElementById("cell4");
          var cell5 = accessibilityController.accessibleElementById("cell5");
          var cell6 = accessibilityController.accessibleElementById("cell6");
          var cell7 = accessibilityController.accessibleElementById("cell7");
          
          // aria-colcount and aria-rowcount
          shouldBe("grid.numberAttributeValue('AXARIAColumnCount')", "16");
          shouldBe("grid.numberAttributeValue('AXARIARowCount')", "30");
          shouldBe("grid.rowCount", "4");
          shouldBe("grid.columnCount", "4");

          // aria-colindex and aria-rowindex
          shouldBe("cell1.numberAttributeValue('AXARIAColumnIndex')", "2");
          shouldBe("cell1.numberAttributeValue('AXARIARowIndex')", "7");
          shouldBe("cell2.numberAttributeValue('AXARIAColumnIndex')", "4");
          shouldBe("cell2.numberAttributeValue('AXARIARowIndex')", "8");
          // aria-colindex from parent row
          shouldBe("cell4.numberAttributeValue('AXARIAColumnIndex')", "3");
          
          // aria-colspan and aria-rowspan, including aria-rowspan="0"
          shouldBe("cell2.rowIndexRange()", "'{1, 2}'");
          shouldBe("cell5.columnIndexRange()", "'{2, 3}'");
          shouldBe("cell3.rowIndexRange()", "'{1, 2}'");

          shouldBe("cell6.rowIndexRange()", "'{0, 2}'");
          // use rowspan for native table
          shouldBe("cell7.rowIndexRange()", "'{0, 2}'");
    }

</script>

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