jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java
changeset 28445 5a87f52ca380
parent 27216 e63176413817
child 40223 64662417aa2d
equal deleted inserted replaced
28344:722378bc599e 28445:5a87f52ca380
     1 /*
     1 /*
     2  * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     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
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    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.