DocumentBuilderTest.java revision 229e34b182b98e1dba15d3dc6341954986ae2b7a
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 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMImplementation; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Element; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.EntityReference; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Text; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.EntityResolver; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ErrorHandler; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.InputSource; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXParseException; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.org.xml.sax.support.MethodLogger; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.org.xml.sax.support.MockHandler; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.api.org.xml.sax.support.MockResolver; 331ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilsonimport tests.support.resource.Support_Resources; 34c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson 35c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport javax.xml.parsers.DocumentBuilder; 36c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport javax.xml.parsers.DocumentBuilderFactory; 37c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.ByteArrayInputStream; 38c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.File; 39c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.FileInputStream; 40c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.IOException; 41c36982772a413bb14eb6d865013aac03544441d1Jesse Wilsonimport java.io.InputStream; 425ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilsonimport java.net.URL; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class DocumentBuilderTest extends TestCase { 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private class MockDocumentBuilder extends DocumentBuilder { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MockDocumentBuilder() { 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(); 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#getDOMImplementation() 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public DOMImplementation getDOMImplementation() { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#isNamespaceAware() 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isNamespaceAware() { 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#isValidating() 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isValidating() { 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#newDocument() 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Document newDocument() { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#parse(org.xml.sax.InputSource) 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Document parse(InputSource is) throws SAXException, IOException { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#setEntityResolver( 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * org.xml.sax.EntityResolver) 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setEntityResolver(EntityResolver er) { 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see javax.xml.parsers.DocumentBuilder#setErrorHandler( 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * org.xml.sax.ErrorHandler) 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setErrorHandler(ErrorHandler eh) { 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // it is a fake 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object clone() throws CloneNotSupportedException { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return super.clone(); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilderFactory dbf; 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilder db; 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 125c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf = DocumentBuilderFactory.newInstance(); 127f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setIgnoringElementContentWhitespace(true); 129f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testDocumentBuilder() { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new MockDocumentBuilder(); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("unexpected exception " + e.toString()); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 147229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.xml.parsers.DocumentBuilder#getSchema() 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * TBD getSchema() is not supported 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* public void test_getSchema() { 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(db.getSchema()); 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory sf = 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Schema schema = sf.newSchema(); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setSchema(schema); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(dbf.newDocumentBuilder().getSchema()); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ParserConfigurationException pce) { 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected ParserConfigurationException " + pce.toString()); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testNewDocument() { 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d; 167f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = dbf.newDocumentBuilder().newDocument(); 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 173f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(d.getDoctype()); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(d.getDocumentElement()); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(d.getNamespaceURI()); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetImplementation() { 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DOMImplementation d; 182f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = dbf.newDocumentBuilder().getDOMImplementation(); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 188f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 191f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsNamespaceAware() { 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setNamespaceAware(true); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(dbf.newDocumentBuilder().isNamespaceAware()); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setNamespaceAware(false); 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(dbf.newDocumentBuilder().isNamespaceAware()); 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsValidating() { 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setValidating(false); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(dbf.newDocumentBuilder().isValidating()); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsXIncludeAware() { 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project dbf.setXIncludeAware(false); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(dbf.newDocumentBuilder().isXIncludeAware()); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 222c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson * Tests that the Base URI for the document is populated with the file URI. 223c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson */ 224c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson public void testGetBaseURI() throws IOException, SAXException { 2251ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilson File f = Support_Resources.resourceToTempFile("/simple.xml"); 226c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson Document d = db.parse(f); 227c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson assertTrue(d.getDocumentElement().getBaseURI().startsWith("file://")); 228c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson } 229c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson 230c36982772a413bb14eb6d865013aac03544441d1Jesse Wilson /** 231229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.xml.parsers.DocumentBuilder#parse(java.io.File) 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 23706739ed0b37e8a6fad76cdd59e8bb29f8aa813b6Jorg Pleumann public void test_parseLjava_io_File() throws IOException { 2381ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilson File f = Support_Resources.resourceToTempFile("/simple.xml"); 23906739ed0b37e8a6fad76cdd59e8bb29f8aa813b6Jorg Pleumann 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(f); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TBD getXmlEncoding() IS NOT SUPPORTED 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assertEquals("ISO-8859-1", d.getXmlEncoding()); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, d.getChildNodes().getLength()); 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("breakfast_menu", 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((File)null); 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(new File("_")); 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 2801ec94feeb09591c30996c7c0834d6f131e204922Jesse Wilson f = Support_Resources.resourceToTempFile("/wrong.xml"); 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(f); 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 292229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream) 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_parseLjava_io_InputStream() { 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is = getClass().getResourceAsStream("/simple.xml"); 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(is); 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // TBD getXmlEncoding() IS NOT SUPPORTED 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // assertEquals("ISO-8859-1", d.getXmlEncoding()); 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, d.getChildNodes().getLength()); 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("breakfast_menu", 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((InputStream)null); 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(new FileInputStream("_")); 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = getClass().getResourceAsStream("/wrong.xml"); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(is); 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 352229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream) 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParseInputSource() { 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream stream = getClass().getResourceAsStream("/simple.xml"); 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputSource is = new InputSource(stream); 361f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 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((InputSource)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 InputSource(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 = new InputSource(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 } 412f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 414229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream, 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.String) 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent file. 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_parseLjava_io_InputStreamLjava_lang_String() { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is = getClass().getResourceAsStream("/systemid.xml"); 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d = db.parse(is, SAXParserTestSupport.XML_SYSTEM_ID); 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(d); 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// TBD getXmlEncoding() is not supported 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertEquals("UTF-8", d.getXmlEncoding()); 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(4, d.getChildNodes().getLength()); 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("collection", 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(0).getNodeName()); 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(1).getNodeName()); 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("collection", 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(2).getNodeName()); 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("#comment", 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d.getChildNodes().item(3).getNodeName()); 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((InputStream)null, SAXParserTestSupport.XML_SYSTEM_ID); 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected SAXException " + sax.toString()); 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent file 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Doesn't make sense this way... 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// db.parse(is, "/"); 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("Expected IOException was not thrown"); 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (IOException ioe) { 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// // expected 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (SAXException sax) { 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("Unexpected SAXException " + sax.toString()); 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = getClass().getResourceAsStream("/wrong.xml"); 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(is, SAXParserTestSupport.XML_SYSTEM_ID); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected IOException " + ioe.toString()); 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 480229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.xml.parsers.DocumentBuilder#parse(java.lang.String) 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 1: Try to parse correct xml document. 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 2: Try to call parse() with null argument. 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 3: Try to parse a non-existent uri. 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Case 4: Try to parse incorrect xml file. 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 486bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson public void test_parseLjava_lang_String() throws Exception { 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 1: Trivial use. 4885ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson URL resource = getClass().getResource("/simple.xml"); 4895ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson Document d = db.parse(resource.toString()); 490bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertNotNull(d); 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// TBD getXmlEncoding() is not supported 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertEquals("ISO-8859-1", d.getXmlEncoding()); 493bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertEquals(2, d.getChildNodes().getLength()); 494bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertEquals("#comment", 495bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson d.getChildNodes().item(0).getNodeName()); 496bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson assertEquals("breakfast_menu", 497bda224da00c0372a7752b1304aeda98e2930c4afJesse Wilson d.getChildNodes().item(1).getNodeName()); 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 2: Try to call parse with null argument 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse((String)null); 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IllegalArgumentException was not thrown"); 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException iae) { 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 3: Try to parse a non-existent uri 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse("_"); 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected IOException was not thrown"); 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // case 4: Try to parse incorrect xml file 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 5175ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson resource = getClass().getResource("/wrong.xml"); 5185ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson db.parse(resource.toString()); 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected SAXException was not thrown"); 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testReset() { 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Make sure EntityResolver gets reset 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream source = new ByteArrayInputStream("<a>&foo;</a>".getBytes()); 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream entity = new ByteArrayInputStream("bar".getBytes()); 529f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockResolver resolver = new MockResolver(); 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project resolver.addEntity("foo", "foo", new InputSource(entity)); 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d; 534f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setEntityResolver(resolver); 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.reset(); 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 543f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element root = (Element)d.getElementsByTagName("a").item(0); 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("foo", ((EntityReference)root.getFirstChild()).getNodeName()); 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Make sure ErrorHandler gets reset 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project source = new ByteArrayInputStream("</a>".getBytes()); 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MethodLogger logger = new MethodLogger(); 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ErrorHandler handler = new MockHandler(logger); 552f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setErrorHandler(handler); 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.reset(); 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXParseException e) { 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 561f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes throw new RuntimeException("Unexpected exception", e); 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(0, logger.size()); 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetErrorHandler() { 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream source = new ByteArrayInputStream("</a>".getBytes()); 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MethodLogger logger = new MethodLogger(); 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ErrorHandler handler = new MockHandler(logger); 573f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setErrorHandler(handler); 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(source); 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXParseException e) { 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected, ErrorHandler does not mask exception 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 581f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes throw new RuntimeException("Unexpected exception", e); 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("error", logger.getMethod()); 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(logger.getArgs()[0] instanceof SAXParseException); 586f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 587f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes // null case 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project source = new ByteArrayInputStream("</a>".getBytes()); 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setErrorHandler(null); 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.parse(source); 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXParseException e) { 595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 597f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes throw new RuntimeException("Unexpected exception", e); 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 600f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetEntityResolver() { 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream source = new ByteArrayInputStream("<a>&foo;</a>".getBytes()); 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream entity = new ByteArrayInputStream("bar".getBytes()); 605f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockResolver resolver = new MockResolver(); 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project resolver.addEntity("foo", "foo", new InputSource(entity)); 608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document d; 610f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setEntityResolver(resolver); 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 618f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element root = (Element)d.getElementsByTagName("a").item(0); 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("bar", ((Text)root.getFirstChild()).getData()); 621f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 622f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes // null case 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project source = new ByteArrayInputStream("<a>&foo;</a>".getBytes()); 624f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db = dbf.newDocumentBuilder(); 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project db.setEntityResolver(null); 628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project d = db.parse(source); 629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 632f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project root = (Element)d.getElementsByTagName("a").item(0); 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("foo", ((EntityReference)root.getFirstChild()).getNodeName()); 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 638