aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/util/TestXMLHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/testcases/org/apache/poi/util/TestXMLHelper.java')
-rw-r--r--src/testcases/org/apache/poi/util/TestXMLHelper.java161
1 files changed, 0 insertions, 161 deletions
diff --git a/src/testcases/org/apache/poi/util/TestXMLHelper.java b/src/testcases/org/apache/poi/util/TestXMLHelper.java
deleted file mode 100644
index a4e8732b8d..0000000000
--- a/src/testcases/org/apache/poi/util/TestXMLHelper.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/* ====================================================================
- 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.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.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.jupiter.api.Test;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.XMLReader;
-
-class TestXMLHelper {
- @Test
- 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
- 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
- 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
- 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
- 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(reader.getClass().getName().contains("org.apache.xerces"),
- "Had Exception about not-recognized SAX feature: " + e + " which is only expected" +
- " for Xerces XML Parser, but had parser: " + reader);
- }
- readers.add(reader);
- }
- assertEquals(limit, readers.size());
- }
-
- /**
- * test that newXMLInputFactory returns a factory with sensible defaults
- */
- @Test
- 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
- void testNewXMLOutputFactory() {
- XMLOutputFactory factory = XMLHelper.newXMLOutputFactory();
- assertTrue((boolean)factory.getProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES));
- }
-
- /**
- * test that newXMLEventFactory returns a factory
- */
- @Test
- void testNewXMLEventFactory() {
- assertNotNull(XMLHelper.newXMLEventFactory());
- }
-}