<!DOCTYPE html>
<meta charset="utf-8">
<title>HTMLTableRowElement#insertCell</title>
<link rel="author" title="Intel" href="http://www.intel.com/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<div id="log"></div>

<table>
  <tr id="testTr"></tr>
</table>

<script>

var tr = document.getElementById("testTr");

test(function () {
  var tdEle = tr.insertCell(0);
  assert_equals(tr.cells[0], tdEle);
  assert_equals(tr.cells.length, 1);
}, "HTMLTableRowElement insertCell(0)");

test(function () {
  var tdEle = tr.insertCell(-1);
  assert_equals(tr.cells[tr.cells.length - 1], tdEle);
  assert_equals(tr.cells.length, 2);
}, "HTMLTableRowElement insertCell(-1)");


test(function () {
  var tdEle = tr.insertCell(tr.cells.length);
  assert_equals(tr.cells[tr.cells.length - 1], tdEle);
  assert_equals(tr.cells.length, 3);
}, "HTMLTableRowElement insertCell(cells.length)");

test(function () {
  var tdEle = tr.insertCell();
  assert_equals(tr.cells[tr.cells.length - 1], tdEle);
  assert_equals(tr.cells.length, 4);
}, "HTMLTableRowElement insertCell()");

test(function () {
  assert_throws("IndexSizeError", function () {
    tr.insertCell(-2);
  });
}, "HTMLTableRowElement insertCell(-2)");

test(function () {
  assert_throws("IndexSizeError", function () {
    tr.insertCell(tr.cells.length + 1);
  });
}, "HTMLTableRowElement insertCell(cells.length + 1)");

</script>
