dom/tests/mochitest/dom-level2-html/test_HTMLCollection04.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
     2 <html>
     3 <head>
     4 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
     5 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
     6 <title>http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLCollection04</title>
     7 <link type="text/css" rel="stylesheet" href="/tests/SimpleTest/test.css">
     8 <script src="/tests/SimpleTest/SimpleTest.js" type="text/javascript"></script>
     9 <script src="DOMTestCase.js" type="text/javascript"></script>
    10 <script type="text/javascript">
    11 // expose test function names
    12 function exposeTestFunctionNames()
    13 {
    14 return ['HTMLCollection04'];
    15 }
    17 var docsLoaded = -1000000;
    18 var builder = null;
    20 //
    21 //   This function is called by the testing framework before
    22 //      running the test suite.
    23 //
    24 //   If there are no configuration exceptions, asynchronous
    25 //        document loading is started.  Otherwise, the status
    26 //        is set to complete and the exception is immediately
    27 //        raised when entering the body of the test.
    28 //
    29 function setUpPage() {
    30    setUpPageStatus = 'running';
    31    try {
    32      //
    33      //   creates test document builder, may throw exception
    34      //
    35      builder = createConfiguredBuilder();
    37       docsLoaded = 0;
    39       var docRef = null;
    40       if (typeof(this.doc) != 'undefined') {
    41         docRef = this.doc;
    42       }
    43       docsLoaded += preload(docRef, "doc", "collection");
    45        if (docsLoaded == 1) {
    46           setUpPage = 'complete';
    47        }
    48     } catch(ex) {
    49     	catchInitializationError(builder, ex);
    50         setUpPage = 'complete';
    51     }
    52 }
    56 //
    57 //   This method is called on the completion of 
    58 //      each asychronous load started in setUpTests.
    59 //
    60 //   When every synchronous loaded document has completed,
    61 //      the page status is changed which allows the
    62 //      body of the test to be executed.
    63 function loadComplete() {
    64     if (++docsLoaded == 1) {
    65         setUpPageStatus = 'complete';
    66         runJSUnitTests();
    67         SimpleTest.finish();
    68     }
    69 }
    72 /**
    73 * 
    74     HTMLCollections are live, they are automatically updated when the     
    75     underlying document is changed.
    77     Create a HTMLCollection object by invoking the rows attribute of the    
    78     first TABLE element and examine its length, then add a new row and
    79     re-examine the length.
    81 * @author NIST
    82 * @author Rick Rivello
    83 * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-40057551
    84 */
    85 function HTMLCollection04() {
    86    var success;
    87     if(checkInitialization(builder, "HTMLCollection04") != null) return;
    88     var nodeList;
    89       var testNode;
    90       var rowLength1;
    91       var rowLength2;
    92       var rowsnodeList;
    93       var newRow;
    94       var vrowindex;
    95       var doc;
    96       var result = new Array();
    98       expectedResult = new Array();
    99       expectedResult[0] = 4;
   100       expectedResult[1] = 5;
   103       var docRef = null;
   104       if (typeof(this.doc) != 'undefined') {
   105         docRef = this.doc;
   106       }
   107       doc = load(docRef, "doc", "collection");
   108       nodeList = doc.getElementsByTagName("table");
   109       assertSize("Asize",1,nodeList);
   110 testNode = nodeList.item(0);
   111       rowsnodeList = testNode.rows;
   113       rowLength1 = rowsnodeList.length;
   115       result[result.length] = rowLength1;
   116 newRow = testNode.insertRow(4);
   117       rowLength2 = rowsnodeList.length;
   119       result[result.length] = rowLength2;
   120 assertEqualsList("rowIndexLink",expectedResult,result);
   122 }
   124 </script>
   125 </head>
   126 <body>
   127 <h2>Test http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLCollection04</h2>
   128 <p>&lt;test name='HTMLCollection04' schemaLocation='http://www.w3.org/2001/DOM-Test-Suite/Level-1 dom1.xsd'&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;metadata&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;HTMLCollection04&lt;/title&gt;
   129 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;creator&gt;NIST&lt;/creator&gt;
   130 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;
   131     HTMLCollections are live, they are automatically updated when the     
   132     underlying document is changed.
   134     Create a HTMLCollection object by invoking the rows attribute of the    
   135     first TABLE element and examine its length, then add a new row and
   136     re-examine the length.
   137 &lt;/description&gt;
   138 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;contributor&gt;Rick Rivello&lt;/contributor&gt;
   139 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;date qualifier='created'&gt;2002-05-01&lt;/date&gt;
   140 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;subject resource='<a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-40057551">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-40057551</a>'/&gt;
   141 <br>&lt;/metadata&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='nodeList' type='NodeList'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='testNode' type='Node'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='rowLength1' type='int'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='rowLength2' type='int'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='rowsnodeList' type='HTMLCollection'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='newRow' type='HTMLElement'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='vrowindex' type='int'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='doc' type='Document'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='result' type='List'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;var name='expectedResult' type='List'&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;member/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;member/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/var&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;load var='doc' href='collection' willBeModified='true'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;getElementsByTagName interface='Document' obj='doc' var='nodeList' tagname='"table"'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;assertSize collection='nodeList' size='1' <a id="Asize">id='Asize'</a>/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;item interface='NodeList' obj='nodeList' var='testNode' index='0'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rows interface='HTMLTableElement' obj='testNode' var='rowsnodeList'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;length interface='HTMLCollection' obj='rowsnodeList' var='rowLength1'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;append collection='result' item='rowLength1'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;insertRow interface='HTMLTableElement' obj='testNode' var='newRow' index='4'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;length interface='HTMLCollection' obj='rowsnodeList' var='rowLength2'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;append collection='result' item='rowLength2'/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;assertEquals actual='result' expected='expectedResult' <a id="rowIndexLink">id='rowIndexLink'</a> ignoreCase='false'/&gt;<br>&lt;/test&gt;<br>
   142 </p>
   143 <p>
   144 			Copyright (c) 2001-2004 World Wide Web Consortium,
   145 			(Massachusetts Institute of Technology, Institut National de
   146 			Recherche en Informatique et en Automatique, Keio University). All
   147 			Rights Reserved. This program is distributed under the W3C's Software
   148 			Intellectual Property License. This program is distributed in the
   149 			hope that it will be useful, but WITHOUT ANY WARRANTY; without even
   150 			the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
   151 			PURPOSE.
   152 			</p>
   153 <p>See W3C License <a href="http://www.w3.org/Consortium/Legal/">http://www.w3.org/Consortium/Legal/</a> 
   154  for more details.</p>
   155 <iframe name="doc" src="files/collection.html"></iframe>
   156 <br>
   157 </body>
   158 </html>

mercurial