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.MockHandler; 25c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskiimport org.apache.harmony.tests.org.xml.sax.support.MockParser; 26c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskiimport org.apache.harmony.tests.org.xml.sax.support.MockResolver; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.AttributeList; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Attributes; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ContentHandler; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.DTDHandler; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.EntityResolver; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ErrorHandler; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.InputSource; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Locator; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Parser; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotRecognizedException; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotSupportedException; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.AttributeListImpl; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.LocatorImpl; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.ParserAdapter; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@SuppressWarnings("deprecation") 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class ParserAdapterTest 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 final static String FEATURES = "http://xml.org/sax/features/"; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private final static String NAMESPACES = FEATURES + "namespaces"; 52f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private final static String NAMESPACE_PREFIXES = FEATURES 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + "namespace-prefixes"; 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private final static String XMLNS_URIs = FEATURES + "xmlns-uris"; 57f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private MethodLogger logger = new MethodLogger(); 59f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private MockHandler handler = new MockHandler(logger); 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private Parser parser = new MockParser(logger); 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private ParserAdapter adapter = new ParserAdapter(parser); 65f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private void assertEquals(Object[] a, Object[] b) { 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(a.length, b.length); 68f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < a.length; i++) { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Element #" + i + " must be equal", a[i], b[i]); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setUp() { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setContentHandler(handler); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setDTDHandler(handler); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setErrorHandler(handler); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 80d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson 81d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson @Override protected void tearDown() throws Exception { 82d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson super.tearDown(); 83d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson } 84d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParserAdapter() { 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.setProperty("org.xml.sax.parser", 870c78f892938bebf03b62f0de1562ed7c410bfd4bNicholas Sauer "org.apache.harmony.tests.org.xml.sax.support.DoNothingParser"); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new ParserAdapter(); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParserAdapterParser() { 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("unused") 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ParserAdapter adapter = new ParserAdapter(parser); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Null case 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter = new ParserAdapter(null); 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetFeature() { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] features = new String[] { NAMESPACES, NAMESPACE_PREFIXES, 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project XMLNS_URIs }; 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (String s: features) { 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setFeature(s, true); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(true, adapter.getFeature(s)); 118f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setFeature(s, false); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(false, adapter.getFeature(s)); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setFeature("http://argle.bargle", true); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException expected"); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetProperty() { 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setProperty("http://argle.bargle", ":)"); 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException expected"); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.getProperty("http://argle.bargle"); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException expected"); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException e) { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException e) { 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetEntityResolver() { 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project EntityResolver resolver = new MockResolver(); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setEntityResolver(resolver); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(resolver, adapter.getEntityResolver()); 161f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setEntityResolver(null); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, adapter.getEntityResolver()); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetDTDHandler() { 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setDTDHandler(null); 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, adapter.getDTDHandler()); 169f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setDTDHandler(handler); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(handler, adapter.getDTDHandler()); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetContentHandler() { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setContentHandler(null); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, adapter.getContentHandler()); 177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setContentHandler(handler); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(handler, adapter.getContentHandler()); 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetSetErrorHandler() { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setErrorHandler(null); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(null, adapter.getErrorHandler()); 185f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setErrorHandler(handler); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(handler, adapter.getErrorHandler()); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParseString() { 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.parse("foo"); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // The SAX RI creates an InputSource itself and then delegates to the 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // "other" parse method. 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("parse", logger.getMethod()); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(InputSource.class, logger.getArgs()[0].getClass()); 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParseInputSource() { 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputSource source = new InputSource("foo"); 207f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.parse(source); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 215f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("parse", logger.getMethod()); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { source }, logger.getArgs()); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSetDocumentLocator() { 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Locator l = new LocatorImpl(); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setDocumentLocator(l); 224f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("setDocumentLocator", logger.getMethod()); 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { l }, logger.getArgs()); 228f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.setDocumentLocator(null); 230f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 2); 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("setDocumentLocator", logger.getMethod()); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { null }, logger.getArgs()); 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testStartDocument() { 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.startDocument(); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("startDocument", logger.getMethod()); 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] {}, logger.getArgs()); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testEndDocument() { 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.endDocument(); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException 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(logger.size(), 1); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("endDocument", logger.getMethod()); 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] {}, logger.getArgs()); 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testStartElement() { 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributeListImpl atts = new AttributeListImpl(); 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project atts.addAttribute("john:doe", "int", "42"); 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.startDocument(); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.startElement("foo:bar", atts); 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 270f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("startElement", logger.getMethod()); 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("", logger.getArgs()[0]); 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("", logger.getArgs()[1]); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("foo:bar", logger.getArgs()[2]); 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("john:doe", ((Attributes)logger.getArgs()[3]).getQName(0)); 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testEndElement() { 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AttributeListImpl atts = new AttributeListImpl(); 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project atts.addAttribute("john:doe", "int", "42"); 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.startDocument(); 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.startElement("foo:bar", atts); 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.endElement("foo:bar"); 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 289f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("endElement", logger.getMethod()); 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new String[] { "", "", "foo:bar" }, logger.getArgs()); 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testCharacters() { 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] ch = "Android".toCharArray(); 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.characters(ch, 2, 5); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("characters", logger.getMethod()); 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { ch, 2, 5 }, logger.getArgs()); 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIgnorableWhitespace() { 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] ch = " ".toCharArray(); 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.ignorableWhitespace(ch, 0, 5); 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("ignorableWhitespace", logger.getMethod()); 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { ch, 0, 5 }, logger.getArgs()); 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testProcessingInstruction() { 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project adapter.processingInstruction("foo", "bar"); 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 328f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(logger.size(), 1); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("processingInstruction", logger.getMethod()); 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Object[] { "foo" , "bar" }, logger.getArgs()); 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 335