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