SAXParserFactoryTest.java revision 5ab82b77afbc8af3b91e90ab46b0a7cc0a090f04
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License. 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.xml.parsers; 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.InputStream; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Properties; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.FactoryConfigurationError; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.ParserConfigurationException; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.SAXParser; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.SAXParserFactory; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Attributes; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotRecognizedException; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotSupportedException; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.DefaultHandler; 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.AndroidOnly; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.KnownFailure; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetClass; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets; 44d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilsonimport tests.util.TestEnvironment; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@TestTargetClass(SAXParserFactory.class) 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SAXParserFactoryTest extends TestCase { 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParserFactory spf; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is1; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static HashMap<String, String> ns; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static Vector<String> el; 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static HashMap<String, String> attr; 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setUp() throws Exception { 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf = SAXParserFactory.newInstance(); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is1 = getClass().getResourceAsStream("/simple.xml"); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ns = new HashMap<String, String>(); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attr = new HashMap<String, String>(); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project el = new Vector<String>(); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void tearDown() throws Exception { 70d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson TestEnvironment.reset(); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is1.close(); 72d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson super.tearDown(); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "SAXParserFactory", 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @AndroidOnly("Android SAX implementation is non-validating") 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor() { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MySAXParserFactory mpf = new MySAXParserFactory(); 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(mpf instanceof SAXParserFactory); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(mpf.isValidating()); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @tests javax.xml.parsers.SAXParserFactory#getSchema(). 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * TBD getSchema() IS NOT SUPPORTED 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* public void test_getSchema() { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull(spf.getSchema()); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory sf = 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Schema schema = sf.newSchema(); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setSchema(schema); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(spf.getSchema()); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + sax.toString()); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargets({ 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "isNamespaceAware", 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setNamespaceAware", 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {boolean.class} 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }) 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setIsNamespaceAware() { 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setNamespaceAware(true); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf.isNamespaceAware()); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setNamespaceAware(false); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(spf.isNamespaceAware()); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setNamespaceAware(true); 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf.isNamespaceAware()); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargets({ 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "isValidating", 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setValidating", 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {boolean.class} 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }) 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setIsValidating() { 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setValidating(true); 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf.isValidating()); 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setValidating(false); 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(spf.isValidating()); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setValidating(true); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf.isValidating()); 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargets({ 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "isXIncludeAware", 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setXIncludeAware", 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {boolean.class} 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }) 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @KnownFailure("Should handle XIncludeAware flag more gracefully") 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setIsXIncludeAware() { 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setXIncludeAware(true); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf.isXIncludeAware()); 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setXIncludeAware(false); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(spf.isXIncludeAware()); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "", 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "newInstance", 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 1805ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson @KnownFailure("Dalvik doesn't honor system properties when choosing a SAX implementation") 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_newInstance() { 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParserFactory dtf = SAXParserFactory.newInstance(); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("New Instance of DatatypeFactory is null", dtf); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.setProperty("javax.xml.parsers.SAXParserFactory", 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "org.apache.harmony.xml.parsers.SAXParserFactoryImpl"); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParserFactory spf1 = SAXParserFactory.newInstance(); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf1 instanceof org.apache.harmony.xml.parsers.SAXParserFactoryImpl); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String key = "javax.xml.parsers.SAXParserFactory = org.apache.harmony.xml.parsers.SAXParserFactoryImpl"; 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayInputStream bis = new ByteArrayInputStream(key.getBytes()); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Properties prop = System.getProperties(); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project prop.load(bis); 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParserFactory spf2 = SAXParserFactory.newInstance(); 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf2 instanceof org.apache.harmony.xml.parsers.SAXParserFactoryImpl); 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.setProperty("javax.xml.parsers.SAXParserFactory", ""); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParserFactory.newInstance(); 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Expected FactoryConfigurationError was not thrown"); 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (FactoryConfigurationError e) { 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException ioe) { 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + ioe.toString()); 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "SAXException untested; unused on Android", 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "newSAXParser", 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {} 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_newSAXParser() { 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Ordinary case 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParser sp = spf.newSAXParser(); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(sp instanceof SAXParser); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sp.parse(is1, new MyHandler()); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(Exception e) { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Exception case 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setValidating(true); 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXParser sp = spf.newSAXParser(); 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(ParserConfigurationException e) { 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected, since Android doesn't have a validating parser. 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException e) { 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throw new RuntimeException("Unexpected exception", e); 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargets({ 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setFeature", 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "ParserConfigurationException untested; unused on Android", 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class, boolean.class} 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ), 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.SUFFICIENT, 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "getFeature", 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project notes = "ParserConfigurationException untested; unused on Android", 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {java.lang.String.class} 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project }) 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setFeatureLjava_lang_StringZ() { 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // We can't verify ParserConfigurationException and 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // SAXNotSupportedException since these are never 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // thrown by Android. 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] features = { 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "http://xml.org/sax/features/namespaces", 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "http://xml.org/sax/features/validation" }; 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < features.length; i++) { 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setFeature(features[i], true); 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(spf.getFeature(features[i])); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setFeature(features[i], false); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(spf.getFeature(features[i])); 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ParserConfigurationException pce) { 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ParserConfigurationException is thrown"); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException snre) { 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException is thrown"); 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException snse) { 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotSupportedException is thrown"); 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setFeature("", true); 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException is not thrown"); 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ParserConfigurationException pce) { 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ParserConfigurationException is thrown"); 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException snre) { 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException snse) { 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotSupportedException is thrown"); 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException npe) { 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException is thrown"); 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setFeature("http://xml.org/sax/features/unknown-feature", true); 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ParserConfigurationException pce) { 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ParserConfigurationException is thrown"); 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException snre) { 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException is thrown"); 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException snse) { 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Acceptable, although this doesn't happen an Android. 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException npe) { 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException is thrown"); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setFeature(null, true); 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException is not thrown"); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (ParserConfigurationException pce) { 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("ParserConfigurationException is thrown"); 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotRecognizedException snre) { 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotRecognizedException is thrown"); 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXNotSupportedException snse) { 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("SAXNotSupportedException is thrown"); 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException npe) { 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // expected 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @TestTargetNew( 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project level = TestLevel.COMPLETE, 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project method = "setNamespaceAware", 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project args = {boolean.class} 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ) 3205ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson public void test_setNamespaceAwareZ() throws Exception { 3215ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson MyHandler mh = new MyHandler(); 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setNamespaceAware(true); 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is = getClass().getResourceAsStream("/simple_ns.xml"); 3255ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson spf.newSAXParser().parse(is, mh); 3265ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson is.close(); 3275ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setNamespaceAware(false); 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is = getClass().getResourceAsStream("/simple_ns.xml"); 3305ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson spf.newSAXParser().parse(is, mh); 3315ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson is.close(); 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* public void test_setSchemaLjavax_xml_validation_Schema() { 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory sf = 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Schema schema = sf.newSchema(); 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project spf.setSchema(schema); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(spf.getSchema()); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (SAXException sax) { 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + sax.toString()); 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// public void test_setValidatingZ() { 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// MyHandler mh = new MyHandler(); 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// InputStream is2 = getClass().getResourceAsStream("/recipe.xml"); 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.setValidating(true); 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertTrue(spf.isValidating()); 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is2, mh); 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (org.xml.sax.SAXException se) { 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (IOException ioe) { 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOException was thrown during parsing"); 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is2.close(); 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// InputStream is3 = getClass().getResourceAsStream("/recipe1.xml"); 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertTrue(spf.isValidating()); 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is3, mh); 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (org.xml.sax.SAXException se) { 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (IOException ioe) { 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOEXception was thrown during parsing: " + ioe.getMessage()); 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is3.close(); 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is2 = getClass().getResourceAsStream("/recipe.xml"); 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.setValidating(false); 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertFalse(spf.isValidating()); 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is2, mh); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (org.xml.sax.SAXException se) { 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (IOException ioe) { 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOException was thrown during parsing"); 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is2.close(); 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is3 = getClass().getResourceAsStream("/recipe1.xml"); 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertFalse(spf.isValidating()); 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is3, mh); 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (org.xml.sax.SAXException se) { 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch (IOException ioe) { 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOEXception was thrown during parsing: " + ioe.getMessage()); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is3.close(); 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// public void test_setXIncludeAwareZ() { 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.setXIncludeAware(true); 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// MyHandler mh = new MyHandler(); 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// InputStream is = getClass().getResourceAsStream("/simple_ns.xml"); 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is, mh); 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(javax.xml.parsers.ParserConfigurationException pce) { 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(org.xml.sax.SAXException se) { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(IOException ioe) { 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOException was thrown during parsing"); 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is.close(); 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.setXIncludeAware(false); 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is = getClass().getResourceAsStream("/simple_ns.xml"); 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is = getClass().getResourceAsStream("/simple_ns.xml"); 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is, mh); 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(javax.xml.parsers.ParserConfigurationException pce) { 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(org.xml.sax.SAXException se) { 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(IOException ioe) { 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOException was thrown during parsing"); 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is.close(); 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is = getClass().getResourceAsStream("/simple_ns.xml"); 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.setXIncludeAware(true); 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// spf.newSAXParser().parse(is, mh); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(javax.xml.parsers.ParserConfigurationException pce) { 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(org.xml.sax.SAXException se) { 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("SAXException was thrown during parsing"); 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(IOException ioe) { 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// fail("IOException was thrown during parsing"); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } finally { 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// try { 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// is.close(); 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } catch(Exception ioee) {} 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static class MyHandler extends DefaultHandler { 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startElement(String uri, String localName, String qName, 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attributes atts) { 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project el.add(qName); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!uri.equals("")) 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ns.put(qName, uri); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < atts.getLength(); i++) { 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attr.put(atts.getQName(i), atts.getValue(i)); 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MySAXParserFactory extends SAXParserFactory { 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MySAXParserFactory() { 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(); 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SAXParser newSAXParser() { 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setFeature(String name, boolean value) throws 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ParserConfigurationException, SAXNotRecognizedException, 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXNotSupportedException { 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean getFeature(String name) throws 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ParserConfigurationException, SAXNotRecognizedException, 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SAXNotSupportedException { 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 503