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 22 package tests.org.w3c.dom; 23 24 import dalvik.annotation.TestTargets; 25 import dalvik.annotation.TestLevel; 26 import dalvik.annotation.TestTargetNew; 27 import dalvik.annotation.TestTargetClass; 28 29 import java.util.ArrayList; 30 import java.util.List; 31 32 import org.w3c.dom.DOMImplementation; 33 import org.w3c.dom.Document; 34 import org.w3c.dom.DocumentType; 35 import org.w3c.dom.DOMException; 36 37 import javax.xml.parsers.DocumentBuilder; 38 39 /** 40 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a 41 * DOMImplementation should raise NAMESPACE_ERR DOMException if parameter 42 * qualifiedName is malformed. 43 * 44 * Retrieve the DOMImplementation on the XMLNS Document. Invoke method 45 * createDocument(namespaceURI,qualifiedName,doctype) on the retrieved 46 * DOMImplementation with namespaceURI being the literal string 47 * "http://www.ecommerce.org/", qualifiedName as "prefix::local", and doctype as 48 * null. Method should raise NAMESPACE_ERR DOMException. 49 * 50 * @author NIST 51 * @author Mary Brady 52 * @see <a 53 * href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[@name='NAMESPACE_ERR'])">http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[@name='NAMESPACE_ERR'])</a> 54 * @see <a 55 * href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> 56 * @see <a 57 * href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[@name='DOMException']/descr/p[substring-before(.,':')='NAMESPACE_ERR'])">http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[@name='DOMException']/descr/p[substring-before(.,':')='NAMESPACE_ERR'])</a> 58 */ 59 @TestTargetClass(DOMImplementation.class) 60 public final class CreateDocument extends DOMTestCase { 61 62 DOMDocumentBuilderFactory factory; 63 64 DocumentBuilder builder; 65 66 protected void setUp() throws Exception { 67 super.setUp(); 68 try { 69 factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory 70 .getConfiguration1()); 71 builder = factory.getBuilder(); 72 } catch (Exception e) { 73 fail("Unexpected exception" + e.getMessage()); 74 } 75 } 76 77 protected void tearDown() throws Exception { 78 factory = null; 79 builder = null; 80 super.tearDown(); 81 } 82 83 /** 84 * Runs the test case. 85 * 86 * @throws Throwable 87 * Any uncaught exception causes test to fail 88 */ 89 @TestTargetNew( 90 level = TestLevel.PARTIAL, 91 notes = "Doesn't verify null as parameters.", 92 method = "createDocument", 93 args = {java.lang.String.class, java.lang.String.class, org.w3c.dom.DocumentType.class} 94 ) 95 public void testCreateDocument1() throws Throwable { 96 String namespaceURI = "http://www.ecommerce.org/"; 97 String malformedName = "prefix::local"; 98 Document doc; 99 DocumentType docType = null; 100 101 DOMImplementation domImpl; 102 103 doc = (Document) load("staffNS", builder); 104 domImpl = doc.getImplementation(); 105 106 boolean success = false; 107 try { 108 domImpl.createDocument(namespaceURI, malformedName, docType); 109 } catch (DOMException ex) { 110 success = (ex.code == DOMException.NAMESPACE_ERR); 111 } 112 assertTrue("throw_NAMESPACE_ERR", success); 113 114 } 115 @TestTargetNew( 116 level = TestLevel.PARTIAL, 117 notes = "Doesn't verify null as parameters.", 118 method = "createDocument", 119 args = {java.lang.String.class, java.lang.String.class, org.w3c.dom.DocumentType.class} 120 ) 121 public void testCreateDocument2() throws Throwable { 122 String namespaceURI = null; 123 124 String qualifiedName = "k:local"; 125 Document doc; 126 DocumentType docType = null; 127 128 DOMImplementation domImpl; 129 130 doc = (Document) load("staffNS", builder); 131 domImpl = doc.getImplementation(); 132 133 boolean success = false; 134 try { 135 domImpl.createDocument(namespaceURI, qualifiedName, docType); 136 } catch (DOMException ex) { 137 success = (ex.code == DOMException.NAMESPACE_ERR); 138 } 139 assertTrue("throw_NAMESPACE_ERR", success); 140 141 } 142 143 // public void testCreateDocument3() throws Throwable { 144 // String namespaceURI = "http://www.ecommerce.org/schema"; 145 // String qualifiedName = "namespaceURI:x"; 146 // Document doc; 147 // DocumentType docType; 148 // DOMImplementation domImpl; 149 // 150 // doc = (Document) load("staffNS", builder); 151 // docType = doc.getDoctype(); 152 // domImpl = doc.getImplementation(); 153 // 154 // boolean success = false; 155 // try { 156 // domImpl.createDocument(namespaceURI, qualifiedName, docType); 157 // } catch (DOMException ex) { 158 // success = (ex.code == DOMException.WRONG_DOCUMENT_ERR); 159 // } 160 // assertTrue("throw_WRONG_DOCUMENT_ERR", success); 161 // 162 // } 163 164 // public void testCreateDocument4() throws Throwable { 165 // String namespaceURI = "http://www.ecommerce.org/schema"; 166 // String qualifiedName = "namespaceURI:x"; 167 // Document doc; 168 // DocumentType docType; 169 // DOMImplementation domImpl; 170 // Document aNewDoc; 171 // doc = (Document) load("staffNS", builder); 172 // aNewDoc = (Document) load("staffNS", builder); 173 // docType = doc.getDoctype(); 174 // domImpl = aNewDoc.getImplementation(); 175 // 176 // boolean success = false; 177 // try { 178 // aNewDoc = domImpl.createDocument(namespaceURI, qualifiedName, 179 // docType); 180 // } catch (DOMException ex) { 181 // success = (ex.code == DOMException.WRONG_DOCUMENT_ERR); 182 // } 183 // assertTrue("throw_WRONG_DOCUMENT_ERR", success); 184 // 185 // } 186 @TestTargetNew( 187 level = TestLevel.PARTIAL, 188 notes = "Doesn't verify null as parameters.", 189 method = "createDocument", 190 args = {java.lang.String.class, java.lang.String.class, org.w3c.dom.DocumentType.class} 191 ) 192 public void testCreateDocument5() throws Throwable { 193 String namespaceURI = "http://www.ecommerce.org/schema"; 194 String qualifiedName; 195 Document doc; 196 DocumentType docType = null; 197 198 DOMImplementation domImpl; 199 200 List<String> illegalQNames = new ArrayList<String>(); 201 illegalQNames.add("namespaceURI:{"); 202 illegalQNames.add("namespaceURI:}"); 203 illegalQNames.add("namespaceURI:~"); 204 illegalQNames.add("namespaceURI:'"); 205 illegalQNames.add("namespaceURI:!"); 206 illegalQNames.add("namespaceURI:@"); 207 illegalQNames.add("namespaceURI:#"); 208 illegalQNames.add("namespaceURI:$"); 209 illegalQNames.add("namespaceURI:%"); 210 illegalQNames.add("namespaceURI:^"); 211 illegalQNames.add("namespaceURI:&"); 212 illegalQNames.add("namespaceURI:*"); 213 illegalQNames.add("namespaceURI:("); 214 illegalQNames.add("namespaceURI:)"); 215 illegalQNames.add("namespaceURI:+"); 216 illegalQNames.add("namespaceURI:="); 217 illegalQNames.add("namespaceURI:["); 218 illegalQNames.add("namespaceURI:]"); 219 illegalQNames.add("namespaceURI:\\"); 220 illegalQNames.add("namespaceURI:/"); 221 illegalQNames.add("namespaceURI:;"); 222 illegalQNames.add("namespaceURI:`"); 223 illegalQNames.add("namespaceURI:<"); 224 illegalQNames.add("namespaceURI:>"); 225 illegalQNames.add("namespaceURI:,"); 226 illegalQNames.add("namespaceURI:a "); 227 illegalQNames.add("namespaceURI:\""); 228 229 doc = (Document) load("staffNS", builder); 230 for (int indexN1009A = 0; indexN1009A < illegalQNames.size(); indexN1009A++) { 231 qualifiedName = (String) illegalQNames.get(indexN1009A); 232 domImpl = doc.getImplementation(); 233 234 boolean success = false; 235 try { 236 domImpl.createDocument(namespaceURI, qualifiedName, docType); 237 } catch (DOMException ex) { 238 success = (ex.code == DOMException.INVALID_CHARACTER_ERR); 239 } 240 assertTrue("throw_INVALID_CHARACTER_ERR", success); 241 242 } 243 } 244 @TestTargetNew( 245 level = TestLevel.PARTIAL, 246 notes = "Doesn't verify null as parameters.", 247 method = "createDocument", 248 args = {java.lang.String.class, java.lang.String.class, org.w3c.dom.DocumentType.class} 249 ) 250 public void testCreateDocument6() throws Throwable { 251 String namespaceURI = "http://ecommerce.org/schema"; 252 String qualifiedName = "xml:local"; 253 Document doc; 254 DocumentType docType = null; 255 256 DOMImplementation domImpl; 257 258 doc = (Document) load("staffNS", builder); 259 domImpl = doc.getImplementation(); 260 261 boolean success = false; 262 try { 263 domImpl.createDocument(namespaceURI, qualifiedName, docType); 264 } catch (DOMException ex) { 265 success = (ex.code == DOMException.NAMESPACE_ERR); 266 } 267 assertTrue("throw_NAMESPACE_ERR", success); 268 269 } 270 @TestTargetNew( 271 level = TestLevel.PARTIAL, 272 notes = "Doesn't verify null as parameters.", 273 method = "createDocument", 274 args = {java.lang.String.class, java.lang.String.class, org.w3c.dom.DocumentType.class} 275 ) 276 public void testCreateDocument7() throws Throwable { 277 String namespaceURI = "http://www.ecommerce.org/schema"; 278 String qualifiedName = "y:x"; 279 Document doc; 280 DocumentType docType = null; 281 282 DOMImplementation domImpl; 283 Document aNewDoc; 284 String nodeName; 285 String nodeValue; 286 doc = (Document) load("staffNS", builder); 287 domImpl = doc.getImplementation(); 288 aNewDoc = domImpl.createDocument(namespaceURI, qualifiedName, docType); 289 nodeName = aNewDoc.getNodeName(); 290 nodeValue = aNewDoc.getNodeValue(); 291 assertEquals("nodeName", "#document", nodeName); 292 assertNull("nodeValue", nodeValue); 293 } 294 @TestTargetNew( 295 level = TestLevel.PARTIAL, 296 notes = "Doesn't verify null as parameters.", 297 method = "createDocument", 298 args = {java.lang.String.class, java.lang.String.class, org.w3c.dom.DocumentType.class} 299 ) 300 public void testCreateDocument8() throws Throwable { 301 String namespaceURI = "http://www.example.org/schema"; 302 DocumentType docType = null; 303 304 DOMImplementation domImpl; 305 306 domImpl = builder.getDOMImplementation(); 307 308 // BEGIN android-changed 309 // Our exception priorities differ from the spec 310 try { 311 domImpl.createDocument(namespaceURI, "", docType); 312 fail(); 313 } catch (DOMException ex) { 314 } 315 // END android-changed 316 } 317 } 318