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/level1/core/hc_nodechildnodesappendchild";
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    The NodeList returned by the "getChildNodes()" method
79    is live.   Changes on the node's children are immediately
80    reflected on the nodes returned in the NodeList.
81
82    Create a NodeList of the children of the second employee
83    and then add a newly created element that was created
84    by the "createElement()" method(Document Interface) to
85    the second employee by using the "appendChild()" method.
86    The length of the NodeList should reflect this new
87    addition to the child list.   It should return the value 14.
88
89* @author Curt Arnold
90* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987
91* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107
92* @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=246
93* @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=247
94*/
95function hc_nodechildnodesappendchild() {
96   var success;
97    if(checkInitialization(builder, "hc_nodechildnodesappendchild") != null) return;
98    var doc;
99      var elementList;
100      var employeeNode;
101      var childList;
102      var createdNode;
103      var childNode;
104      var childName;
105      var childType;
106      var textNode;
107      var actual = new Array();
108
109      expected = new Array();
110      expected[0] = "em";
111      expected[1] = "strong";
112      expected[2] = "code";
113      expected[3] = "sup";
114      expected[4] = "var";
115      expected[5] = "acronym";
116      expected[6] = "br";
117
118
119      var docRef = null;
120      if (typeof(this.doc) != 'undefined') {
121        docRef = this.doc;
122      }
123      doc = load(docRef, "doc", "hc_staff");
124      elementList = doc.getElementsByTagName("p");
125      employeeNode = elementList.item(1);
126      childList = employeeNode.childNodes;
127
128      createdNode = doc.createElement("br");
129      employeeNode = employeeNode.appendChild(createdNode);
130      for(var indexN10087 = 0;indexN10087 < childList.length; indexN10087++) {
131      childNode = childList.item(indexN10087);
132      childName = childNode.nodeName;
133
134      childType = childNode.nodeType;
135
136
137	if(
138	(1 == childType)
139	) {
140	actual[actual.length] = childName;
141
142	}
143
144		else {
145			assertEquals("textNodeType",3,childType);
146
147		}
148
149	}
150   assertEqualsListAutoCase("element", "childElements",expected,actual);
151
152}
153
154
155
156
157function runTest() {
158   hc_nodechildnodesappendchild();
159}
160