• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2/*
3Copyright © 2001-2004 World Wide Web Consortium,
4(Massachusetts Institute of Technology, European Research Consortium
5for Informatics and Mathematics, Keio University). All
6Rights Reserved. This work is distributed under the W3C® Software License [1] in the
7hope that it will be useful, but WITHOUT ANY WARRANTY; without even
8the 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    */
19function getTargetURI() {
20      return "http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentadoptnode06";
21   }
22
23var docsLoaded = -1000000;
24var 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//
35function 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.
69function loadComplete() {
70    if (++docsLoaded == 1) {
71        setUpPageStatus = 'complete';
72    }
73}
74
75
76/**
77*
78	Invoke adoptNode on a new document to adopt the a new Attribute node having a Text and an EntityReference
79	child.  Check if this attribute has been adopted successfully by verifying the nodeName, namespaceURI, prefix,
80	specified and ownerElement attributes of the adopted node.  Also verify the ownerDocument attribute
81	of the adopted node and the adopted children of the attribute node.
82
83* @author IBM
84* @author Neil Delima
85* @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
86*/
87function documentadoptnode06() {
88   var success;
89    if(checkInitialization(builder, "documentadoptnode06") != null) return;
90    var doc;
91      var newDoc;
92      var domImpl;
93      var newAttr;
94      var newText;
95      var newEntRef;
96      var adoptedAttr;
97      var adoptText;
98      var adoptEntRef;
99      var nodeList;
100      var nodeName;
101      var nodeNamespaceURI;
102      var nodePrefix;
103      var attrOwnerElem;
104      var isSpecified;
105      var adoptedTextNodeValue;
106      var adoptedEntRefNodeValue;
107      var nullDocType = null;
108
109      var appendedChild;
110      var docElem;
111      var rootNS;
112      var rootName;
113      var xmlNS = "http://www.w3.org/XML/1998/namespace";
114
115      var docRef = null;
116      if (typeof(this.doc) != 'undefined') {
117        docRef = this.doc;
118      }
119      doc = load(docRef, "doc", "hc_staff");
120      docElem = doc.documentElement;
121
122      rootName = docElem.tagName;
123
124      rootNS = docElem.namespaceURI;
125
126      domImpl = doc.implementation;
127newDoc = domImpl.createDocument(rootNS,rootName,nullDocType);
128      newAttr = doc.createAttributeNS(xmlNS,"xml:lang");
129      newText = doc.createTextNode("Text Node");
130      newEntRef = doc.createEntityReference("alpha");
131      appendedChild = newAttr.appendChild(newText);
132      appendedChild = newAttr.appendChild(newEntRef);
133      adoptedAttr = newDoc.adoptNode(newAttr);
134
135	if(
136
137	(adoptedAttr != null)
138
139	) {
140	nodeName = adoptedAttr.nodeName;
141
142      nodeNamespaceURI = adoptedAttr.namespaceURI;
143
144      nodePrefix = adoptedAttr.prefix;
145
146      attrOwnerElem = adoptedAttr.ownerElement;
147
148      isSpecified = adoptedAttr.specified;
149
150      assertEquals("documentadoptnode06_nodeName","xml:lang",nodeName);
151       assertEquals("documentadoptnode06_namespaceURI",xmlNS,nodeNamespaceURI);
152       assertEquals("documentadoptnode06_prefix","xml",nodePrefix);
153       assertNull("documentadoptnode06_ownerDoc",attrOwnerElem);
154    assertTrue("documentadoptnode06_specified",isSpecified);
155nodeList = adoptedAttr.childNodes;
156
157      adoptText = nodeList.item(0);
158      adoptEntRef = nodeList.item(1);
159      adoptedTextNodeValue = adoptText.nodeValue;
160
161      adoptedEntRefNodeValue = adoptEntRef.nodeName;
162
163      assertEquals("documentadoptnode06_TextNodeValue","Text Node",adoptedTextNodeValue);
164       assertEquals("documentadoptnode06_EntRefNodeValue","alpha",adoptedEntRefNodeValue);
165
166	}
167
168}
169
170
171
172
173function runTest() {
174   documentadoptnode06();
175}
176