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/level3/core/documentadoptnode02";
     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 	Adopt the class attribute node of the fourth acronym element.  Check if this attribute has been adopted 
     79 	successfully by verifying the nodeName, nodeType, ownerElement, specified attributes and child nodes 
     80 	of the adopted node.
     81 
     82 * @author IBM
     83 * @author Neil Delima
     84 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
     85 */
     86 function documentadoptnode02() {
     87    var success;
     88     if(checkInitialization(builder, "documentadoptnode02") != null) return;
     89     var doc;
     90       var newDoc;
     91       var domImpl;
     92       var attrOwnerElem;
     93       var element;
     94       var attr;
     95       var childList;
     96       var adoptedclass;
     97       var attrsParent;
     98       var nodeName;
     99       var nodeType;
    100       var nodeValue;
    101       var isSpecified;
    102       var nullDocType = null;
    103 
    104       var firstChild;
    105       var firstChildValue;
    106       var secondChild;
    107       var secondChildType;
    108       var secondChildName;
    109       var docElem;
    110       var rootNS;
    111       var rootName;
    112       
    113       var docRef = null;
    114       if (typeof(this.doc) != 'undefined') {
    115         docRef = this.doc;
    116       }
    117       doc = load(docRef, "doc", "hc_staff");
    118       docElem = doc.documentElement;
    119 
    120       rootName = docElem.tagName;
    121 
    122       rootNS = docElem.namespaceURI;
    123 
    124       domImpl = doc.implementation;
    125 newDoc = domImpl.createDocument(rootNS,rootName,nullDocType);
    126       childList = doc.getElementsByTagName("acronym");
    127       element = childList.item(3);
    128       attr = element.getAttributeNode("class");
    129       adoptedclass = newDoc.adoptNode(attr);
    130       
    131 	if(
    132 	
    133 	(adoptedclass != null)
    134 
    135 	) {
    136 	nodeName = adoptedclass.nodeName;
    137 
    138       nodeValue = adoptedclass.nodeValue;
    139 
    140       nodeType = adoptedclass.nodeType;
    141 
    142       attrOwnerElem = adoptedclass.ownerElement;
    143 
    144       isSpecified = adoptedclass.specified;
    145 
    146       assertEquals("documentadoptnode02_nodeName","class",nodeName);
    147        assertEquals("documentadoptnode02_nodeType",2,nodeType);
    148        assertNull("documentadoptnode02_ownerDoc",attrOwnerElem);
    149     assertTrue("documentadoptnode02_specified",isSpecified);
    150 firstChild = adoptedclass.firstChild;
    151 
    152       assertNotNull("firstChildNotNull",firstChild);
    153 firstChildValue = firstChild.nodeValue;
    154 
    155       
    156 	if(
    157 	("Y" == firstChildValue)
    158 	) {
    159 	secondChild = firstChild.nextSibling;
    160 
    161       assertNotNull("secondChildNotNull",secondChild);
    162 secondChildType = secondChild.nodeType;
    163 
    164       assertEquals("secondChildIsEntityReference",5,secondChildType);
    165        secondChildName = secondChild.nodeName;
    166 
    167       assertEquals("secondChildIsEnt1Reference","alpha",secondChildName);
    168        
    169 	}
    170 	
    171 		else {
    172 			assertEquals("documentadoptnode02_nodeValue","Y",nodeValue);
    173        
    174 		}
    175 	
    176 	}
    177 	
    178 }
    179 
    180 
    181 
    182 
    183 function runTest() {
    184    documentadoptnode02();
    185 }
    186