DocumentBuilderTest.java revision 5ab82b77afbc8af3b91e90ab46b0a7cc0a090f04
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License. 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.xml.parsers; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport dalvik.annotation.KnownFailure; 20c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport dalvik.annotation.TestLevel; 21c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport dalvik.annotation.TestTargetClass; 22c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport dalvik.annotation.TestTargetNew; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMImplementation; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Element; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.EntityReference; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Text; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.EntityResolver; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ErrorHandler; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.InputSource; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXParseException; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.org.xml.sax.support.MethodLogger; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.org.xml.sax.support.MockHandler; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.org.xml.sax.support.MockResolver; 371ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilsonimport tests.support.resource.Support_Resources; 38c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport tests.util.TestEnvironment; 39c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson 40c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport javax.xml.parsers.DocumentBuilder; 41c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport javax.xml.parsers.DocumentBuilderFactory; 42c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.ByteArrayInputStream; 43c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.File; 44c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.FileInputStream; 45c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.IOException; 46c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.InputStream; 475ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilsonimport java.net.URL; 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@TestTargetClass(DocumentBuilder.class) 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DocumentBuilderTest extends TestCase { 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private class MockDocumentBuilder extends DocumentBuilder { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MockDocumentBuilder() { 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#getDOMImplementation() 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public DOMImplementation getDOMImplementation() { 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#isNamespaceAware() 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isNamespaceAware() { 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#isValidating() 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isValidating() { 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#newDocument() 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Document newDocument() { 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#parse(org.xml.sax.InputSource) 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Document parse(InputSource is) throws SAXException, IOException { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#setEntityResolver( 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * org.xml.sax.EntityResolver) 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setEntityResolver(EntityResolver er) { 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#setErrorHandler( 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * org.xml.sax.ErrorHandler) 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setErrorHandler(ErrorHandler eh) { 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object clone() throws CloneNotSupportedException { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return super.clone(); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilderFactory dbf; 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilder db; 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 131c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson TestEnvironment.reset(); 132c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf = DocumentBuilderFactory.newInstance(); 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setIgnoringElementContentWhitespace(true); 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "DocumentBuilder", 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDocumentBuilder() { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new MockDocumentBuilder(); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("unexpected exception " + e.toString()); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.DocumentBuilder#getSchema() 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * TBD getSchema() is not supported 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* public void test_getSchema() { 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(db.getSchema()); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory sf = 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Schema schema = sf.newSchema(); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setSchema(schema); 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(dbf.newDocumentBuilder().getSchema()); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ParserConfigurationException pce) { 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected ParserConfigurationException " + pce.toString()); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "newDocument", 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = { } 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testNewDocument() { 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d; 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = dbf.newDocumentBuilder().newDocument(); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(d.getDoctype()); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(d.getDocumentElement()); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(d.getNamespaceURI()); 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getDOMImplementation", 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = { } 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetImplementation() { 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DOMImplementation d; 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = dbf.newDocumentBuilder().getDOMImplementation(); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "isNamespaceAware", 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsNamespaceAware() { 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setNamespaceAware(true); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(dbf.newDocumentBuilder().isNamespaceAware()); 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setNamespaceAware(false); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(dbf.newDocumentBuilder().isNamespaceAware()); 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "No validating parser in Android, hence not tested", 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "isValidating", 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsValidating() { 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setValidating(false); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(dbf.newDocumentBuilder().isValidating()); 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "No XInclude-aware parser in Android, hence not tested", 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "isXIncludeAware", 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @KnownFailure("Should handle XIncludeAware flag more gracefully") 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsXIncludeAware() { 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setXIncludeAware(false); 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(dbf.newDocumentBuilder().isXIncludeAware()); 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 266c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson * Tests that the Base URI for the document is populated with the file URI. 267c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson */ 268c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson @TestTargetNew( 269c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson level = TestLevel.COMPLETE, 270c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson notes = "", 271c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson method = "parse", 272c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson args = {java.io.File.class} 273c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson ) 274c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson public void testGetBaseURI() throws IOException, SAXException { 2751ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilson File f = Support_Resources.resourceToTempFile("/simple.xml"); 276c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson Document d = db.parse(f); 277c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson assertTrue(d.getDocumentElement().getBaseURI().startsWith("file://")); 278c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson } 279c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson 280c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson /** 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.DocumentBuilder#parse(java.io.File) 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "parse", 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.io.File.class} 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 29306739ed0b37e8a6fad76cdd59e8bb29f8aa813b6Jorg Pleumann public void test_parseLjava_io_File() throws IOException { 2941ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilson File f = Support_Resources.resourceToTempFile("/simple.xml"); 29506739ed0b37e8a6fad76cdd59e8bb29f8aa813b6Jorg Pleumann 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(f); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TBD getXmlEncoding() IS NOT SUPPORTED 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assertEquals("ISO-8859-1", d.getXmlEncoding()); 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, d.getChildNodes().getLength()); 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("breakfast_menu", 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((File)null); 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(new File("_")); 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 3361ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilson f = Support_Resources.resourceToTempFile("/wrong.xml"); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(f); 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream) 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "parse", 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.io.InputStream.class} 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_parseLjava_io_InputStream() { 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is = getClass().getResourceAsStream("/simple.xml"); 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(is); 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TBD getXmlEncoding() IS NOT SUPPORTED 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assertEquals("ISO-8859-1", d.getXmlEncoding()); 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, d.getChildNodes().getLength()); 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("breakfast_menu", 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((InputStream)null); 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(new FileInputStream("_")); 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = getClass().getResourceAsStream("/wrong.xml"); 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(is); 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream) 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "parse", 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = { InputSource.class } 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParseInputSource() { 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream stream = getClass().getResourceAsStream("/simple.xml"); 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputSource is = new InputSource(stream); 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(is); 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TBD getXmlEncoding() IS NOT SUPPORTED 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assertEquals("ISO-8859-1", d.getXmlEncoding()); 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, d.getChildNodes().getLength()); 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("breakfast_menu", 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((InputSource)null); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(new InputSource(new FileInputStream("_"))); 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = new InputSource(getClass().getResourceAsStream("/wrong.xml")); 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(is); 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream, 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.String) 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "parse", 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.io.InputStream.class, java.lang.String.class} 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_parseLjava_io_InputStreamLjava_lang_String() { 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is = getClass().getResourceAsStream("/systemid.xml"); 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(is, SAXParserTestSupport.XML_SYSTEM_ID); 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// TBD getXmlEncoding() is not supported 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertEquals("UTF-8", d.getXmlEncoding()); 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(4, d.getChildNodes().getLength()); 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("collection", 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("collection", 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(2).getNodeName()); 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(3).getNodeName()); 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((InputStream)null, SAXParserTestSupport.XML_SYSTEM_ID); 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Doesn't make sense this way... 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// db.parse(is, "/"); 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("Expected IOException was not thrown"); 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (IOException ioe) { 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// // expected 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (SAXException sax) { 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("Unexpected SAXException " + sax.toString()); 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = getClass().getResourceAsStream("/wrong.xml"); 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(is, SAXParserTestSupport.XML_SYSTEM_ID); 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.DocumentBuilder#parse(java.lang.String) 555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent uri. 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "parse", 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 566bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson public void test_parseLjava_lang_String() throws Exception { 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 5685ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson URL resource = getClass().getResource("/simple.xml"); 5695ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson Document d = db.parse(resource.toString()); 570bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertNotNull(d); 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// TBD getXmlEncoding() is not supported 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertEquals("ISO-8859-1", d.getXmlEncoding()); 573bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertEquals(2, d.getChildNodes().getLength()); 574bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertEquals("#comment", 575bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson d.getChildNodes().item(0).getNodeName()); 576bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertEquals("breakfast_menu", 577bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson d.getChildNodes().item(1).getNodeName()); 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((String)null); 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent uri 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse("_"); 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 5975ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson resource = getClass().getResource("/wrong.xml"); 5985ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson db.parse(resource.toString()); 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "reset", 608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = { } 609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @KnownFailure("Android DocumentBuilder should implement reset() properly") 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testReset() { 612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Make sure EntityResolver gets reset 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream source = new ByteArrayInputStream("<a>&foo;</a>".getBytes()); 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream entity = new ByteArrayInputStream("bar".getBytes()); 615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockResolver resolver = new MockResolver(); 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project resolver.addEntity("foo", "foo", new InputSource(entity)); 618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d; 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setEntityResolver(resolver); 624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.reset(); 625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element root = (Element)d.getElementsByTagName("a").item(0); 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("foo", ((EntityReference)root.getFirstChild()).getNodeName()); 632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Make sure ErrorHandler gets reset 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project source = new ByteArrayInputStream("</a>".getBytes()); 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MethodLogger logger = new MethodLogger(); 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ErrorHandler handler = new MockHandler(logger); 638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setErrorHandler(handler); 642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.reset(); 643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXParseException e) { 645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(0, logger.size()); 651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setErrorHandler", 656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = { ErrorHandler.class } 657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetErrorHandler() { 659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream source = new ByteArrayInputStream("</a>".getBytes()); 661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MethodLogger logger = new MethodLogger(); 663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ErrorHandler handler = new MockHandler(logger); 664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setErrorHandler(handler); 668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(source); 669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXParseException e) { 670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected, ErrorHandler does not mask exception 671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("error", logger.getMethod()); 676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(logger.getArgs()[0] instanceof SAXParseException); 677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // null case 679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project source = new ByteArrayInputStream("</a>".getBytes()); 680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setErrorHandler(null); 684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(source); 685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXParseException e) { 686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setEntityResolver", 695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = { EntityResolver.class } 696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @KnownFailure("Android DocumentBuilder should support entity resolving") 698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetEntityResolver() { 699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream source = new ByteArrayInputStream("<a>&foo;</a>".getBytes()); 701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream entity = new ByteArrayInputStream("bar".getBytes()); 702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockResolver resolver = new MockResolver(); 704adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project resolver.addEntity("foo", "foo", new InputSource(entity)); 705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d; 707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setEntityResolver(resolver); 711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element root = (Element)d.getElementsByTagName("a").item(0); 717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("bar", ((Text)root.getFirstChild()).getData()); 718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // null case 720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project source = new ByteArrayInputStream("<a>&foo;</a>".getBytes()); 721adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setEntityResolver(null); 725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project root = (Element)d.getElementsByTagName("a").item(0); 731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("foo", ((EntityReference)root.getFirstChild()).getNodeName()); 732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 735