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/nodeisequalnode11";
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      var dupDocRef = null;
52      if (typeof(this.dupDoc) != 'undefined') {
53        dupDocRef = this.dupDoc;
54      }
55      docsLoaded += preload(dupDocRef, "dupDoc", "hc_staff");
56
57       if (docsLoaded == 2) {
58          setUpPageStatus = 'complete';
59       }
60    } catch(ex) {
61    	catchInitializationError(builder, ex);
62        setUpPageStatus = 'complete';
63    }
64}
65
66
67
68//
69//   This method is called on the completion of
70//      each asychronous load started in setUpTests.
71//
72//   When every synchronous loaded document has completed,
73//      the page status is changed which allows the
74//      body of the test to be executed.
75function loadComplete() {
76    if (++docsLoaded == 2) {
77        setUpPageStatus = 'complete';
78    }
79}
80
81
82/**
83*
84	Retreive the first element node whose localName is "p".  Import it into a new
85	Document with deep=false.  Using isEqualNode check if the original and the imported
86	Element Node are not equal the child nodes are different.
87	Import with deep and the should still be unequal if
88	validating since the
89	new document does not provide the same default attributes.
90	Import it into another instance of the source document
91	and then the imported node and the source should be equal.
92
93* @author IBM
94* @author Neil Delima
95* @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
96* @see http://www.w3.org/Bugs/Public/show_bug.cgi?id=529
97*/
98function nodeisequalnode11() {
99   var success;
100    if(checkInitialization(builder, "nodeisequalnode11") != null) return;
101    var doc;
102      var domImpl;
103      var employeeList;
104      var newDoc;
105      var dupDoc;
106      var elem1;
107      var elem2;
108      var elem3;
109      var elem4;
110      var isEqual;
111      var nullDocType = null;
112
113      var docElem;
114      var rootNS;
115      var rootName;
116
117      var docRef = null;
118      if (typeof(this.doc) != 'undefined') {
119        docRef = this.doc;
120      }
121      doc = load(docRef, "doc", "hc_staff");
122      docElem = doc.documentElement;
123
124      rootNS = docElem.namespaceURI;
125
126      rootName = docElem.tagName;
127
128      domImpl = doc.implementation;
129newDoc = domImpl.createDocument(rootNS,rootName,nullDocType);
130      employeeList = doc.getElementsByTagName("p");
131      elem1 = employeeList.item(0);
132      elem2 = newDoc.importNode(elem1,false);
133      isEqual = elem1.isEqualNode(elem2);
134      assertFalse("nodeisequalnodeFalse11",isEqual);
135elem3 = newDoc.importNode(elem1,true);
136      isEqual = elem1.isEqualNode(elem3);
137
138	if(
139	(getImplementationAttribute("validating") == true)
140	) {
141	assertFalse("deepImportNoDTD",isEqual);
142
143	}
144
145      var dupDocRef = null;
146      if (typeof(this.dupDoc) != 'undefined') {
147        dupDocRef = this.dupDoc;
148      }
149      dupDoc = load(dupDocRef, "dupDoc", "hc_staff");
150      elem4 = dupDoc.importNode(elem1,true);
151      isEqual = elem1.isEqualNode(elem4);
152      assertTrue("deepImportSameDTD",isEqual);
153
154}
155
156
157
158
159function runTest() {
160   nodeisequalnode11();
161}
162