You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/12/03 21:56:48 UTC
svn commit: r1870769 [2/2] - in /poi:
site/src/documentation/content/xdocs/components/spreadsheet/
trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/
trunk/src/examples/src/org/apache/poi/xssf/eventusermodel/examples/
trunk/src/java/org/apache/...
Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java?rev=1870769&r1=1870768&r2=1870769&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToFoConverter.java Tue Dec 3 21:56:47 2019
@@ -22,9 +22,7 @@ import static org.apache.poi.POITestCase
import java.io.StringWriter;
-import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
@@ -45,14 +43,12 @@ public class TestWordToFoConverter
.getDocumentInstance().openResourceAsStream( sampleFileName ) );
WordToFoConverter wordToFoConverter = new WordToFoConverter(
- XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument() );
+ XMLHelper.newDocumentBuilder().newDocument() );
wordToFoConverter.processDocument( hwpfDocument );
StringWriter stringWriter = new StringWriter();
- Transformer transformer = TransformerFactory.newInstance()
- .newTransformer();
- transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
+ Transformer transformer = XMLHelper.newTransformer();
transformer.transform(
new DOMSource( wordToFoConverter.getDocument() ),
new StreamResult( stringWriter ) );
Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java?rev=1870769&r1=1870768&r2=1870769&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java Tue Dec 3 21:56:47 2019
@@ -16,21 +16,21 @@
==================================================================== */
package org.apache.poi.hwpf.converter;
-import org.apache.poi.POIDataSamples;
-import org.apache.poi.hwpf.HWPFDocument;
-import org.apache.poi.util.XMLHelper;
-import org.junit.Test;
-import org.w3c.dom.Document;
+import static org.apache.poi.POITestCase.assertContains;
+import static org.junit.Assert.assertFalse;
+
+import java.io.StringWriter;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
-import java.io.StringWriter;
-import static org.apache.poi.POITestCase.assertContains;
-import static org.junit.Assert.assertFalse;
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.util.XMLHelper;
+import org.junit.Test;
+import org.w3c.dom.Document;
/**
* Test cases for {@link WordToHtmlConverter}
@@ -45,7 +45,7 @@ public class TestWordToHtmlConverter {
HWPFDocument hwpfDocument = new HWPFDocument(POIDataSamples
.getDocumentInstance().openResourceAsStream(sampleFileName));
- Document newDocument = XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument();
+ Document newDocument = XMLHelper.newDocumentBuilder().newDocument();
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
newDocument);
@@ -58,10 +58,7 @@ public class TestWordToHtmlConverter {
StringWriter stringWriter = new StringWriter();
- Transformer transformer = TransformerFactory.newInstance()
- .newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
+ Transformer transformer = XMLHelper.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "html");
transformer.transform(
new DOMSource(wordToHtmlConverter.getDocument()),
Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java?rev=1870769&r1=1870768&r2=1870769&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java Tue Dec 3 21:56:47 2019
@@ -899,7 +899,7 @@ public class TestBugs{
@Test
public void test59322() throws Exception {
try(HWPFDocument doc = HWPFTestDataSamples.openSampleFile("59322.doc")) {
- Document document = XMLHelper.getDocumentBuilderFactory().newDocumentBuilder().newDocument();
+ Document document = XMLHelper.newDocumentBuilder().newDocument();
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document);
wordToHtmlConverter.processDocument(doc);
assertNotNull(document);
Added: poi/trunk/src/testcases/org/apache/poi/util/TestXMLHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/util/TestXMLHelper.java?rev=1870769&view=auto
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/util/TestXMLHelper.java (added)
+++ poi/trunk/src/testcases/org/apache/poi/util/TestXMLHelper.java Tue Dec 3 21:56:47 2019
@@ -0,0 +1,161 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+
+import javax.xml.XMLConstants;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+
+import org.junit.Test;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.XMLReader;
+
+public class TestXMLHelper {
+ @Test
+ public void testDocumentBuilder() throws Exception {
+ DocumentBuilder documentBuilder = XMLHelper.newDocumentBuilder();
+ assertNotSame(documentBuilder, XMLHelper.newDocumentBuilder());
+ assertTrue(documentBuilder.isNamespaceAware());
+ assertFalse(documentBuilder.isValidating());
+ documentBuilder.parse(new InputSource(new ByteArrayInputStream("<xml></xml>".getBytes(StandardCharsets.UTF_8))));
+ }
+
+ @Test
+ public void testCreatingManyDocumentBuilders() throws Exception {
+ int limit = 1000;
+ ArrayList<CompletableFuture<DocumentBuilder>> futures = new ArrayList<>();
+ for (int i = 0; i < limit; i++) {
+ futures.add(CompletableFuture.supplyAsync(XMLHelper::newDocumentBuilder));
+ }
+ HashSet<DocumentBuilder> dbs = new HashSet<>();
+ for (CompletableFuture<DocumentBuilder> future : futures) {
+ DocumentBuilder documentBuilder = future.get(10, TimeUnit.SECONDS);
+ assertTrue(documentBuilder.isNamespaceAware());
+ dbs.add(documentBuilder);
+ }
+ assertEquals(limit, dbs.size());
+ }
+
+ @Test
+ public void testDocumentBuilderFactory() throws Exception {
+ try {
+ DocumentBuilderFactory dbf = XMLHelper.getDocumentBuilderFactory();
+ assertTrue(dbf.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING));
+ assertTrue(dbf.getFeature(XMLHelper.FEATURE_DISALLOW_DOCTYPE_DECL));
+ assertFalse(dbf.getFeature(XMLHelper.FEATURE_LOAD_DTD_GRAMMAR));
+ assertFalse(dbf.getFeature(XMLHelper.FEATURE_LOAD_EXTERNAL_DTD));
+ } catch (AbstractMethodError e) {
+ // ignore exceptions from old parsers that don't support this API (https://bz.apache.org/bugzilla/show_bug.cgi?id=62692)
+ }
+ }
+
+ @Test
+ public void testXMLReader() throws Exception {
+ XMLReader reader = XMLHelper.newXMLReader();
+ assertNotSame(reader, XMLHelper.newXMLReader());
+ try {
+ assertTrue(reader.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING));
+ assertFalse(reader.getFeature(XMLHelper.FEATURE_LOAD_DTD_GRAMMAR));
+ assertFalse(reader.getFeature(XMLHelper.FEATURE_LOAD_EXTERNAL_DTD));
+ // assertEquals(XMLHelper.IGNORING_ENTITY_RESOLVER, reader.getEntityResolver());
+ assertNotNull(reader.getProperty(XMLHelper.PROPERTY_ENTITY_EXPANSION_LIMIT));
+ assertEquals("1", reader.getProperty(XMLHelper.PROPERTY_ENTITY_EXPANSION_LIMIT));
+ assertNotNull(reader.getProperty(XMLHelper.PROPERTY_SECURITY_MANAGER));
+ } catch (SAXNotRecognizedException e) {
+ // ignore exceptions from old parsers that don't support these features
+ // (https://bz.apache.org/bugzilla/show_bug.cgi?id=62692)
+ }
+ reader.parse(new InputSource(new ByteArrayInputStream("<xml></xml>".getBytes(StandardCharsets.UTF_8))));
+ }
+
+ @Test
+ public void testCreatingManyXMLReaders() throws Exception {
+ int limit = 1000;
+ ArrayList<CompletableFuture<XMLReader>> futures = new ArrayList<>();
+ for (int i = 0; i < limit; i++) {
+ futures.add(CompletableFuture.supplyAsync(() -> {
+ try {
+ return XMLHelper.newXMLReader();
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }));
+ }
+ HashSet<XMLReader> readers = new HashSet<>();
+ for (CompletableFuture<XMLReader> future : futures) {
+ XMLReader reader = future.get(10, TimeUnit.SECONDS);
+ try {
+ assertTrue(reader.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING));
+ } catch (SAXNotRecognizedException e) {
+ // can happen for older XML Parsers, e.g. we have a CI Job which runs with Xerces XML Parser
+ assertTrue("Had Exception about not-recognized SAX feature: " + e + " which is only expected" +
+ " for Xerces XML Parser, but had parser: " + reader,
+ reader.getClass().getName().contains("org.apache.xerces"));
+ }
+ readers.add(reader);
+ }
+ assertEquals(limit, readers.size());
+ }
+
+ /**
+ * test that newXMLInputFactory returns a factory with sensible defaults
+ */
+ @Test
+ public void testNewXMLInputFactory() {
+ XMLInputFactory factory = XMLHelper.newXMLInputFactory();
+ assertTrue((boolean)factory.getProperty(XMLInputFactory.IS_NAMESPACE_AWARE));
+ assertFalse((boolean)factory.getProperty(XMLInputFactory.IS_VALIDATING));
+ assertFalse((boolean)factory.getProperty(XMLInputFactory.SUPPORT_DTD));
+ assertFalse((boolean)factory.getProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES));
+ }
+
+ /**
+ * test that newXMLOutputFactory returns a factory with sensible defaults
+ */
+ @Test
+ public void testNewXMLOutputFactory() {
+ XMLOutputFactory factory = XMLHelper.newXMLOutputFactory();
+ assertTrue((boolean)factory.getProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES));
+ }
+
+ /**
+ * test that newXMLEventFactory returns a factory
+ */
+ @Test
+ public void testNewXMLEventFactory() {
+ assertNotNull(XMLHelper.newXMLEventFactory());
+ }
+}
Propchange: poi/trunk/src/testcases/org/apache/poi/util/TestXMLHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org