<?xml version="1.0" encoding="UTF-8"?>

<!--

Copyright (c) 2001 World Wide Web Consortium, 
(Massachusetts Institute of Technology, Institut National de
Recherche en Informatique et en Automatique, Keio University).  All 
Rights Reserved.  This program is distributed under the W3C's Software
Intellectual Property License.  This program is distributed in the 
hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.  

See W3C License http://www.w3.org/Consortium/Legal/ for more details.

-->
<!DOCTYPE test SYSTEM "dom2.dtd">
<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-2" name="HTMLTableElement39">
<metadata>
<title>HTMLTableElement39</title>
<creator>NIST</creator>
<description>
    The insertRow() method inserts a new empty table row. 
    If index is -1 or equal to the number of rows, the new row
    is appended.
    
    Retrieve the second TABLE element and invoke the insertRow() method
    with an index of negative one.   
    The number of rows in the TBODY section before insertion with an index
    of negative one is two.  After the new row is inserted the number 
    of rows in the TBODY section is three.
</description>
<contributor>Rick Rivello</contributor>
<date qualifier="created">2002-11-07</date>
<subject resource="http://www.w3.org/TR/DOM-Level-2-HTML/html#ID-39872903"/>
</metadata>
<var name="nodeList" type="NodeList"/>
<var name="tbodiesnodeList" type="HTMLCollection"/>
<var name="testNode" type="Node"/>
<var name="bodyNode" type="Node"/>
<var name="newRow" type="HTMLElement"/>
<var name="rowsnodeList" type="HTMLCollection"/>
<var name="vsection1" type="HTMLTableSectionElement"/>
<var name="vsection2" type="HTMLTableSectionElement"/>
<var name="vrows" type="int"/>
<var name="doc" type="Document"/>
<load var="doc" href="table" willBeModified="true"/>
<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname="&quot;table&quot;"/>
<assertSize collection="nodeList" size="3" id="Asize"/>
<item interface="NodeList" obj="nodeList" var="testNode" index="1"/>
<tBodies interface="HTMLTableElement" obj="testNode" var="tbodiesnodeList"/>
<item interface="HTMLCollection" obj="tbodiesnodeList" var="bodyNode" index="0"/>
<rows interface="HTMLTableSectionElement" obj="bodyNode" var="rowsnodeList"/>
<length interface="HTMLCollection" obj="rowsnodeList" var="vrows"/>
<assertEquals actual="vrows" expected="2" id="rowsLink1" ignoreCase="false"/>
<insertRow interface="HTMLTableElement" obj="testNode" var="newRow" index="-1"/>
<!--
* the following assumes that the row is appended to tbody
* this is obviously wrong it should be appended to tfoot which is the end
* of the table
<tBodies interface="HTMLTableElement" obj="testNode" var="tbodiesnodeList"/>
<item interface="HTMLCollection" obj="tbodiesnodeList" var="bodyNode" index="0"/>
<rows interface="HTMLTableSectionElement" obj="bodyNode" var="rowsnodeList"/>
<length interface="HTMLCollection" obj="rowsnodeList" var="vrows"/>
<assertEquals actual="vrows" expected="3" id="rowsLink2" ignoreCase="false"/>
--!>
</test>
