22 */ |
22 */ |
23 package javax.xml.transform.ptests; |
23 package javax.xml.transform.ptests; |
24 |
24 |
25 import java.io.File; |
25 import java.io.File; |
26 import java.io.FileInputStream; |
26 import java.io.FileInputStream; |
27 import java.io.FileNotFoundException; |
|
28 import java.io.IOException; |
|
29 import java.util.Properties; |
27 import java.util.Properties; |
30 import javax.xml.parsers.DocumentBuilder; |
28 import javax.xml.parsers.DocumentBuilder; |
31 import javax.xml.parsers.DocumentBuilderFactory; |
29 import javax.xml.parsers.DocumentBuilderFactory; |
32 import javax.xml.parsers.ParserConfigurationException; |
|
33 import javax.xml.transform.ErrorListener; |
30 import javax.xml.transform.ErrorListener; |
34 import javax.xml.transform.Transformer; |
31 import javax.xml.transform.Transformer; |
35 import javax.xml.transform.TransformerConfigurationException; |
32 import javax.xml.transform.TransformerConfigurationException; |
36 import javax.xml.transform.TransformerException; |
33 import javax.xml.transform.TransformerException; |
37 import javax.xml.transform.TransformerFactory; |
34 import javax.xml.transform.TransformerFactory; |
38 import javax.xml.transform.dom.DOMSource; |
35 import javax.xml.transform.dom.DOMSource; |
39 import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR; |
36 import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR; |
40 import javax.xml.transform.sax.SAXSource; |
37 import javax.xml.transform.sax.SAXSource; |
41 import javax.xml.transform.stream.StreamSource; |
38 import javax.xml.transform.stream.StreamSource; |
42 import static jaxp.library.JAXPTestUtilities.failUnexpected; |
39 import jaxp.library.JAXPFileReadOnlyBaseTest; |
43 import static org.testng.Assert.assertEquals; |
40 import static org.testng.Assert.assertEquals; |
44 import static org.testng.Assert.assertNotNull; |
41 import static org.testng.Assert.assertNotNull; |
45 import static org.testng.Assert.assertTrue; |
42 import static org.testng.Assert.assertTrue; |
46 import org.testng.annotations.Test; |
43 import org.testng.annotations.Test; |
47 import org.w3c.dom.Document; |
44 import org.w3c.dom.Document; |
48 import org.xml.sax.InputSource; |
45 import org.xml.sax.InputSource; |
49 import org.xml.sax.SAXException; |
|
50 |
46 |
51 /** |
47 /** |
52 * Basic test cases for Transformer API |
48 * Basic test cases for Transformer API |
53 */ |
49 */ |
54 public class TransformerTest { |
50 public class TransformerTest extends JAXPFileReadOnlyBaseTest { |
55 /** |
51 /** |
56 * XSLT file serves every test method. |
52 * XSLT file serves every test method. |
57 */ |
53 */ |
58 private final static String TEST_XSL = XML_DIR + "cities.xsl"; |
54 private final static String TEST_XSL = XML_DIR + "cities.xsl"; |
59 |
55 |
60 /** |
56 /** |
61 * This tests if newTransformer(StreamSource) method returns Transformer |
57 * This tests if newTransformer(StreamSource) method returns Transformer. |
|
58 * @throws TransformerConfigurationException If for some reason the |
|
59 * TransformerHandler can not be created. |
62 */ |
60 */ |
63 @Test |
61 @Test (groups = {"readLocalFiles"}) |
64 public void transformer01() { |
62 public void transformer01() throws TransformerConfigurationException { |
65 try { |
63 TransformerFactory tfactory = TransformerFactory.newInstance(); |
|
64 StreamSource streamSource = new StreamSource( |
|
65 new File(TEST_XSL)); |
|
66 Transformer transformer = tfactory.newTransformer(streamSource); |
|
67 assertNotNull(transformer); |
|
68 } |
|
69 |
|
70 /** |
|
71 * This tests if newTransformer(SAXSource) method returns Transformer. |
|
72 * @throws Exception If any errors occur. |
|
73 */ |
|
74 @Test (groups = {"readLocalFiles"}) |
|
75 public void transformer02() throws Exception { |
|
76 try (FileInputStream fis = new FileInputStream(TEST_XSL)) { |
66 TransformerFactory tfactory = TransformerFactory.newInstance(); |
77 TransformerFactory tfactory = TransformerFactory.newInstance(); |
67 StreamSource streamSource = new StreamSource( |
78 SAXSource saxSource = new SAXSource(new InputSource(fis)); |
68 new File(TEST_XSL)); |
79 Transformer transformer = tfactory.newTransformer(saxSource); |
69 Transformer transformer = tfactory.newTransformer(streamSource); |
|
70 assertNotNull(transformer); |
80 assertNotNull(transformer); |
71 } catch (TransformerConfigurationException ex){ |
|
72 failUnexpected(ex); |
|
73 } |
81 } |
74 } |
82 } |
75 |
83 |
76 /** |
84 /** |
77 * This tests if newTransformer(SAXSource) method returns Transformer |
85 * This tests if newTransformer(DOMSource) method returns Transformer. |
|
86 * |
|
87 * @throws Exception If any errors occur. |
78 */ |
88 */ |
79 @Test |
89 @Test (groups = {"readLocalFiles"}) |
80 public void transformer02() { |
90 public void transformer03() throws Exception { |
81 try { |
91 TransformerFactory tfactory = TransformerFactory.newInstance(); |
82 TransformerFactory tfactory = TransformerFactory.newInstance(); |
92 |
83 InputSource is = new InputSource( |
93 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
84 new FileInputStream(TEST_XSL)); |
94 dbf.setNamespaceAware(true); |
85 SAXSource saxSource = new SAXSource(is); |
95 DocumentBuilder db = dbf.newDocumentBuilder(); |
86 Transformer transformer = tfactory.newTransformer(saxSource); |
96 Document document = db.parse(new File(TEST_XSL)); |
87 assertNotNull(transformer); |
97 DOMSource domSource = new DOMSource(document); |
88 } catch (TransformerConfigurationException | FileNotFoundException ex){ |
98 |
89 failUnexpected(ex); |
99 Transformer transformer = tfactory.newTransformer(domSource); |
90 } |
100 assertNotNull(transformer); |
91 } |
101 } |
92 |
102 |
93 /** |
103 /** |
94 * This tests if newTransformer(DOMSource) method returns Transformer |
104 * This tests set/get ErrorListener methods of Transformer. |
|
105 * |
|
106 * @throws Exception If any errors occur. |
95 */ |
107 */ |
96 @Test |
108 @Test (groups = {"readLocalFiles"}) |
97 public void transformer03() { |
109 public void transformer04() throws Exception { |
98 try { |
110 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
99 TransformerFactory tfactory = TransformerFactory.newInstance(); |
111 dbf.setNamespaceAware(true); |
|
112 DocumentBuilder db = dbf.newDocumentBuilder(); |
|
113 Document document = db.parse(new File(TEST_XSL)); |
|
114 DOMSource domSource = new DOMSource(document); |
100 |
115 |
101 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
116 Transformer transformer = TransformerFactory.newInstance() |
102 dbf.setNamespaceAware(true); |
117 .newTransformer(domSource); |
103 DocumentBuilder db = dbf.newDocumentBuilder(); |
118 transformer.setErrorListener(new MyErrorListener()); |
104 Document document = db.parse(new File(TEST_XSL)); |
119 assertNotNull(transformer.getErrorListener()); |
105 DOMSource domSource = new DOMSource(document); |
120 assertTrue(transformer.getErrorListener() instanceof MyErrorListener); |
106 |
|
107 Transformer transformer = tfactory.newTransformer(domSource); |
|
108 assertNotNull(transformer); |
|
109 } catch (TransformerConfigurationException | IOException |
|
110 | ParserConfigurationException | SAXException ex){ |
|
111 failUnexpected(ex); |
|
112 } |
|
113 } |
121 } |
114 |
122 |
115 /** |
123 /** |
116 * This tests set/get ErrorListener methods of Transformer |
124 * This tests getOutputProperties() method of Transformer. |
|
125 * |
|
126 * @throws Exception If any errors occur. |
117 */ |
127 */ |
118 @Test |
128 @Test (groups = {"readLocalFiles"}) |
119 public void transformer04() { |
129 public void transformer05() throws Exception { |
120 try { |
130 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
121 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
131 dbf.setNamespaceAware(true); |
122 dbf.setNamespaceAware(true); |
132 DocumentBuilder db = dbf.newDocumentBuilder(); |
123 DocumentBuilder db = dbf.newDocumentBuilder(); |
133 Document document = db.parse(new File(TEST_XSL)); |
124 Document document = db.parse(new File(TEST_XSL)); |
134 DOMSource domSource = new DOMSource(document); |
125 DOMSource domSource = new DOMSource(document); |
|
126 |
135 |
127 Transformer transformer = TransformerFactory.newInstance() |
136 Transformer transformer = TransformerFactory.newInstance(). |
128 .newTransformer(domSource); |
137 newTransformer(domSource); |
129 transformer.setErrorListener(new MyErrorListener()); |
138 Properties prop = transformer.getOutputProperties(); |
130 assertNotNull(transformer.getErrorListener()); |
139 |
131 assertTrue(transformer.getErrorListener() instanceof MyErrorListener); |
140 assertEquals(prop.getProperty("indent"), "yes"); |
132 } catch (IOException | IllegalArgumentException | ParserConfigurationException |
141 assertEquals(prop.getProperty("method"), "xml"); |
133 | TransformerConfigurationException | SAXException ex){ |
142 assertEquals(prop.getProperty("encoding"), "UTF-8"); |
134 failUnexpected(ex); |
143 assertEquals(prop.getProperty("standalone"), "no"); |
135 } |
144 assertEquals(prop.getProperty("version"), "1.0"); |
|
145 assertEquals(prop.getProperty("omit-xml-declaration"), "no"); |
136 } |
146 } |
137 |
147 |
138 /** |
148 /** |
139 * This tests getOutputProperties() method of Transformer |
149 * This tests getOutputProperty() method of Transformer. |
|
150 * |
|
151 * @throws Exception If any errors occur. |
140 */ |
152 */ |
141 @Test |
153 @Test (groups = {"readLocalFiles"}) |
142 public void transformer05() { |
154 public void transformer06() throws Exception { |
143 try { |
155 TransformerFactory tfactory = TransformerFactory.newInstance(); |
144 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
|
145 dbf.setNamespaceAware(true); |
|
146 DocumentBuilder db = dbf.newDocumentBuilder(); |
|
147 Document document = db.parse(new File(TEST_XSL)); |
|
148 DOMSource domSource = new DOMSource(document); |
|
149 |
156 |
150 Transformer transformer = TransformerFactory.newInstance(). |
157 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
151 newTransformer(domSource); |
158 dbf.setNamespaceAware(true); |
152 Properties prop = transformer.getOutputProperties(); |
159 DocumentBuilder db = dbf.newDocumentBuilder(); |
|
160 Document document = db.parse(new File(TEST_XSL)); |
|
161 DOMSource domSource = new DOMSource(document); |
153 |
162 |
154 assertEquals(prop.getProperty("indent"), "yes"); |
163 Transformer transformer = tfactory.newTransformer(domSource); |
155 assertEquals(prop.getProperty("method"), "xml"); |
164 assertEquals(transformer.getOutputProperty("method"), "xml"); |
156 assertEquals(prop.getProperty("encoding"), "UTF-8"); |
|
157 assertEquals(prop.getProperty("standalone"), "no"); |
|
158 assertEquals(prop.getProperty("version"), "1.0"); |
|
159 assertEquals(prop.getProperty("omit-xml-declaration"), "no"); |
|
160 } catch (ParserConfigurationException | SAXException | IOException |
|
161 | TransformerConfigurationException ex){ |
|
162 failUnexpected(ex); |
|
163 } |
|
164 } |
|
165 |
|
166 /** |
|
167 * This tests getOutputProperty() method of Transformer |
|
168 */ |
|
169 @Test |
|
170 public void transformer06() { |
|
171 try { |
|
172 TransformerFactory tfactory = TransformerFactory.newInstance(); |
|
173 |
|
174 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); |
|
175 dbf.setNamespaceAware(true); |
|
176 DocumentBuilder db = dbf.newDocumentBuilder(); |
|
177 Document document = db.parse(new File(TEST_XSL)); |
|
178 DOMSource domSource = new DOMSource(document); |
|
179 |
|
180 Transformer transformer = tfactory.newTransformer(domSource); |
|
181 assertEquals(transformer.getOutputProperty("method"), "xml"); |
|
182 } catch (ParserConfigurationException | SAXException | IOException |
|
183 | TransformerConfigurationException | IllegalArgumentException ex){ |
|
184 failUnexpected(ex); |
|
185 } |
|
186 } |
165 } |
187 } |
166 } |
188 |
167 |
189 /** |
168 /** |
190 * Simple ErrorListener print out all exception. |
169 * Simple ErrorListener print out all exception. |