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_nodeappendchildchildexists";
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    If the "newChild" is already in the tree, it is first
79    removed before the new one is appended.
80
81    Retrieve the "em" second employee and
82    append the first child to the end of the list.   After
83    the "appendChild(newChild)" method is invoked the first
84    child should be the one that was second and the last
85    child should be the one that was first.
86
87* @author Curt Arnold
88* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107
89* @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=246
90*/
91function hc_nodeappendchildchildexists() {
92   var success;
93    if(checkInitialization(builder, "hc_nodeappendchildchildexists") != null) return;
94    var doc;
95      var elementList;
96      var childList;
97      var childNode;
98      var newChild;
99      var memberNode;
100      var memberName;
101      var refreshedActual = new Array();
102
103      var actual = new Array();
104
105      var nodeType;
106      expected = new Array();
107      expected[0] = "strong";
108      expected[1] = "code";
109      expected[2] = "sup";
110      expected[3] = "var";
111      expected[4] = "acronym";
112      expected[5] = "em";
113
114      var appendedChild;
115
116      var docRef = null;
117      if (typeof(this.doc) != 'undefined') {
118        docRef = this.doc;
119      }
120      doc = load(docRef, "doc", "hc_staff");
121      elementList = doc.getElementsByTagName("p");
122      childNode = elementList.item(1);
123      childList = childNode.getElementsByTagName("*");
124      newChild = childList.item(0);
125      appendedChild = childNode.appendChild(newChild);
126      for(var indexN10085 = 0;indexN10085 < childList.length; indexN10085++) {
127      memberNode = childList.item(indexN10085);
128      memberName = memberNode.nodeName;
129
130      actual[actual.length] = memberName;
131
132	}
133   assertEqualsListAutoCase("element", "liveByTagName",expected,actual);
134       childList = childNode.childNodes;
135
136      for(var indexN1009C = 0;indexN1009C < childList.length; indexN1009C++) {
137      memberNode = childList.item(indexN1009C);
138      nodeType = memberNode.nodeType;
139
140
141	if(
142	(1 == nodeType)
143	) {
144	memberName = memberNode.nodeName;
145
146      refreshedActual[refreshedActual.length] = memberName;
147
148	}
149
150	}
151   assertEqualsListAutoCase("element", "refreshedChildNodes",expected,refreshedActual);
152
153}
154
155
156
157
158function runTest() {
159   hc_nodeappendchildchildexists();
160}
161