1 /* 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package javax.xml.transform.ptests; 24 25 import java.io.File; 26 import java.io.FileInputStream; 27 import java.io.FileNotFoundException; 28 import java.io.IOException; 29 import javax.xml.parsers.DocumentBuilder; 30 import javax.xml.parsers.DocumentBuilderFactory; 31 import javax.xml.parsers.ParserConfigurationException; 32 import javax.xml.transform.Transformer; 33 import javax.xml.transform.TransformerConfigurationException; 34 import javax.xml.transform.TransformerFactory; 35 import javax.xml.transform.dom.DOMSource; 36 import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR; 37 import javax.xml.transform.sax.SAXSource; 38 import javax.xml.transform.stream.StreamSource; 39 import static jaxp.library.JAXPTestUtilities.failUnexpected; 40 import static org.testng.Assert.assertEquals; 41 import static org.testng.Assert.assertNull; 42 import org.testng.annotations.Test; 43 import org.w3c.dom.Document; 44 import org.w3c.dom.Node; 45 import org.xml.sax.InputSource; 46 import org.xml.sax.SAXException; 47 48 /** 49 * Class containing the test cases for SAXParserFactory API 50 */ 51 public class TfClearParamTest { 52 /** 53 * Test xslt file. 54 */ 55 private final String XSL_FILE = XML_DIR + "cities.xsl"; 56 57 /** 58 * Long parameter name embedded with a URI. 59 */ 60 private final String LONG_PARAM_NAME = "{http://xyz.foo.com/yada/baz.html}foo"; 61 62 /** 63 * Short parameter name. 64 */ 65 private final String SHORT_PARAM_NAME = "foo"; 66 67 /** 68 * Parameter value. 69 */ 70 private final String PARAM_VALUE = "xyz"; 71 72 /** 73 * Obtains transformer's parameter with the same name that set before. Value 74 * should be same as set one. 75 */ 76 @Test 77 public void clear01() { 78 try { 79 Transformer transformer = TransformerFactory.newInstance().newTransformer(); 80 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 81 assertEquals(transformer.getParameter(LONG_PARAM_NAME).toString(), PARAM_VALUE); 82 } catch (TransformerConfigurationException ex) { 83 failUnexpected(ex); 84 } 85 86 } 87 88 /** 89 * Obtains transformer's parameter with the a name that wasn't set before. 90 * Null is expected. 91 */ 92 @Test 93 public void clear02() { 94 try { 95 Transformer transformer = TransformerFactory.newInstance().newTransformer(); 96 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 97 transformer.clearParameters(); 98 assertNull(transformer.getParameter(LONG_PARAM_NAME)); 99 } catch (TransformerConfigurationException ex){ 100 failUnexpected(ex); 101 } 102 } 103 104 /** 105 * Obtains transformer's parameter whose initiated with a stream source with 106 * the a name that set before. Value should be same as set one. 107 */ 108 @Test 109 public void clear03() { 110 try { 111 Transformer transformer = TransformerFactory.newInstance(). 112 newTransformer(new StreamSource(new File(XSL_FILE))); 113 114 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 115 assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE); 116 } catch (TransformerConfigurationException ex){ 117 failUnexpected(ex); 118 } 119 } 120 121 /** 122 * Obtains transformer's parameter whose initiated with a stream source with 123 * the a name that wasn't set before. Null is expected. 124 */ 125 @Test 126 public void clear04() { 127 try { 128 Transformer transformer = TransformerFactory.newInstance(). 129 newTransformer(new StreamSource(new File(XSL_FILE))); 130 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 131 transformer.clearParameters(); 132 assertNull(transformer.getParameter(LONG_PARAM_NAME)); 133 } catch (TransformerConfigurationException ex){ 134 failUnexpected(ex); 135 } 136 137 } 138 139 /** 140 * Obtains transformer's parameter whose initiated with a sax source with 141 * the a name that set before. Value should be same as set one. 142 */ 143 @Test 144 public void clear05() { 145 try { 146 InputSource is = new InputSource(new FileInputStream(XSL_FILE)); 147 SAXSource saxSource = new SAXSource(); 148 saxSource.setInputSource(is); 149 150 Transformer transformer = TransformerFactory.newInstance().newTransformer(saxSource); 151 152 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 153 assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE); 154 } catch (FileNotFoundException | TransformerConfigurationException ex){ 155 failUnexpected(ex); 156 } 157 } 158 159 /** 160 * Obtains transformer's parameter whose initiated with a sax source with 161 * the a name that wasn't set before. Null is expected. 162 */ 163 @Test 164 public void clear06() { 165 try { 166 InputSource is = new InputSource(new FileInputStream(XSL_FILE)); 167 SAXSource saxSource = new SAXSource(); 168 saxSource.setInputSource(is); 169 170 Transformer transformer = TransformerFactory.newInstance().newTransformer(saxSource); 171 172 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 173 transformer.clearParameters(); 174 assertNull(transformer.getParameter(LONG_PARAM_NAME)); 175 } catch (FileNotFoundException | TransformerConfigurationException ex){ 176 failUnexpected(ex); 177 } 178 } 179 180 /** 181 * Obtains transformer's parameter whose initiated with a dom source with 182 * the a name that set before. Value should be same as set one. 183 */ 184 @Test 185 public void clear07() { 186 try { 187 TransformerFactory tfactory = TransformerFactory.newInstance(); 188 189 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 190 dbf.setNamespaceAware(true); 191 DocumentBuilder db = dbf.newDocumentBuilder(); 192 Document document = db.parse(new File(XSL_FILE)); 193 DOMSource domSource = new DOMSource((Node)document); 194 195 Transformer transformer = tfactory.newTransformer(domSource); 196 197 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 198 assertEquals(transformer.getParameter(LONG_PARAM_NAME), PARAM_VALUE); 199 } catch (IOException | ParserConfigurationException 200 | TransformerConfigurationException | SAXException ex){ 201 failUnexpected(ex); 202 } 203 } 204 205 /** 206 * Obtains transformer's parameter whose initiated with a dom source with 207 * the a name that wasn't set before. Null is expected. 208 */ 209 @Test 210 public void clear08() { 211 try { 212 TransformerFactory tfactory = TransformerFactory.newInstance(); 213 214 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 215 dbf.setNamespaceAware(true); 216 DocumentBuilder db = dbf.newDocumentBuilder(); 217 Document document = db.parse(new File(XSL_FILE)); 218 DOMSource domSource = new DOMSource((Node)document); 219 220 Transformer transformer = tfactory.newTransformer(domSource); 221 transformer.setParameter(LONG_PARAM_NAME, PARAM_VALUE); 222 transformer.clearParameters(); 223 assertNull(transformer.getParameter(LONG_PARAM_NAME)); 224 } catch (IOException | ParserConfigurationException 225 | TransformerConfigurationException | SAXException ex){ 226 failUnexpected(ex); 227 } 228 } 229 230 /** 231 * Obtains transformer's parameter with a short name that set before. Value 232 * should be same as set one. 233 */ 234 @Test 235 public void clear09() { 236 try { 237 TransformerFactory tfactory = TransformerFactory.newInstance(); 238 Transformer transformer = tfactory.newTransformer(); 239 240 transformer.setParameter(SHORT_PARAM_NAME, PARAM_VALUE); 241 assertEquals(transformer.getParameter(SHORT_PARAM_NAME).toString(), PARAM_VALUE); 242 } catch (TransformerConfigurationException ex){ 243 failUnexpected(ex); 244 } 245 } 246 247 /** 248 * Obtains transformer's parameter with a short name that set with an integer 249 * object before. Value should be same as the set integer object. 250 */ 251 @Test 252 public void clear10() { 253 try { 254 TransformerFactory tfactory = TransformerFactory.newInstance(); 255 Transformer transformer = tfactory.newTransformer(); 256 257 int intObject = 5; 258 transformer.setParameter(SHORT_PARAM_NAME, intObject); 259 assertEquals(transformer.getParameter(SHORT_PARAM_NAME), intObject); 260 } catch (TransformerConfigurationException ex){ 261 failUnexpected(ex); 262 } 263 } 264 }