aboutsummaryrefslogtreecommitdiffstats
path: root/src/integrationtest
diff options
context:
space:
mode:
Diffstat (limited to 'src/integrationtest')
-rw-r--r--src/integrationtest/org/apache/poi/stress/AbstractFileHandler.java284
-rw-r--r--src/integrationtest/org/apache/poi/stress/SlideShowHandler.java250
2 files changed, 267 insertions, 267 deletions
diff --git a/src/integrationtest/org/apache/poi/stress/AbstractFileHandler.java b/src/integrationtest/org/apache/poi/stress/AbstractFileHandler.java
index 6bfeee2e71..9b49cf7718 100644
--- a/src/integrationtest/org/apache/poi/stress/AbstractFileHandler.java
+++ b/src/integrationtest/org/apache/poi/stress/AbstractFileHandler.java
@@ -1,142 +1,142 @@
-/* ====================================================================
- 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.stress;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.poi.POIOLE2TextExtractor;
-import org.apache.poi.POITextExtractor;
-import org.apache.poi.extractor.ExtractorFactory;
-import org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor;
-import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
-import org.apache.xmlbeans.XmlException;
-
-public abstract class AbstractFileHandler implements FileHandler {
- public static final Set<String> EXPECTED_EXTRACTOR_FAILURES = new HashSet<String>();
- static {
- // password protected files
- EXPECTED_EXTRACTOR_FAILURES.add("document/bug53475-password-is-pass.docx");
- EXPECTED_EXTRACTOR_FAILURES.add("poifs/extenxls_pwd123.xlsx");
- EXPECTED_EXTRACTOR_FAILURES.add("poifs/protect.xlsx");
- EXPECTED_EXTRACTOR_FAILURES.add("poifs/protected_agile.docx");
- EXPECTED_EXTRACTOR_FAILURES.add("poifs/protected_sha512.xlsx");
-
- // unsupported file-types, no supported OLE2 parts
- EXPECTED_EXTRACTOR_FAILURES.add("hmef/quick-winmail.dat");
- EXPECTED_EXTRACTOR_FAILURES.add("hmef/winmail-sample1.dat");
- EXPECTED_EXTRACTOR_FAILURES.add("hmef/bug52400-winmail-simple.dat");
- EXPECTED_EXTRACTOR_FAILURES.add("hmef/bug52400-winmail-with-attachments.dat");
- EXPECTED_EXTRACTOR_FAILURES.add("hpsf/Test0313rur.adm");
- EXPECTED_EXTRACTOR_FAILURES.add("poifs/Notes.ole2");
- }
-
- @Override
- public void handleExtracting(File file) throws Exception {
- boolean before = ExtractorFactory.getThreadPrefersEventExtractors();
- try {
- ExtractorFactory.setThreadPrefersEventExtractors(true);
- handleExtractingInternal(file);
-
- ExtractorFactory.setThreadPrefersEventExtractors(false);
- handleExtractingInternal(file);
- } finally {
- ExtractorFactory.setThreadPrefersEventExtractors(before);
- }
-
- /* Did fail for some documents with special XML contents...
- try {
- OOXMLPrettyPrint.main(new String[] { file.getAbsolutePath(),
- "/tmp/pretty-" + file.getName() });
- } catch (ZipException e) {
- // ignore, not a Zip/OOXML file
- }*/
- }
-
- private void handleExtractingInternal(File file) throws Exception {
- long length = file.length();
- long modified = file.lastModified();
-
- POITextExtractor extractor = ExtractorFactory.createExtractor(file);
- try {
- assertNotNull(extractor);
-
- assertNotNull(extractor.getText());
-
- // also try metadata
- @SuppressWarnings("resource")
- POITextExtractor metadataExtractor = extractor.getMetadataTextExtractor();
- assertNotNull(metadataExtractor.getText());
-
- assertFalse("Expected Extraction to fail for file " + file + " and handler " + this + ", but did not fail!",
- EXPECTED_EXTRACTOR_FAILURES.contains(file.getParentFile().getName() + "/" + file.getName()));
-
- assertEquals("File should not be modified by extractor", length, file.length());
- assertEquals("File should not be modified by extractor", modified, file.lastModified());
-
- handleExtractingAsStream(file);
-
- if(extractor instanceof POIOLE2TextExtractor) {
- HPSFPropertiesExtractor hpsfExtractor = new HPSFPropertiesExtractor((POIOLE2TextExtractor)extractor);
- try {
- assertNotNull(hpsfExtractor.getDocumentSummaryInformationText());
- assertNotNull(hpsfExtractor.getSummaryInformationText());
- String text = hpsfExtractor.getText();
- //System.out.println(text);
- assertNotNull(text);
- } finally {
- hpsfExtractor.close();
- }
- }
- } catch (IllegalArgumentException e) {
- if(!EXPECTED_EXTRACTOR_FAILURES.contains(file.getParentFile().getName() + "/" + file.getName())) {
- throw e;
- }
- } finally {
- extractor.close();
- }
- }
-
- private void handleExtractingAsStream(File file) throws IOException, OpenXML4JException, XmlException {
- InputStream stream = new FileInputStream(file);
- try {
- POITextExtractor streamExtractor = ExtractorFactory.createExtractor(stream);
- try {
- assertNotNull(streamExtractor);
-
- assertNotNull(streamExtractor.getText());
- } finally {
- streamExtractor.close();
- }
- } finally {
- stream.close();
- }
- }
-
- @Override
- public void handleAdditional(File file) throws Exception {
- // by default we do nothing here
- }
-}
+/* ====================================================================
+ 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.stress;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.poi.POIOLE2TextExtractor;
+import org.apache.poi.POITextExtractor;
+import org.apache.poi.extractor.ExtractorFactory;
+import org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor;
+import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
+import org.apache.xmlbeans.XmlException;
+
+public abstract class AbstractFileHandler implements FileHandler {
+ public static final Set<String> EXPECTED_EXTRACTOR_FAILURES = new HashSet<String>();
+ static {
+ // password protected files
+ EXPECTED_EXTRACTOR_FAILURES.add("document/bug53475-password-is-pass.docx");
+ EXPECTED_EXTRACTOR_FAILURES.add("poifs/extenxls_pwd123.xlsx");
+ EXPECTED_EXTRACTOR_FAILURES.add("poifs/protect.xlsx");
+ EXPECTED_EXTRACTOR_FAILURES.add("poifs/protected_agile.docx");
+ EXPECTED_EXTRACTOR_FAILURES.add("poifs/protected_sha512.xlsx");
+
+ // unsupported file-types, no supported OLE2 parts
+ EXPECTED_EXTRACTOR_FAILURES.add("hmef/quick-winmail.dat");
+ EXPECTED_EXTRACTOR_FAILURES.add("hmef/winmail-sample1.dat");
+ EXPECTED_EXTRACTOR_FAILURES.add("hmef/bug52400-winmail-simple.dat");
+ EXPECTED_EXTRACTOR_FAILURES.add("hmef/bug52400-winmail-with-attachments.dat");
+ EXPECTED_EXTRACTOR_FAILURES.add("hpsf/Test0313rur.adm");
+ EXPECTED_EXTRACTOR_FAILURES.add("poifs/Notes.ole2");
+ }
+
+ @Override
+ public void handleExtracting(File file) throws Exception {
+ boolean before = ExtractorFactory.getThreadPrefersEventExtractors();
+ try {
+ ExtractorFactory.setThreadPrefersEventExtractors(true);
+ handleExtractingInternal(file);
+
+ ExtractorFactory.setThreadPrefersEventExtractors(false);
+ handleExtractingInternal(file);
+ } finally {
+ ExtractorFactory.setThreadPrefersEventExtractors(before);
+ }
+
+ /* Did fail for some documents with special XML contents...
+ try {
+ OOXMLPrettyPrint.main(new String[] { file.getAbsolutePath(),
+ "/tmp/pretty-" + file.getName() });
+ } catch (ZipException e) {
+ // ignore, not a Zip/OOXML file
+ }*/
+ }
+
+ private void handleExtractingInternal(File file) throws Exception {
+ long length = file.length();
+ long modified = file.lastModified();
+
+ POITextExtractor extractor = ExtractorFactory.createExtractor(file);
+ try {
+ assertNotNull(extractor);
+
+ assertNotNull(extractor.getText());
+
+ // also try metadata
+ @SuppressWarnings("resource")
+ POITextExtractor metadataExtractor = extractor.getMetadataTextExtractor();
+ assertNotNull(metadataExtractor.getText());
+
+ assertFalse("Expected Extraction to fail for file " + file + " and handler " + this + ", but did not fail!",
+ EXPECTED_EXTRACTOR_FAILURES.contains(file.getParentFile().getName() + "/" + file.getName()));
+
+ assertEquals("File should not be modified by extractor", length, file.length());
+ assertEquals("File should not be modified by extractor", modified, file.lastModified());
+
+ handleExtractingAsStream(file);
+
+ if(extractor instanceof POIOLE2TextExtractor) {
+ HPSFPropertiesExtractor hpsfExtractor = new HPSFPropertiesExtractor((POIOLE2TextExtractor)extractor);
+ try {
+ assertNotNull(hpsfExtractor.getDocumentSummaryInformationText());
+ assertNotNull(hpsfExtractor.getSummaryInformationText());
+ String text = hpsfExtractor.getText();
+ //System.out.println(text);
+ assertNotNull(text);
+ } finally {
+ hpsfExtractor.close();
+ }
+ }
+ } catch (IllegalArgumentException e) {
+ if(!EXPECTED_EXTRACTOR_FAILURES.contains(file.getParentFile().getName() + "/" + file.getName())) {
+ throw e;
+ }
+ } finally {
+ extractor.close();
+ }
+ }
+
+ private void handleExtractingAsStream(File file) throws IOException, OpenXML4JException, XmlException {
+ InputStream stream = new FileInputStream(file);
+ try {
+ POITextExtractor streamExtractor = ExtractorFactory.createExtractor(stream);
+ try {
+ assertNotNull(streamExtractor);
+
+ assertNotNull(streamExtractor.getText());
+ } finally {
+ streamExtractor.close();
+ }
+ } finally {
+ stream.close();
+ }
+ }
+
+ @Override
+ public void handleAdditional(File file) throws Exception {
+ // by default we do nothing here
+ }
+}
diff --git a/src/integrationtest/org/apache/poi/stress/SlideShowHandler.java b/src/integrationtest/org/apache/poi/stress/SlideShowHandler.java
index e798b35339..d76e959b8f 100644
--- a/src/integrationtest/org/apache/poi/stress/SlideShowHandler.java
+++ b/src/integrationtest/org/apache/poi/stress/SlideShowHandler.java
@@ -1,126 +1,126 @@
-/* ====================================================================
- 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.stress;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.awt.Dimension;
-import java.awt.Graphics2D;
-import java.awt.RenderingHints;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-import org.apache.poi.sl.draw.DrawFactory;
-import org.apache.poi.sl.usermodel.PictureData;
-import org.apache.poi.sl.usermodel.Shape;
-import org.apache.poi.sl.usermodel.ShapeContainer;
-import org.apache.poi.sl.usermodel.Slide;
-import org.apache.poi.sl.usermodel.SlideShow;
-import org.apache.poi.sl.usermodel.SlideShowFactory;
-import org.apache.poi.sl.usermodel.TextParagraph;
-import org.apache.poi.sl.usermodel.TextRun;
-import org.apache.poi.sl.usermodel.TextShape;
-
-public abstract class SlideShowHandler extends POIFSFileHandler {
- public void handleSlideShow(SlideShow<?,?> ss) throws IOException {
- renderSlides(ss);
-
- readContent(ss);
- readPictures(ss);
-
- // write out the file
- ByteArrayOutputStream out = writeToArray(ss);
-
- readContent(ss);
-
- // read in the writen file
- SlideShow<?,?> read = SlideShowFactory.create(new ByteArrayInputStream(out.toByteArray()));
- try {
- assertNotNull(read);
- readContent(read);
- } finally {
- read.close();
- }
- }
-
- private ByteArrayOutputStream writeToArray(SlideShow<?,?> ss) throws IOException {
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- try {
- ss.write(stream);
- } finally {
- stream.close();
- }
-
- return stream;
- }
-
-
- private void readContent(SlideShow<?,?> ss) {
- for (Slide<?,?> s : ss.getSlides()) {
- s.getTitle();
- readText(s);
- readText(s.getNotes());
- readText(s.getMasterSheet());
- }
- }
-
- private void readText(ShapeContainer<?,?> sc) {
- if (sc == null) return;
- for (Shape<?,?> s : sc) {
- if (s instanceof TextShape) {
- for (TextParagraph<?,?,?> tp : (TextShape<?,?>)s) {
- for (TextRun tr : tp) {
- tr.getRawText();
- }
- }
- }
- }
- }
-
- private void readPictures(SlideShow<?,?> ss) {
- for (PictureData pd : ss.getPictureData()) {
- Dimension dim = pd.getImageDimension();
- assertTrue(dim.getHeight() >= 0);
- assertTrue(dim.getWidth() >= 0);
- }
- }
-
- private void renderSlides(SlideShow<?,?> ss) {
- Dimension pgsize = ss.getPageSize();
-
- for (Slide<?,?> s : ss.getSlides()) {
- BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_ARGB);
- Graphics2D graphics = img.createGraphics();
- DrawFactory.getInstance(graphics).fixFonts(graphics);
-
- // default rendering options
- graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
- graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
- graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
-
- // draw stuff
- s.draw(graphics);
-
- graphics.dispose();
- img.flush();
- }
- }
+/* ====================================================================
+ 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.stress;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import org.apache.poi.sl.draw.DrawFactory;
+import org.apache.poi.sl.usermodel.PictureData;
+import org.apache.poi.sl.usermodel.Shape;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.Slide;
+import org.apache.poi.sl.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.SlideShowFactory;
+import org.apache.poi.sl.usermodel.TextParagraph;
+import org.apache.poi.sl.usermodel.TextRun;
+import org.apache.poi.sl.usermodel.TextShape;
+
+public abstract class SlideShowHandler extends POIFSFileHandler {
+ public void handleSlideShow(SlideShow<?,?> ss) throws IOException {
+ renderSlides(ss);
+
+ readContent(ss);
+ readPictures(ss);
+
+ // write out the file
+ ByteArrayOutputStream out = writeToArray(ss);
+
+ readContent(ss);
+
+ // read in the writen file
+ SlideShow<?,?> read = SlideShowFactory.create(new ByteArrayInputStream(out.toByteArray()));
+ try {
+ assertNotNull(read);
+ readContent(read);
+ } finally {
+ read.close();
+ }
+ }
+
+ private ByteArrayOutputStream writeToArray(SlideShow<?,?> ss) throws IOException {
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ try {
+ ss.write(stream);
+ } finally {
+ stream.close();
+ }
+
+ return stream;
+ }
+
+
+ private void readContent(SlideShow<?,?> ss) {
+ for (Slide<?,?> s : ss.getSlides()) {
+ s.getTitle();
+ readText(s);
+ readText(s.getNotes());
+ readText(s.getMasterSheet());
+ }
+ }
+
+ private void readText(ShapeContainer<?,?> sc) {
+ if (sc == null) return;
+ for (Shape<?,?> s : sc) {
+ if (s instanceof TextShape) {
+ for (TextParagraph<?,?,?> tp : (TextShape<?,?>)s) {
+ for (TextRun tr : tp) {
+ tr.getRawText();
+ }
+ }
+ }
+ }
+ }
+
+ private void readPictures(SlideShow<?,?> ss) {
+ for (PictureData pd : ss.getPictureData()) {
+ Dimension dim = pd.getImageDimension();
+ assertTrue(dim.getHeight() >= 0);
+ assertTrue(dim.getWidth() >= 0);
+ }
+ }
+
+ private void renderSlides(SlideShow<?,?> ss) {
+ Dimension pgsize = ss.getPageSize();
+
+ for (Slide<?,?> s : ss.getSlides()) {
+ BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_ARGB);
+ Graphics2D graphics = img.createGraphics();
+ DrawFactory.getInstance(graphics).fixFonts(graphics);
+
+ // default rendering options
+ graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+ graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+ graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
+
+ // draw stuff
+ s.draw(graphics);
+
+ graphics.dispose();
+ img.flush();
+ }
+ }
} \ No newline at end of file