<!DOCTYPE html>
<title>Custom Elements: CEReactions on HTMLTableCellElement interface</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<meta name="assert" content="colSpan, rowSpan, headers, scope, abbr of
  HTMLTableCellElement interface must have CEReactions">
<meta name="help" content="https://html.spec.whatwg.org/#the-td-element">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/custom-elements-helpers.js"></script>
<script src="./resources/reactions.js"></script>

<table><tr id="colSpan"></table>
<table><tr id="rowSpan"><tr><tr></table>
<table><tr><th id="id1"><th id="id2"><tr id="td_headers"><tr id="th_headers"></table>
<script>

function getParentElement(id) {
  let parentElement = document.getElementById(id);
  return parentElement;
}

testReflectAttributeWithParentNode(
  'colSpan', 'colspan', '2',
  '3', 'colSpan on HTMLTableCellElement in td', 'td',
  () => getParentElement('colSpan'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'colSpan', 'colspan', '2',
  '3', 'colSpan on HTMLTableCellElement in th', 'th',
  () => getParentElement('colSpan'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'rowSpan', 'rowspan', '2',
  '3', 'rowSpan on HTMLTableCellElement in td', 'td',
  () => getParentElement('rowSpan'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'rowSpan', 'rowspan', '2',
  '3', 'rowSpan on HTMLTableCellElement in th', 'th',
  () => getParentElement('rowSpan'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'headers', 'headers', 'id1',
  'id2', 'headers on HTMLTableCellElement in td', 'td',
  () => getParentElement('td_headers'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'headers', 'headers', 'id1',
  'id2', 'headers on HTMLTableCellElement in th', 'th',
  () => getParentElement('th_headers'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'scope', 'scope', 'row',
  'col', 'scope on HTMLTableCellElement in th', 'th',
  () => getParentElement('colSpan'), HTMLTableCellElement
);
testReflectAttributeWithParentNode(
  'abbr', 'abbr', 'Model1',
  'Model2', 'abbr on HTMLTableCellElement in th', 'th',
  () => getParentElement('colSpan'), HTMLTableCellElement
);

</script>
