1/* 2 This Java source file was generated by test-to-java.xsl 3 and is a derived work from the source document. 4 The source document contained the following notice: 5 6 7 8 Copyright (c) 2001 World Wide Web Consortium, 9 (Massachusetts Institute of Technology, Institut National de 10 Recherche en Informatique et en Automatique, Keio University). All 11 Rights Reserved. This program is distributed under the W3C's Software 12 Intellectual Property License. This program is distributed in the 13 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 15 PURPOSE. 16 17 See W3C License http://www.w3.org/Consortium/Legal/ for more details. 18 19 20 */ 21 22package tests.org.w3c.dom; 23 24import org.w3c.dom.NamedNodeMap; 25import org.w3c.dom.Document; 26import org.w3c.dom.Attr; 27import org.w3c.dom.Node; 28import org.w3c.dom.NodeList; 29import org.w3c.dom.Element; 30import org.w3c.dom.DOMException; 31import org.w3c.dom.DOMImplementation; 32import org.w3c.dom.DocumentType; 33 34import javax.xml.parsers.DocumentBuilder; 35 36/** 37 * The method setNamedItemNS adds a node using its namespaceURI and localName. 38 * If a node with that namespace URI and that local name is already present in 39 * this map, it is replaced by the new one. 40 * 41 * Retreive the first element whose localName is address and namespaceURI 42 * http://www.nist.gov", and put its attributes into a named node map. Create a 43 * new attribute node and add it to this map. Verify if the attr node was 44 * successfully added by checking the nodeName of the retreived atttribute. 45 * 46 * @author IBM 47 * @author Neil Delima 48 * @see <a 49 * href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a> 50 */ 51public final class NamedNodeMapSetNamedItemNS extends DOMTestCase { 52 53 DOMDocumentBuilderFactory factory; 54 55 DocumentBuilder builder; 56 57 protected void setUp() throws Exception { 58 super.setUp(); 59 try { 60 // Changed to configuration #2. This test case just doesn't make 61 // sense without a namespace-aware parser. It actually fails even 62 // on the JDK in that case. 63 factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory 64 .getConfiguration2()); 65 builder = factory.getBuilder(); 66 } catch (Exception e) { 67 fail("Unexpected exception" + e.getMessage()); 68 } 69 } 70 71 protected void tearDown() throws Exception { 72 factory = null; 73 builder = null; 74 super.tearDown(); 75 } 76 77 /** 78 * Runs the test case. 79 * 80 * @throws Throwable 81 * Any uncaught exception causes test to fail 82 */ 83 public void testSetNamedItemNS1() throws Throwable { 84 Document doc; 85 NamedNodeMap attributes; 86 Node element; 87 Attr attribute; 88 89 Attr newAttr1; 90 NodeList elementList; 91 String attrName; 92 doc = (Document) load("staffNS", builder); 93 elementList = doc.getElementsByTagNameNS("http://www.nist.gov", 94 "address"); 95 element = elementList.item(0); 96 attributes = element.getAttributes(); 97 newAttr1 = doc.createAttributeNS("http://www.w3.org/DOM/L1", "streets"); 98 ((Element) /* Node */element).setAttributeNodeNS(newAttr1); 99 attribute = (Attr) attributes.getNamedItemNS( 100 "http://www.w3.org/DOM/L1", "streets"); 101 attrName = attribute.getNodeName(); 102 assertEquals("namednodemapsetnameditemns01", "streets", attrName); 103 } 104 public void testSetNamedItemNS2() throws Throwable { 105 Document doc; 106 NamedNodeMap attributes; 107 Element element; 108 Attr attribute; 109 Attr attribute1; 110 111 String attrName; 112 doc = (Document) load("staffNS", builder); 113 element = doc.createElementNS("http://www.w3.org/DOM/Test", "root"); 114 attribute1 = doc 115 .createAttributeNS("http://www.w3.org/DOM/L1", "L1:att"); 116 attributes = element.getAttributes(); 117 attributes.setNamedItemNS(attribute1); 118 attribute = (Attr) attributes.getNamedItemNS( 119 "http://www.w3.org/DOM/L1", "att"); 120 attrName = attribute.getNodeName(); 121 assertEquals("namednodemapsetnameditemns02", "L1:att", attrName); 122 } 123 public void testSetNamedItemNS3() throws Throwable { 124 125 Document doc; 126 Document docAlt; 127 NamedNodeMap attributes; 128 NamedNodeMap attributesAlt; 129 NodeList elementList; 130 NodeList elementListAlt; 131 Element element; 132 Element elementAlt; 133 Attr attr; 134 135 String nullNS = null; 136 137 doc = (Document) load("staffNS", builder); 138 elementList = doc.getElementsByTagNameNS("*", "address"); 139 element = (Element) elementList.item(1); 140 attributes = element.getAttributes(); 141 docAlt = (Document) load("staffNS", builder); 142 elementListAlt = docAlt.getElementsByTagNameNS("*", "address"); 143 elementAlt = (Element) elementListAlt.item(1); 144 attributesAlt = elementAlt.getAttributes(); 145 attr = (Attr) attributesAlt.getNamedItemNS(nullNS, "street"); 146 attributesAlt.removeNamedItemNS(nullNS, "street"); 147 148 { 149 boolean success = false; 150 try { 151 attributes.setNamedItemNS(attr); 152 } catch (DOMException ex) { 153 success = (ex.code == DOMException.WRONG_DOCUMENT_ERR); 154 } 155 assertTrue("throw_WRONG_DOCUMENT_ERR", success); 156 } 157 } 158 public void testSetNamedItemNS4() throws Throwable { 159 Document doc; 160 DOMImplementation domImpl; 161 Document docAlt; 162 DocumentType docType = null; 163 164 NamedNodeMap attributes; 165 NodeList elementList; 166 Element element; 167 Attr attrAlt; 168 169 String nullNS = null; 170 171 doc = (Document) load("staffNS", builder); 172 elementList = doc.getElementsByTagNameNS("*", "address"); 173 element = (Element) elementList.item(1); 174 attributes = element.getAttributes(); 175 domImpl = doc.getImplementation(); 176 docAlt = domImpl.createDocument(nullNS, "newDoc", docType); 177 attrAlt = docAlt.createAttributeNS(nullNS, "street"); 178 179 { 180 boolean success = false; 181 try { 182 attributes.setNamedItemNS(attrAlt); 183 } catch (DOMException ex) { 184 success = (ex.code == DOMException.WRONG_DOCUMENT_ERR); 185 } 186 assertTrue("throw_WRONG_DOCUMENT_ERR", success); 187 } 188 } 189 190// Assumes validation. 191// public void testSetNamedItemNS5() throws Throwable { 192// Document doc; 193// DocumentType docType; 194// NamedNodeMap entities; 195// NamedNodeMap notations; 196// Entity entity; 197// Notation notation; 198// 199// doc = (Document) load("staffNS", builder); 200// docType = doc.getDoctype(); 201// entities = docType.getEntities(); 202// assertNotNull("entitiesNotNull", entities); 203// notations = docType.getNotations(); 204// assertNotNull("notationsNotNull", notations); 205// entity = (Entity) entities.getNamedItem("ent1"); 206// notation = (Notation) notations.getNamedItem("notation1"); 207// 208// { 209// boolean success = false; 210// try { 211// entities.setNamedItemNS(entity); 212// } catch (DOMException ex) { 213// success = (ex.code == DOMException.NO_MODIFICATION_ALLOWED_ERR); 214// } 215// assertTrue("throw_NO_MODIFICATION_ALLOWED_ERR_entities", success); 216// } 217// 218// { 219// boolean success = false; 220// try { 221// notations.setNamedItemNS(notation); 222// } catch (DOMException ex) { 223// success = (ex.code == DOMException.NO_MODIFICATION_ALLOWED_ERR); 224// } 225// assertTrue("throw_NO_MODIFICATION_ALLOWED_ERR_notations", success); 226// } 227// } 228 public void testSetNamedItemNS6() throws Throwable { 229 Document doc; 230 NamedNodeMap attributes; 231 NodeList elementList; 232 Element element; 233 Attr attr; 234 235 doc = (Document) load("staffNS", builder); 236 elementList = doc.getElementsByTagNameNS("*", "address"); 237 element = (Element) elementList.item(0); 238 attributes = element.getAttributes(); 239 attr = (Attr) attributes.getNamedItemNS("http://www.usa.com", 240 "domestic"); 241 element = (Element) elementList.item(1); 242 attributes = element.getAttributes(); 243 244 { 245 boolean success = false; 246 try { 247 attributes.setNamedItemNS(attr); 248 } catch (DOMException ex) { 249 success = (ex.code == DOMException.INUSE_ATTRIBUTE_ERR); 250 } 251 assertTrue("namednodemapsetnameditemns06", success); 252 } 253 } 254 public void testSetNamedItemNS7() throws Throwable { 255 Document doc; 256 NamedNodeMap attributes; 257 NodeList elementList; 258 Element element; 259 Attr attr; 260 261 doc = (Document) load("staffNS", builder); 262 elementList = doc.getElementsByTagNameNS("*", "address"); 263 element = (Element) elementList.item(0); 264 attributes = element.getAttributes(); 265 attr = (Attr) attributes.getNamedItemNS("http://www.usa.com", 266 "domestic"); 267 element = (Element) elementList.item(1); 268 attributes = element.getAttributes(); 269 270 { 271 boolean success = false; 272 try { 273 attributes.setNamedItemNS(attr); 274 } catch (DOMException ex) { 275 success = (ex.code == DOMException.INUSE_ATTRIBUTE_ERR); 276 } 277 assertTrue("namednodemapsetnameditemns07", success); 278 } 279 } 280 public void testSetNamedItemNS8() throws Throwable { 281 Document doc; 282 NamedNodeMap attributes; 283 NodeList elementList; 284 Element element; 285 Attr attr; 286 287 doc = (Document) load("staffNS", builder); 288 elementList = doc.getElementsByTagNameNS("*", "address"); 289 element = (Element) elementList.item(0); 290 attributes = element.getAttributes(); 291 attr = (Attr) attributes.getNamedItemNS("http://www.usa.com", 292 "domestic"); 293 element = (Element) elementList.item(1); 294 attributes = element.getAttributes(); 295 296 { 297 boolean success = false; 298 try { 299 attributes.setNamedItemNS(attr); 300 } catch (DOMException ex) { 301 success = (ex.code == DOMException.INUSE_ATTRIBUTE_ERR); 302 } 303 assertTrue("namednodemapsetnameditemns08", success); 304 } 305 } 306 307// Assumes validation. 308// public void testSetNamedItemNS9() throws Throwable { 309// Document doc; 310// DocumentType docType; 311// NamedNodeMap entities; 312// NamedNodeMap notations; 313// Attr attr; 314// doc = (Document) load("staffNS", builder); 315// docType = doc.getDoctype(); 316// entities = docType.getEntities(); 317// notations = docType.getNotations(); 318// attr = doc.createAttributeNS("http://www.w3.org/DOM/Test", "test"); 319// 320// { 321// boolean success = false; 322// try { 323// entities.setNamedItemNS(attr); 324// } catch (DOMException ex) { 325// success = (ex.code == DOMException.NO_MODIFICATION_ALLOWED_ERR); 326// } 327// assertTrue("throw_NO_MODIFICATION_ALLOWED_ERR_entities", success); 328// } 329// 330// { 331// boolean success = false; 332// try { 333// notations.setNamedItemNS(attr); 334// } catch (DOMException ex) { 335// success = (ex.code == DOMException.NO_MODIFICATION_ALLOWED_ERR); 336// } 337// assertTrue("throw_NO_MODIFICATION_ALLOWED_ERR_notations", success); 338// } 339// } 340 341// Assumes validation. 342// public void testSetNamedItemNS10() throws Throwable { 343// Document doc; 344// DocumentType docType; 345// NamedNodeMap entities; 346// NamedNodeMap attributes; 347// Entity entity; 348// 349// Element element; 350// NodeList elementList; 351// 352// doc = (Document) load("staffNS", builder); 353// docType = doc.getDoctype(); 354// entities = docType.getEntities(); 355// assertNotNull("entitiesNotNull", entities); 356// entity = (Entity) entities.getNamedItem("ent1"); 357// elementList = doc.getElementsByTagNameNS("http://www.nist.gov", 358// "address"); 359// element = (Element) elementList.item(0); 360// attributes = element.getAttributes(); 361// 362// { 363// boolean success = false; 364// try { 365// attributes.setNamedItemNS(entity); 366// } catch (DOMException ex) { 367// success = (ex.code == DOMException.HIERARCHY_REQUEST_ERR); 368// } 369// assertTrue("throw_HIERARCHY_REQUEST_ERR", success); 370// } 371// } 372 373// Assumes validation. 374// public void testSetNamedItemNS11() throws Throwable { 375// Document doc; 376// DocumentType docType; 377// NamedNodeMap notations; 378// NamedNodeMap attributes; 379// Notation notation; 380// Element element; 381// NodeList elementList; 382// 383// doc = (Document) load("staffNS", builder); 384// docType = doc.getDoctype(); 385// notations = docType.getNotations(); 386// assertNotNull("notationsNotNull", notations); 387// notation = (Notation) notations.getNamedItem("notation1"); 388// elementList = doc.getElementsByTagNameNS("http://www.nist.gov", 389// "address"); 390// element = (Element) elementList.item(0); 391// attributes = element.getAttributes(); 392// 393// { 394// boolean success = false; 395// try { 396// attributes.setNamedItemNS(notation); 397// } catch (DOMException ex) { 398// success = (ex.code == DOMException.HIERARCHY_REQUEST_ERR); 399// } 400// assertTrue("throw_HIERARCHY_REQUEST_ERR", success); 401// } 402// } 403} 404