< prev index next >

test/jaxp/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java

Print this page


   1 /*
   2  * Copyright (c) 2014, 2016, 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  */


  25 import java.io.StringWriter;
  26 import javax.xml.parsers.DocumentBuilder;
  27 import javax.xml.parsers.DocumentBuilderFactory;
  28 import javax.xml.parsers.ParserConfigurationException;
  29 import javax.xml.stream.XMLEventFactory;
  30 import javax.xml.stream.XMLEventWriter;
  31 
  32 import javax.xml.stream.XMLOutputFactory;
  33 import javax.xml.stream.XMLStreamException;
  34 import javax.xml.stream.XMLStreamWriter;
  35 import javax.xml.stream.events.XMLEvent;
  36 import javax.xml.transform.dom.DOMResult;
  37 
  38 import org.testng.Assert;
  39 import org.testng.annotations.Listeners;
  40 import org.testng.annotations.Test;
  41 import org.w3c.dom.Document;
  42 
  43 /*
  44  * @test
  45  * @bug 6347190 8139584
  46  * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
  47  * @run testng/othervm -DrunSecMngr=true stream.XMLStreamWriterTest.XMLStreamWriterTest
  48  * @run testng/othervm stream.XMLStreamWriterTest.XMLStreamWriterTest
  49  * @summary Test StAX Writer won't insert comment into element inside.
  50  */
  51 @Listeners({jaxp.library.BasePolicy.class})
  52 public class XMLStreamWriterTest {
  53     /**
  54      * @bug 8139584
  55      * Verifies that the resulting XML contains the standalone setting.
  56      */
  57     @Test
  58     public void testCreateStartDocument() throws XMLStreamException {
  59 
  60         StringWriter stringWriter = new StringWriter();
  61         XMLOutputFactory out = XMLOutputFactory.newInstance();
  62         XMLEventFactory eventFactory = XMLEventFactory.newInstance();
  63 
  64         XMLEventWriter eventWriter = out.createXMLEventWriter(stringWriter);
  65 
  66         XMLEvent event = eventFactory.createStartDocument("iso-8859-15", "1.0", true);
  67         eventWriter.add(event);
  68         eventWriter.flush();
  69         Assert.assertTrue(stringWriter.toString().contains("encoding=\"iso-8859-15\""));


  77      */
  78     @Test
  79     public void testCreateStartDocument_DOMWriter()
  80             throws ParserConfigurationException, XMLStreamException {
  81 
  82         XMLOutputFactory xof = XMLOutputFactory.newInstance();
  83         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  84         DocumentBuilder db = dbf.newDocumentBuilder();
  85         Document doc = db.newDocument();
  86         XMLEventWriter eventWriter = xof.createXMLEventWriter(new DOMResult(doc));
  87         XMLEventFactory eventFactory = XMLEventFactory.newInstance();
  88         XMLEvent event = eventFactory.createStartDocument("iso-8859-15", "1.0", true);
  89         eventWriter.add(event);
  90         eventWriter.flush();
  91         Assert.assertEquals(doc.getXmlEncoding(), "iso-8859-15");
  92         Assert.assertEquals(doc.getXmlVersion(), "1.0");
  93         Assert.assertTrue(doc.getXmlStandalone());
  94     }
  95 
  96     /**
  97      * Test of main method, of class TestXMLStreamWriter.
  98      */
  99     @Test
 100     public void testWriteComment() {
 101         try {
 102             String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a:html href=\"http://java.sun.com\"><!--This is comment-->java.sun.com</a:html>";


 103             XMLOutputFactory f = XMLOutputFactory.newInstance();
 104             // f.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES,
 105             // Boolean.TRUE);
 106             StringWriter sw = new StringWriter();
 107             XMLStreamWriter writer = f.createXMLStreamWriter(sw);
 108             writer.writeStartDocument("UTF-8", "1.0");
 109             writer.writeStartElement("a", "html", "http://www.w3.org/TR/REC-html40");
 110             writer.writeAttribute("href", "http://java.sun.com");
 111             writer.writeComment("This is comment");
 112             writer.writeCharacters("java.sun.com");
 113             writer.writeEndElement();
 114             writer.writeEndDocument();
 115             writer.flush();
 116             sw.flush();
 117             StringBuffer sb = sw.getBuffer();
 118             System.out.println("sb:" + sb.toString());
 119             Assert.assertTrue(sb.toString().equals(xml));
 120         } catch (Exception ex) {
 121             Assert.fail("Exception: " + ex.getMessage());
 122         }
 123     }
 124 














 125 }
   1 /*
   2  * Copyright (c) 2014, 2019 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  */


  25 import java.io.StringWriter;
  26 import javax.xml.parsers.DocumentBuilder;
  27 import javax.xml.parsers.DocumentBuilderFactory;
  28 import javax.xml.parsers.ParserConfigurationException;
  29 import javax.xml.stream.XMLEventFactory;
  30 import javax.xml.stream.XMLEventWriter;
  31 
  32 import javax.xml.stream.XMLOutputFactory;
  33 import javax.xml.stream.XMLStreamException;
  34 import javax.xml.stream.XMLStreamWriter;
  35 import javax.xml.stream.events.XMLEvent;
  36 import javax.xml.transform.dom.DOMResult;
  37 
  38 import org.testng.Assert;
  39 import org.testng.annotations.Listeners;
  40 import org.testng.annotations.Test;
  41 import org.w3c.dom.Document;
  42 
  43 /*
  44  * @test
  45  * @bug 6347190 8139584 8216408
  46  * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
  47  * @run testng/othervm -DrunSecMngr=true stream.XMLStreamWriterTest.XMLStreamWriterTest
  48  * @run testng/othervm stream.XMLStreamWriterTest.XMLStreamWriterTest
  49  * @summary Tests XMLStreamWriter.
  50  */
  51 @Listeners({jaxp.library.BasePolicy.class})
  52 public class XMLStreamWriterTest {
  53     /**
  54      * @bug 8139584
  55      * Verifies that the resulting XML contains the standalone setting.
  56      */
  57     @Test
  58     public void testCreateStartDocument() throws XMLStreamException {
  59 
  60         StringWriter stringWriter = new StringWriter();
  61         XMLOutputFactory out = XMLOutputFactory.newInstance();
  62         XMLEventFactory eventFactory = XMLEventFactory.newInstance();
  63 
  64         XMLEventWriter eventWriter = out.createXMLEventWriter(stringWriter);
  65 
  66         XMLEvent event = eventFactory.createStartDocument("iso-8859-15", "1.0", true);
  67         eventWriter.add(event);
  68         eventWriter.flush();
  69         Assert.assertTrue(stringWriter.toString().contains("encoding=\"iso-8859-15\""));


  77      */
  78     @Test
  79     public void testCreateStartDocument_DOMWriter()
  80             throws ParserConfigurationException, XMLStreamException {
  81 
  82         XMLOutputFactory xof = XMLOutputFactory.newInstance();
  83         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  84         DocumentBuilder db = dbf.newDocumentBuilder();
  85         Document doc = db.newDocument();
  86         XMLEventWriter eventWriter = xof.createXMLEventWriter(new DOMResult(doc));
  87         XMLEventFactory eventFactory = XMLEventFactory.newInstance();
  88         XMLEvent event = eventFactory.createStartDocument("iso-8859-15", "1.0", true);
  89         eventWriter.add(event);
  90         eventWriter.flush();
  91         Assert.assertEquals(doc.getXmlEncoding(), "iso-8859-15");
  92         Assert.assertEquals(doc.getXmlVersion(), "1.0");
  93         Assert.assertTrue(doc.getXmlStandalone());
  94     }
  95 
  96     /**
  97      * Verifies that the StAX Writer won't insert comment into the element tag.
  98      */
  99     @Test
 100     public void testWriteComment() {
 101         try {
 102             String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
 103                     + "<a:html href=\"http://java.sun.com\">"
 104                     + "<!--This is comment-->java.sun.com</a:html>";
 105             XMLOutputFactory f = XMLOutputFactory.newInstance();
 106             // f.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES,
 107             // Boolean.TRUE);
 108             StringWriter sw = new StringWriter();
 109             XMLStreamWriter writer = f.createXMLStreamWriter(sw);
 110             writer.writeStartDocument("UTF-8", "1.0");
 111             writer.writeStartElement("a", "html", "http://www.w3.org/TR/REC-html40");
 112             writer.writeAttribute("href", "http://java.sun.com");
 113             writer.writeComment("This is comment");
 114             writer.writeCharacters("java.sun.com");
 115             writer.writeEndElement();
 116             writer.writeEndDocument();
 117             writer.flush();
 118             sw.flush();
 119             StringBuffer sb = sw.getBuffer();
 120             System.out.println("sb:" + sb.toString());
 121             Assert.assertTrue(sb.toString().equals(xml));
 122         } catch (Exception ex) {
 123             Assert.fail("Exception: " + ex.getMessage());
 124         }
 125     }
 126 
 127     /**
 128      * @bug 8216408
 129      * Verifies that setDefaultNamespace accepts null.
 130      *
 131      * @throws Exception
 132      */
 133     @Test
 134     public void testSetDefaultNamespace() throws Exception {
 135         XMLOutputFactory f = XMLOutputFactory.newFactory();
 136         f.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
 137         StringWriter sw = new StringWriter();
 138         XMLStreamWriter xsw = f.createXMLStreamWriter(sw);
 139         xsw.setDefaultNamespace(null);
 140     }
 141 }
< prev index next >