From 2f1da7bc437a3825d1e4063abaedeff88c364341 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sat, 31 Aug 2019 05:15:57 +0000 Subject: [PATCH] Adjust reproducer test-case for bug 59322 to not print to stdout and close resources git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1866186 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hwpf/usermodel/TestBugs.java | 35 ++++-------------- test-data/document/59322.doc | Bin 0 -> 39936 bytes 2 files changed, 8 insertions(+), 27 deletions(-) create mode 100644 test-data/document/59322.doc diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java index 751813955e..e1388c4104 100644 --- a/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java @@ -24,19 +24,16 @@ import static org.junit.Assert.assertTrue; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Collection; import java.util.List; -import javax.xml.parsers.DocumentBuilderFactory; import org.apache.commons.codec.digest.DigestUtils; import org.apache.poi.POIDataSamples; import org.apache.poi.hwpf.HWPFDocument; -import org.apache.poi.hwpf.HWPFDocumentCore; import org.apache.poi.hwpf.HWPFOldDocument; import org.apache.poi.hwpf.HWPFTestDataSamples; import org.apache.poi.hwpf.converter.AbstractWordUtils; @@ -49,14 +46,13 @@ import org.apache.poi.hwpf.model.FileInformationBlock; import org.apache.poi.hwpf.model.PicturesTable; import org.apache.poi.hwpf.model.PlexOfField; import org.apache.poi.hwpf.model.SubdocumentType; +import org.apache.poi.ooxml.util.DocumentHelper; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.IOUtils; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; import org.junit.Test; import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; /** * Test different problems reported in the Apache Bugzilla @@ -901,27 +897,12 @@ public class TestBugs{ } @Test - public void test60217() throws Exception { - File file = new File("/tmp/word-doc-with-revised-table.doc"); - FileInputStream fileInputStream = new FileInputStream(file); - Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); - WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document); - HWPFDocumentCore hwpfDocumentCore = new HWPFDocument(HWPFDocumentCore.verifyAndBuildPOIFS(fileInputStream)); - wordToHtmlConverter.processDocument(hwpfDocumentCore); - System.out.println(document); - - System.out.println(document.getNodeName() + " -> " + document.getNodeValue()); - - printNode(document, " "); - - System.out.println("Process Complete"); - } - - private void printNode(Node rootNode, String spacer) { - System.out.println(spacer + rootNode.getNodeName() + " -> " + rootNode.getNodeValue()); - NodeList nl = rootNode.getChildNodes(); - for (int i = 0; i < nl.getLength(); i++) - printNode(nl.item(i), spacer + " "); + public void test59322() throws Exception { + try(HWPFDocument doc = HWPFTestDataSamples.openSampleFile("59322.doc")) { + Document document = DocumentHelper.createDocument(); + WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document); + wordToHtmlConverter.processDocument(doc); + assertNotNull(document); + } } - } diff --git a/test-data/document/59322.doc b/test-data/document/59322.doc new file mode 100644 index 0000000000000000000000000000000000000000..67e930936dff697e0b3a378188cd589bf8cae018 GIT binary patch literal 39936 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 K#{Z{r;Qs-+^uqZ7 literal 0 HcmV?d00001 -- 2.39.5