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 17c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskipackage org.apache.harmony.tests.org.xml.sax.helpers; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskiimport org.apache.harmony.tests.org.xml.sax.support.MethodLogger; 24c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskiimport org.apache.harmony.tests.org.xml.sax.support.MockFilter; 25c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskiimport org.apache.harmony.tests.org.xml.sax.support.MockHandler; 26c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskiimport org.apache.harmony.tests.org.xml.sax.support.MockResolver; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Attributes; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ContentHandler; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.DTDHandler; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.EntityResolver; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ErrorHandler; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.InputSource; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Locator; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotRecognizedException; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotSupportedException; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXParseException; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.XMLReader; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.AttributesImpl; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.LocatorImpl; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.XMLFilterImpl; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class XMLFilterImplTest extends TestCase { 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Note: In many cases we can only test that delegation works 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // properly. The rest is outside the scope of the specification. 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private MethodLogger logger = new MethodLogger(); 50f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private MockHandler handler = new MockHandler(logger); 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private XMLFilterImpl parent = new MockFilter(logger); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private XMLFilterImpl child = new XMLFilterImpl(parent); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private XMLFilterImpl orphan = new XMLFilterImpl(); 58f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void assertEquals(Object[] a, Object[] b) { 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(a.length, b.length); 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < a.length; i++) { 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Element #" + i + " must be equal", a[i], b[i]); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setUp() { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setContentHandler(handler); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setDTDHandler(handler); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setErrorHandler(handler); 71f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setContentHandler(handler); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setDTDHandler(handler); 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setErrorHandler(handler); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 76f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testXMLFilterImpl() { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, parent.getParent()); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testXMLFilterImplXMLReader() { 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, parent.getParent()); 84f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // null case 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project XMLFilterImpl filter = new XMLFilterImpl(null); 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, filter.getParent()); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetParent() { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setParent(null); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, child.getParent()); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setParent(parent); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(parent, child.getParent()); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetFeature() { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setFeature("foo", true); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(true, child.getFeature("foo")); 103f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setFeature("foo", false); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(false, child.getFeature("foo")); 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No parent case 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project orphan.setFeature("foo", false); 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException expected"); 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetProperty() { 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setProperty("foo", "bar"); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("bar", child.getProperty("foo")); 128f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setProperty("foo", null); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, child.getProperty("foo")); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No parent case 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project orphan.setProperty("foo", "bar"); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException expected"); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetEntityResolver() { 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project EntityResolver resolver = new MockResolver(); 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setEntityResolver(resolver); 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(resolver, parent.getEntityResolver()); 153f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setEntityResolver(null); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, parent.getEntityResolver()); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetDTDHandler() { 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setDTDHandler(null); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, parent.getDTDHandler()); 161f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setDTDHandler(handler); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(handler, parent.getDTDHandler()); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetContentHandler() { 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setContentHandler(null); 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, parent.getContentHandler()); 169f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setContentHandler(handler); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(handler, parent.getContentHandler()); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetErrorHandler() { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setErrorHandler(null); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, parent.getErrorHandler()); 177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setErrorHandler(handler); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(handler, parent.getErrorHandler()); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParseInputSource() { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputSource is = new InputSource(); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.parse(is); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 193f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, logger.size()); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("parse", logger.getMethod()); 196f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No parent case 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project orphan.parse(is); 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParseString() { 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.parse("foo"); 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, logger.size()); 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("parse", logger.getMethod()); 222f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No parent case 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project orphan.parse("foo"); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testResolveEntity() { 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputSource expected = new InputSource(); 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockResolver resolver = new MockResolver(); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project resolver.addEntity("foo", "bar", expected); 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputSource result = null; 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setEntityResolver(resolver); 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = parent.resolveEntity("foo", "bar"); 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(expected, result); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // No entity resolver case 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.setEntityResolver(null); 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project result = parent.resolveEntity("foo", "bar"); 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, result); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testNotationDecl() { 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.notationDecl("foo", "bar", "foobar"); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("notationDecl", logger.getMethod()); 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo", "bar", "foobar" }, 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project logger.getArgs()); 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testUnparsedEntityDecl() { 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.unparsedEntityDecl("foo", "bar", "gabba", "hey"); 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("unparsedEntityDecl", logger.getMethod()); 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo", "bar", "gabba", "hey" }, 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project logger.getArgs()); 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetDocumentLocator() { 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locator l = new LocatorImpl(); 299f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setDocumentLocator(l); 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("setDocumentLocator", logger.getMethod()); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { l }, logger.getArgs()); 305f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project child.setDocumentLocator(null); 307f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 2); 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("setDocumentLocator", logger.getMethod()); 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { null }, logger.getArgs()); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testStartDocument() { 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.startDocument(); 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("startDocument", logger.getMethod()); 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] {}, logger.getArgs()); 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testEndDocument() { 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.endDocument(); 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("endDocument", logger.getMethod()); 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] {}, logger.getArgs()); 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testStartPrefixMapping() { 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.startPrefixMapping("foo", "http://some.uri"); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("startPrefixMapping", logger.getMethod()); 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo", "http://some.uri" }, 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project logger.getArgs()); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testEndPrefixMapping() { 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.endPrefixMapping("foo"); 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("endPrefixMapping", logger.getMethod()); 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo" }, logger.getArgs()); 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testStartElement() { 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attributes atts = new AttributesImpl(); 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.startElement("http://some.uri", "bar", "foo:bar", atts); 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("startElement", logger.getMethod()); 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "http://some.uri", "bar", "foo:bar", atts }, 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project logger.getArgs()); 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testEndElement() { 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.endElement("http://some.uri", "bar", "foo:bar"); 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 383f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("endElement", logger.getMethod()); 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "http://some.uri", "bar", "foo:bar" }, 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project logger.getArgs()); 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testCharacters() { 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] ch = "Android".toCharArray(); 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.characters(ch, 2, 5); 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("characters", logger.getMethod()); 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { ch, 2, 5 }, logger.getArgs()); 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIgnorableWhitespace() { 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] ch = " ".toCharArray(); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.ignorableWhitespace(ch, 0, 5); 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("ignorableWhitespace", logger.getMethod()); 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { ch, 0, 5 }, logger.getArgs()); 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testProcessingInstruction() { 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.processingInstruction("foo", "bar"); 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("processingInstruction", logger.getMethod()); 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo", "bar" }, logger.getArgs()); 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSkippedEntity() { 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.skippedEntity("foo"); 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("skippedEntity", logger.getMethod()); 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo" }, logger.getArgs()); 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testWarning() { 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParseException exception = new SAXParseException("Oops!", null); 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.warning(exception); 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("warning", logger.getMethod()); 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { exception }, logger.getArgs()); 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testError() { 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParseException exception = new SAXParseException("Oops!", null); 458f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.error(exception); 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 464f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("error", logger.getMethod()); 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { exception }, logger.getArgs()); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testFatalError() { 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParseException exception = new SAXParseException("Oops!", null); 472f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.fatalError(exception); 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 478f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("fatalError", logger.getMethod()); 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { exception }, logger.getArgs()); 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 485