Home | History | Annotate | Download | only in core
      1 
      2 /*
      3 Copyright  2001-2004 World Wide Web Consortium, 
      4 (Massachusetts Institute of Technology, European Research Consortium 
      5 for Informatics and Mathematics, Keio University). All 
      6 Rights Reserved. This work is distributed under the W3C Software License [1] in the 
      7 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
      8 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
      9 
     10 [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
     11 */
     12 
     13 
     14 
     15    /**
     16     *  Gets URI that identifies the test.
     17     *  @return uri identifier of test
     18     */
     19 function getTargetURI() {
     20       return "http://www.w3.org/2001/DOM-Test-Suite/level1/core/hc_elementgetelementsbytagnameaccessnodelist";
     21    }
     22 
     23 var docsLoaded = -1000000;
     24 var builder = null;
     25 
     26 //
     27 //   This function is called by the testing framework before
     28 //      running the test suite.
     29 //
     30 //   If there are no configuration exceptions, asynchronous
     31 //        document loading is started.  Otherwise, the status
     32 //        is set to complete and the exception is immediately
     33 //        raised when entering the body of the test.
     34 //
     35 function setUpPage() {
     36    setUpPageStatus = 'running';
     37    try {
     38      //
     39      //   creates test document builder, may throw exception
     40      //
     41      builder = createConfiguredBuilder();
     42 
     43       docsLoaded = 0;
     44       
     45       var docRef = null;
     46       if (typeof(this.doc) != 'undefined') {
     47         docRef = this.doc;
     48       }
     49       docsLoaded += preload(docRef, "doc", "hc_staff");
     50         
     51        if (docsLoaded == 1) {
     52           setUpPageStatus = 'complete';
     53        }
     54     } catch(ex) {
     55     	catchInitializationError(builder, ex);
     56         setUpPageStatus = 'complete';
     57     }
     58 }
     59 
     60 
     61 
     62 //
     63 //   This method is called on the completion of 
     64 //      each asychronous load started in setUpTests.
     65 //
     66 //   When every synchronous loaded document has completed,
     67 //      the page status is changed which allows the
     68 //      body of the test to be executed.
     69 function loadComplete() {
     70     if (++docsLoaded == 1) {
     71         setUpPageStatus = 'complete';
     72     }
     73 }
     74 
     75 
     76 /**
     77 * 
     78 The "getElementsByTagName(name)" method returns a list
     79 of all descendant Elements in the order the children
     80 were encountered in a pre order traversal of the element
     81 tree.
     82 
     83 Create a NodeList of all the descendant elements
     84 using the string "p" as the tagName.
     85 The method should return a NodeList whose length is
     86 "5" in the order the children were encountered.
     87 Access the FOURTH element in the NodeList.  The FOURTH
     88 element, the first or second should be an "em" node with
     89 the content "EMP0004".
     90 
     91 * @author Curt Arnold
     92 * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D
     93 * @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=246
     94 */
     95 function hc_elementgetelementsbytagnameaccessnodelist() {
     96    var success;
     97     if(checkInitialization(builder, "hc_elementgetelementsbytagnameaccessnodelist") != null) return;
     98     var doc;
     99       var elementList;
    100       var testEmployee;
    101       var firstC;
    102       var childName;
    103       var nodeType;
    104       var employeeIDNode;
    105       var employeeID;
    106       
    107       var docRef = null;
    108       if (typeof(this.doc) != 'undefined') {
    109         docRef = this.doc;
    110       }
    111       doc = load(docRef, "doc", "hc_staff");
    112       elementList = doc.getElementsByTagName("p");
    113       testEmployee = elementList.item(3);
    114       firstC = testEmployee.firstChild;
    115 
    116       nodeType = firstC.nodeType;
    117 
    118       
    119     while(
    120 	(3 == nodeType)
    121 	) {
    122 	firstC = firstC.nextSibling;
    123 
    124       nodeType = firstC.nodeType;
    125 
    126       
    127 	}
    128 childName = firstC.nodeName;
    129 
    130       assertEqualsAutoCase("element", "childName","em",childName);
    131        employeeIDNode = firstC.firstChild;
    132 
    133       employeeID = employeeIDNode.nodeValue;
    134 
    135       assertEquals("employeeID","EMP0004",employeeID);
    136        
    137 }
    138 
    139 
    140 
    141 
    142 function runTest() {
    143    hc_elementgetelementsbytagnameaccessnodelist();
    144 }
    145