19
19
import org .w3c .dom .Document ;
20
20
import org .w3c .dom .DocumentType ;
21
21
import org .w3c .dom .Element ;
22
+ import org .w3c .dom .NodeList ;
22
23
import org .w3c .dom .Text ;
23
24
24
25
public class TestDOMModifications extends TestDOM {
@@ -84,11 +85,22 @@ public void test() throws Exception {
84
85
Assert .assertEquals (docType1 , doc1 .getLastChild ());
85
86
Assert .assertEquals (docType2 , doc2 .getFirstChild ());
86
87
Assert .assertEquals (root2 , doc2 .getLastChild ());
87
- doc2 .getChildNodes ();
88
+ Assert .assertNull (root2 .getChildNodes ().item (0 ));
89
+ Assert .assertNull (doc2 .getChildNodes ().item (-1 ));
88
90
// add attribute
89
91
root1 .setAttribute ("a1" , "v1" );
90
92
root2 .setAttribute ("a1" , "v1" );
91
93
checkDocument (doc1 , doc2 );
94
+ Assert .assertNull (root2 .getAttributeNode ("a1" ).getChildNodes ().item (0 ));
95
+ Assert .assertEquals (1 , root2 .getAttributes ().getLength ());
96
+ Assert .assertEquals ("v1" , root2 .getAttributes ().getNamedItem ("a1" ).getNodeValue ());
97
+ Assert .assertNull (root2 .getAttributes ().getNamedItem (null ));
98
+ Assert .assertNull (root2 .getAttributes ().getNamedItem ("a2" ));
99
+ Assert .assertEquals ("v1" , root2 .getAttributes ().item (0 ).getNodeValue ());
100
+ Assert .assertNull (root2 .getAttributes ().item (-1 ));
101
+ Assert .assertNull (root2 .getAttributes ().item (10 ));
102
+ Assert .assertNull (root2 .getAttributeNode ("a1" ).getAttributes ().getNamedItem ("test" ));
103
+ Assert .assertNull (root2 .getAttributeNode ("a1" ).getAttributes ().item (0 ));
92
104
// add attribute
93
105
root1 .setAttribute ("a2" , "v2" );
94
106
root2 .setAttribute ("a2" , "v2" );
@@ -130,6 +142,9 @@ public void test() throws Exception {
130
142
root1 .getAttributeNodeNS ("http://test3" , "b" ).setPrefix ("tutu" );
131
143
root2 .getAttributeNodeNS ("http://test3" , "b" ).setPrefix ("tutu" );
132
144
checkDocument (doc1 , doc2 );
145
+ root1 .getAttributeNodeNS ("http://test3" , "b" ).setPrefix ("test3" );
146
+ root2 .getAttributeNodeNS ("http://test3" , "b" ).setPrefix ("test3" );
147
+ checkDocument (doc1 , doc2 );
133
148
// change value
134
149
root1 .getAttributeNodeNS ("http://test3" , "b" ).setValue ("BB" );
135
150
root2 .getAttributeNodeNS ("http://test3" , "b" ).setValue ("BB" );
@@ -144,8 +159,8 @@ public void test() throws Exception {
144
159
a .getSchemaTypeInfo ();
145
160
a .setTextContent ("" );
146
161
// change value
147
- // TODO root2.setAttributeNodeNS(root2.getAttributeNodeNS("http://test3", "b").cloneNode(true));
148
- // TODO checkDocument(doc1, doc2);
162
+ root2 .setAttributeNodeNS (root2 .getAttributeNodeNS ("http://test3" , "b" ).cloneNode (true ));
163
+ checkDocument (doc1 , doc2 );
149
164
// remove attribute
150
165
root1 .removeAttributeNode (root1 .getAttributeNodeNS ("http://test3" , "b" ));
151
166
root2 .removeAttributeNode (root2 .getAttributeNodeNS ("http://test3" , "b" ));
@@ -246,6 +261,41 @@ public void test() throws Exception {
246
261
root2Clone = root2 .cloneNode (false );
247
262
checkElement (root1Clone , root2Clone );
248
263
Assert .assertFalse (root2Clone .hasChildNodes ());
264
+ // create element
265
+ XMLElement e = doc2 .createElementNS ("http://hello" , "hello:world" );
266
+ Assert .assertEquals ("http://hello" , e .getNamespaceURI ());
267
+ Assert .assertEquals ("hello" , e .getPrefix ());
268
+ Assert .assertEquals ("world" , e .getLocalName ());
269
+
270
+ e = doc2 .createElementNS (null , "empty" );
271
+ Assert .assertEquals ("empty" , e .getNodeName ());
272
+
273
+ a = doc2 .createAttribute ("myId" );
274
+ a .setValue ("myElement" );
275
+ e .addAttribute (a );
276
+ e .setIdAttribute ("myId" , true );
277
+ root2 .appendChild (e );
278
+
279
+ e = doc2 .getElementById ("myElement" );
280
+ Assert .assertNotNull (e );
281
+ Assert .assertEquals ("empty" , e .getNodeName ());
282
+ e = doc2 .getElementById ("myElement2" );
283
+ Assert .assertNull (e );
284
+
285
+ NodeList nodes = doc2 .getElementsByTagName ("empty" );
286
+ Assert .assertNotNull (nodes );
287
+ Assert .assertEquals (1 , nodes .getLength ());
288
+ e = (XMLElement )nodes .item (0 );
289
+
290
+ a = doc2 .createAttribute ("myId" );
291
+ a .setValue ("myElement2" );
292
+ e .setAttributeNodeNS (a );
293
+ e .setIdAttributeNode (a , true );
294
+ e = doc2 .getElementById ("myElement2" );
295
+ Assert .assertNotNull (e );
296
+ Assert .assertEquals ("empty" , e .getNodeName ());
297
+ e = doc2 .getElementById ("myElement" );
298
+ Assert .assertNull (e );
249
299
}
250
300
251
301
}
0 commit comments