]> source.dussan.org Git - poi.git/commitdiff
Centralize logic for finding/opening sample files
authorYegor Kozlov <yegor@apache.org>
Wed, 19 Aug 2009 18:51:44 +0000 (18:51 +0000)
committerYegor Kozlov <yegor@apache.org>
Wed, 19 Aug 2009 18:51:44 +0000 (18:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@805928 13f79535-47bb-0310-9956-ffa450edef68

36 files changed:
build.xml
src/ooxml/testcases/org/apache/poi/TestDetectAsOOXML.java
src/ooxml/testcases/org/apache/poi/TestPOIXMLProperties.java
src/ooxml/testcases/org/apache/poi/ss/TestWorkbookFactory.java
src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java
src/ooxml/testcases/org/apache/poi/xssf/model/TestStylesTable.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
src/ooxml/testcases/org/apache/poi/xwpf/TestXWPFDocument.java
src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java [new file with mode: 0755]
src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java
src/ooxml/testcases/org/apache/poi/xwpf/model/TestXWPFHeaderFooterPolicy.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFHeader.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java
src/scratchpad/testcases/org/apache/poi/hwpf/HWPFDocFixture.java
src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java [new file with mode: 0755]
src/scratchpad/testcases/org/apache/poi/hwpf/TestHWPFPictures.java
src/scratchpad/testcases/org/apache/poi/hwpf/TestHWPFRangeParts.java
src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestDifferentRoutes.java
src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestWordExtractor.java
src/scratchpad/testcases/org/apache/poi/hwpf/extractor/TestWordExtractorBugs.java
src/scratchpad/testcases/org/apache/poi/hwpf/model/TestSavedByTable.java
src/scratchpad/testcases/org/apache/poi/hwpf/model/TestTextPieceTable.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug46610.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestHeaderStories.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestPictures.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestProblems.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestRangeDelete.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestRangeInsertion.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestRangeProperties.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestRangeReplacement.java
src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestShapes.java
src/testcases/org/apache/poi/POIDataSamples.java [new file with mode: 0755]
src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java

index 0dc8ff350ec52ac0e2cc0857aaa935e99a180ca6..1bc0579ab221eb71e1248c92832bc533d1dc7c9b 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -200,6 +200,7 @@ under the License.
         <pathelement location="${ooxml.output.dir}"/>
         <pathelement location="${ooxml.output.test.dir}"/>
         <pathelement location="${main.output.test.dir}"/> <!-- ooxml tests use some utilities from main tests -->
+        <pathelement location="${scratchpad.output.test.dir}"/> 
         <pathelement location="${junit.jar1.dir}"/>
     </path>
 
@@ -519,6 +520,7 @@ under the License.
         <path refid="ooxml.classpath"/>
         <pathelement path="${ooxml.output.dir}"/>
         <pathelement path="${main.output.test.dir}"/>
+        <pathelement path="${scratchpad.output.test.dir}"/>
         <pathelement location="${junit.jar1.dir}"/>
       </classpath>
     </javac>
index dca593c3c72ca051ac5dbfe535ddf85789bf5686..2461f463ddd25a7c821109194186ffae1a3f99cf 100644 (file)
@@ -22,23 +22,18 @@ package org.apache.poi;
 import junit.framework.TestCase;
 import java.io.*;
 
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+
 /**
  * Class to test that HXF correctly detects OOXML
  *  documents
  */
 public class TestDetectAsOOXML extends TestCase
 {
-       public String dirname;
-
-       public void setUp() {
-               dirname = System.getProperty("HSSF.testdata.path");
-       }
-
        public void testOpensProperly() throws Exception
        {
-               File f = new File(dirname + "/sample.xlsx");
-
-               POIXMLDocument.openPackage(f.toString());
+        OPCPackage.open(HSSFTestDataSamples.openSampleFileStream("sample.xlsx"));
        }
        
        public void testDetectAsPOIFS() throws Exception {
@@ -46,19 +41,19 @@ public class TestDetectAsOOXML extends TestCase
                
                // ooxml file is
                in = new PushbackInputStream(
-                               new FileInputStream(dirname + "/SampleSS.xlsx"), 10
+                               HSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx"), 10
                );
                assertTrue(POIXMLDocument.hasOOXMLHeader(in));
                
                // xls file isn't
                in = new PushbackInputStream(
-                               new FileInputStream(dirname + "/SampleSS.xls"), 10
+                               HSSFTestDataSamples.openSampleFileStream("SampleSS.xls"), 10
                );
                assertFalse(POIXMLDocument.hasOOXMLHeader(in));
                
                // text file isn't
                in = new PushbackInputStream(
-                               new FileInputStream(dirname + "/SampleSS.txt"), 10
+                               HSSFTestDataSamples.openSampleFileStream("SampleSS.txt"), 10
                );
                assertFalse(POIXMLDocument.hasOOXMLHeader(in));
        }
index 7d0128618b9ca327fbdcc16b27260cbecf393bd1..dd9eeeb939fd6080356c5d2e71d4f27c7e3fb29a 100755 (executable)
@@ -175,7 +175,7 @@ public final class TestPOIXMLProperties extends TestCase {
 
        public void testGetSetRevision() {
                String revision = _coreProperties.getRevision();
-               assertTrue("Revision number is 1", new Integer(_coreProperties.getRevision()).intValue() > 1);
+               assertTrue("Revision number is 1", new Integer(revision)> 1);
                _coreProperties.setRevision("20");
                assertEquals("20", _coreProperties.getRevision());
                _coreProperties.setRevision("20xx");
index 0cebd764103f8351ae9dafd65a8251de91ccafac..6858e93acb510a99547770afa3bc53dfa60164b7 100644 (file)
 
 package org.apache.poi.ss;
 
-import java.io.File;
-import java.io.FileInputStream;
-
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.usermodel.WorkbookFactory;
@@ -30,26 +28,14 @@ import org.apache.poi.openxml4j.opc.OPCPackage;
 import junit.framework.TestCase;
 
 public final class TestWorkbookFactory extends TestCase {
-       private File xls;
-       private File xlsx;
-       private File txt;
+       private String xls;
+       private String xlsx;
+       private String txt;
 
        protected void setUp() {
-               xls = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "SampleSS.xls"
-               );
-               xlsx = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "SampleSS.xlsx"
-               );
-               txt = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "SampleSS.txt"
-               );
-               assertTrue(xls.exists());
-               assertTrue(xlsx.exists());
-               assertTrue(txt.exists());
+               xls = "SampleSS.xls";
+               xlsx = "SampleSS.xlsx";
+               txt = "SampleSS.txt";
        }
 
        public void testCreateNative() throws Exception {
@@ -57,14 +43,15 @@ public final class TestWorkbookFactory extends TestCase {
 
                // POIFS -> hssf
                wb = WorkbookFactory.create(
-                               new POIFSFileSystem(new FileInputStream(xls))
+                               new POIFSFileSystem(HSSFTestDataSamples.openSampleFileStream(xls))
                );
                assertNotNull(wb);
                assertTrue(wb instanceof HSSFWorkbook);
 
                // Package -> xssf
                wb = WorkbookFactory.create(
-                               OPCPackage.open(xlsx.toString())
+                               OPCPackage.open(
+                        HSSFTestDataSamples.openSampleFileStream(xlsx))
                );
                assertNotNull(wb);
                assertTrue(wb instanceof XSSFWorkbook);
@@ -80,20 +67,20 @@ public final class TestWorkbookFactory extends TestCase {
 
                // InputStream -> either
                wb = WorkbookFactory.create(
-                               new FileInputStream(xls)
+                               HSSFTestDataSamples.openSampleFileStream(xls)
                );
                assertNotNull(wb);
                assertTrue(wb instanceof HSSFWorkbook);
 
                wb = WorkbookFactory.create(
-                               new FileInputStream(xlsx)
+                               HSSFTestDataSamples.openSampleFileStream(xlsx)
                );
                assertNotNull(wb);
                assertTrue(wb instanceof XSSFWorkbook);
 
                try {
                        wb = WorkbookFactory.create(
-                                       new FileInputStream(txt)
+                                       HSSFTestDataSamples.openSampleFileStream(txt)
                        );
                        fail();
                } catch(IllegalArgumentException e) {
index 95b8d71b1406d09371881ecf69e5d07398cb587e..94df0da632702ff80651ff0a2a83e71c47a5607e 100644 (file)
@@ -38,6 +38,14 @@ import org.apache.poi.util.TempFile;
  * @author Josh Micich
  */
 public class XSSFTestDataSamples {
+    
+    public static InputStream openSampleFileStream(String sampleFileName) {
+        return HSSFTestDataSamples.openSampleFileStream(sampleFileName);
+    }
+    public static byte[] getTestDataFileContent(String fileName) {
+        return HSSFTestDataSamples.getTestDataFileContent(fileName);
+    }
+
        public static final XSSFWorkbook openSampleWorkbook(String sampleName) {
                InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleName);
                try {
index f02cfb4e47acb6ae9c3203901558d0b2dfa9a01d..7e6281e757894533398a23181277695249bd3dc1 100644 (file)
@@ -25,31 +25,16 @@ import junit.framework.TestCase;
 
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.xssf.usermodel.XSSFRichTextString;
+import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 
 /**
  * Tests for {@link XSSFReader}
  */
 public final class TestXSSFReader extends TestCase {
-       private String dirName;
-
-       @Override
-       protected void setUp() {
-
-               dirName = System.getProperty("HSSF.testdata.path");
-               assertNotNull(dirName);
-               assertTrue( (new File(dirName)).exists() );
-
-               // Use system out logger
-               System.setProperty(
-                               "org.apache.poi.util.POILogger",
-                               "org.apache.poi.util.SystemOutLogger"
-               );
-       }
 
        public void testGetBits() throws Exception {
-               File f = new File(dirName, "SampleSS.xlsx");
-               OPCPackage pkg = OPCPackage.open(f.toString());
+               OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx"));
 
                XSSFReader r = new XSSFReader(pkg);
 
@@ -62,8 +47,7 @@ public final class TestXSSFReader extends TestCase {
        }
 
        public void testStyles() throws Exception {
-               File f = new File(dirName, "SampleSS.xlsx");
-               OPCPackage pkg = OPCPackage.open(f.toString());
+               OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx"));
 
                XSSFReader r = new XSSFReader(pkg);
 
@@ -72,8 +56,7 @@ public final class TestXSSFReader extends TestCase {
        }
 
        public void testStrings() throws Exception {
-               File f = new File(dirName, "SampleSS.xlsx");
-               OPCPackage pkg = OPCPackage.open(f.toString());
+        OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx"));
 
                XSSFReader r = new XSSFReader(pkg);
 
@@ -82,8 +65,7 @@ public final class TestXSSFReader extends TestCase {
        }
 
        public void testSheets() throws Exception {
-               File f = new File(dirName, "SampleSS.xlsx");
-               OPCPackage pkg = OPCPackage.open(f.toString());
+        OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("SampleSS.xlsx"));
 
                XSSFReader r = new XSSFReader(pkg);
                byte[] data = new byte[4096];
@@ -115,8 +97,7 @@ public final class TestXSSFReader extends TestCase {
         * (as they are defined in the workbook.xml)
         */
        public void testOrderOfSheets() throws Exception {
-               File f = new File(dirName, "reordered_sheets.xlsx");
-               OPCPackage pkg = OPCPackage.open(f.toString());
+        OPCPackage pkg = OPCPackage.open(XSSFTestDataSamples.openSampleFileStream("reordered_sheets.xlsx"));
 
                XSSFReader r = new XSSFReader(pkg);
 
index 07eaa4b8fcbc7f05ec61b65edad2c8662e2bf2be..14dde090e2e903be7b5077afaf76f33a0eb9f767 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.poi.xssf.model;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
 import java.util.List;
 
 import org.apache.poi.ss.usermodel.Cell;
@@ -120,14 +119,7 @@ public class TestCommentsTable extends TestCase {
        }
 
        public void testDontLoostNewLines() throws Exception {
-               File xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "WithVariousData.xlsx"
-               );
-               assertTrue(xml.exists());
-
-               OPCPackage pkg = OPCPackage.open(xml.toString());
-               XSSFWorkbook wb = new XSSFWorkbook(pkg);
+               XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithVariousData.xlsx");
                List<POIXMLDocumentPart> rels = wb.getSheetAt(0).getRelations();
                CommentsTable ct = null;
                for(POIXMLDocumentPart p : rels) {
@@ -171,13 +163,7 @@ public class TestCommentsTable extends TestCase {
        }
 
        public void testExisting() throws Exception {
-               File xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "WithVariousData.xlsx"
-               );
-               assertTrue(xml.exists());
-
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithVariousData.xlsx");
                Sheet sheet1 = workbook.getSheetAt(0);
                Sheet sheet2 = workbook.getSheetAt(1);
 
@@ -207,13 +193,7 @@ public class TestCommentsTable extends TestCase {
        }
 
        public void testWriteRead() throws Exception {
-               File xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "WithVariousData.xlsx"
-               );
-               assertTrue(xml.exists());
-
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithVariousData.xlsx");
                XSSFSheet sheet1 = workbook.getSheetAt(0);
                XSSFSheet sheet2 = workbook.getSheetAt(1);
 
@@ -260,13 +240,7 @@ public class TestCommentsTable extends TestCase {
        }
 
        public void testReadWriteMultipleAuthors() throws Exception {
-               File xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "WithMoreVariousData.xlsx"
-               );
-               assertTrue(xml.exists());
-
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx");
                XSSFSheet sheet1 = workbook.getSheetAt(0);
                XSSFSheet sheet2 = workbook.getSheetAt(1);
 
index 46b0fd802c5743b594c33e359e0d844ec8cb0545..7adfdd0f5cf8e36f5aca961fee3cfcad637a9896 100644 (file)
@@ -17,8 +17,6 @@
 
 package org.apache.poi.xssf.model;
 
-import java.io.File;
-
 import org.apache.poi.xssf.usermodel.XSSFCellStyle;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.xssf.XSSFTestDataSamples;
@@ -26,15 +24,7 @@ import org.apache.poi.xssf.XSSFTestDataSamples;
 import junit.framework.TestCase;
 
 public final class TestStylesTable extends TestCase {
-       private File xml;
-
-       protected void setUp() {
-               xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "Formatting.xlsx"
-               );
-               assertTrue(xml.exists());
-       }
+       private String testFile = "Formatting.xlsx";
 
        public void testCreateNew() {
                StylesTable st = new StylesTable();
@@ -64,7 +54,7 @@ public final class TestStylesTable extends TestCase {
        }
 
        public void testLoadExisting() throws Exception {
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+               XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook(testFile);
                assertNotNull(workbook.getStylesSource());
 
                StylesTable st = workbook.getStylesSource();
@@ -72,7 +62,7 @@ public final class TestStylesTable extends TestCase {
                doTestExisting(st);
        }
        public void testLoadSaveLoad() throws Exception {
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+               XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook(testFile);
                assertNotNull(workbook.getStylesSource());
 
                StylesTable st = workbook.getStylesSource();
@@ -136,7 +126,7 @@ public final class TestStylesTable extends TestCase {
        }
 
        public void testPopulateExisting() throws Exception {
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+               XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook(testFile);
                assertNotNull(workbook.getStylesSource());
 
                StylesTable st = workbook.getStylesSource();
index 0a7b08347e7cf8900f9cc43d8ffc968a1193ce5b..e6d6e979523965666a73fb4cd08777a7b14801c5 100644 (file)
@@ -39,13 +39,7 @@ public final class TestXSSFHyperlink extends BaseTestHyperlink {
        }
 
        public void testLoadExisting() throws Exception {
-               File xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "WithMoreVariousData.xlsx"
-               );
-               assertTrue(xml.exists());
-
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+               XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx");
                assertEquals(3, workbook.getNumberOfSheets());
 
                XSSFSheet sheet = workbook.getSheetAt(0);
@@ -56,13 +50,7 @@ public final class TestXSSFHyperlink extends BaseTestHyperlink {
        }
 
        public void testLoadSave() throws Exception {
-               File xml = new File(
-                               System.getProperty("HSSF.testdata.path") +
-                               File.separator + "WithMoreVariousData.xlsx"
-               );
-               assertTrue(xml.exists());
-
-               XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+               XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx");
                CreationHelper createHelper = workbook.getCreationHelper();
                assertEquals(3, workbook.getNumberOfSheets());
                XSSFSheet sheet = workbook.getSheetAt(0);
index bebfe308267a39fa08a649c1996100c085224e93..fa3d42d3873ff5385dfe2d7f751a1c732cd77b74 100644 (file)
@@ -17,8 +17,6 @@
 
 package org.apache.poi.xssf.usermodel;
 
-import java.io.File;
-
 import org.apache.poi.ss.usermodel.BaseTestSheet;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -54,13 +52,7 @@ public class TestXSSFSheet extends BaseTestSheet {
     }
 
     public void testExistingHeaderFooter() throws Exception {
-        File xml = new File(
-                System.getProperty("HSSF.testdata.path") +
-                        File.separator + "45540_classic_Header.xlsx"
-        );
-        assertTrue(xml.exists());
-
-        XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("45540_classic_Header.xlsx");
         XSSFOddHeader hdr;
         XSSFOddFooter ftr;
 
index e31e42f7530c61b4df71454696266b6ba4ec8660..f55e7f5081542d683ddff24eba04db8d526482fa 100644 (file)
@@ -29,27 +29,10 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFRelation;
 
 public final class TestXWPFDocument extends TestCase {
-       private File sampleFile;
-       private File complexFile;
-
-       protected void setUp() throws Exception {
-               super.setUp();
-
-               sampleFile = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "sample.docx"
-               );
-               complexFile = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "IllustrativeCases.docx"
-               );
-
-               assertTrue(sampleFile.exists());
-               assertTrue(complexFile.exists());
-       }
 
        public void testContainsMainContentType() throws Exception {
-               OPCPackage pack = POIXMLDocument.openPackage(sampleFile.toString());
+               XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");
+        OPCPackage pack = doc.getPackage();
 
                boolean found = false;
                for(PackagePart part : pack.getParts()) {
@@ -62,40 +45,24 @@ public final class TestXWPFDocument extends TestCase {
        }
 
        public void testOpen() throws Exception {
-               POIXMLDocument.openPackage(sampleFile.toString());
-               POIXMLDocument.openPackage(complexFile.toString());
-
-               new XWPFDocument(
-                               POIXMLDocument.openPackage(sampleFile.toString())
-               );
-               new XWPFDocument(
-                               POIXMLDocument.openPackage(complexFile.toString())
-               );
-
                XWPFDocument xml;
 
                // Simple file
-               xml = new XWPFDocument(
-                               POIXMLDocument.openPackage(sampleFile.toString())
-               );
+               xml = XWPFTestDataSamples.openSampleDocument("sample.docx");
                // Check it has key parts
                assertNotNull(xml.getDocument());
                assertNotNull(xml.getDocument().getBody());
                assertNotNull(xml.getStyle());
 
                // Complex file
-               xml = new XWPFDocument(
-                               POIXMLDocument.openPackage(complexFile.toString())
-               );
+        xml = XWPFTestDataSamples.openSampleDocument("IllustrativeCases.docx");
                assertNotNull(xml.getDocument());
                assertNotNull(xml.getDocument().getBody());
                assertNotNull(xml.getStyle());
        }
 
        public void testMetadataBasics() throws Exception {
-               XWPFDocument xml = new XWPFDocument(
-                               POIXMLDocument.openPackage(sampleFile.toString())
-               );
+        XWPFDocument xml = XWPFTestDataSamples.openSampleDocument("sample.docx");
                assertNotNull(xml.getProperties().getCoreProperties());
                assertNotNull(xml.getProperties().getExtendedProperties());
 
@@ -108,9 +75,7 @@ public final class TestXWPFDocument extends TestCase {
        }
 
        public void testMetadataComplex() throws Exception {
-               XWPFDocument xml = new XWPFDocument(
-                               POIXMLDocument.openPackage(complexFile.toString())
-               );
+               XWPFDocument xml = XWPFTestDataSamples.openSampleDocument("IllustrativeCases.docx");
                assertNotNull(xml.getProperties().getCoreProperties());
                assertNotNull(xml.getProperties().getExtendedProperties());
 
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java b/src/ooxml/testcases/org/apache/poi/xwpf/XWPFTestDataSamples.java
new file mode 100755 (executable)
index 0000000..3255d62
--- /dev/null
@@ -0,0 +1,54 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+package org.apache.poi.xwpf;\r
+\r
+import org.apache.poi.xwpf.usermodel.XWPFDocument;\r
+import org.apache.poi.hwpf.HWPFTestDataSamples;\r
+import org.apache.poi.POIDataSamples;\r
+\r
+import java.io.*;\r
+\r
+/**\r
+ * @author Yegor Kozlov\r
+ */\r
+public class XWPFTestDataSamples {\r
+\r
+    public static XWPFDocument openSampleDocument(String sampleName) {\r
+        InputStream is = HWPFTestDataSamples.openSampleFileStream(sampleName);\r
+        try {\r
+            return new XWPFDocument(is);\r
+        } catch (IOException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
+\r
+    public static XWPFDocument writeOutAndReadBack(XWPFDocument doc) {\r
+        try {\r
+            ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);\r
+            doc.write(baos);\r
+            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());\r
+            return new XWPFDocument(bais);\r
+        } catch (IOException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
+\r
+    public static POIDataSamples getInstance(){\r
+        return HWPFTestDataSamples.getInstance();\r
+    }\r
+\r
+}\r
index fe80baff10ec402947d9d9550665de2c3cee1b96..cffdaec9ab5b3ed5b41ccce0267ef137e42c1dc5 100644 (file)
@@ -21,6 +21,7 @@ import java.io.IOException;
 
 import org.apache.poi.POIXMLDocument;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
 
 import junit.framework.TestCase;
 
@@ -33,7 +34,7 @@ public class TestXWPFWordExtractor extends TestCase {
      * Get text out of the simple file
      */
     public void testGetSimpleText() throws Exception {
-        XWPFDocument doc = open("sample.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         String text = extractor.getText();
@@ -62,7 +63,7 @@ public class TestXWPFWordExtractor extends TestCase {
      * Tests getting the text out of a complex file
      */
     public void testGetComplexText() throws Exception {
-        XWPFDocument doc = open("IllustrativeCases.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("IllustrativeCases.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         String text = extractor.getText();
@@ -94,7 +95,7 @@ public class TestXWPFWordExtractor extends TestCase {
     }
 
     public void testGetWithHyperlinks() throws Exception {
-        XWPFDocument doc = open("TestDocument.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         // Now check contents
@@ -119,7 +120,7 @@ public class TestXWPFWordExtractor extends TestCase {
     }
 
     public void testHeadersFooters() throws Exception {
-        XWPFDocument doc = open("ThreeColHeadFoot.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("ThreeColHeadFoot.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         assertEquals(
@@ -138,7 +139,7 @@ public class TestXWPFWordExtractor extends TestCase {
 
         // Now another file, expect multiple headers
         //  and multiple footers
-        doc = open("DiffFirstPageHeadFoot.docx");
+        doc = XWPFTestDataSamples.openSampleDocument("DiffFirstPageHeadFoot.docx");
         extractor = new XWPFWordExtractor(doc);
         extractor =
                 new XWPFWordExtractor(doc);
@@ -162,7 +163,7 @@ public class TestXWPFWordExtractor extends TestCase {
     }
 
     public void testFootnotes() throws Exception {
-        XWPFDocument doc = open("footnotes.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("footnotes.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         assertTrue(extractor.getText().contains("snoska"));
@@ -170,14 +171,14 @@ public class TestXWPFWordExtractor extends TestCase {
 
 
     public void testTableFootnotes() throws Exception {
-        XWPFDocument doc = open("table_footnotes.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("table_footnotes.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         assertTrue(extractor.getText().contains("snoska"));
     }
 
     public void testFormFootnotes() throws Exception {
-        XWPFDocument doc = open("form_footnotes.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("form_footnotes.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         String text = extractor.getText();
@@ -186,33 +187,18 @@ public class TestXWPFWordExtractor extends TestCase {
     }
 
     public void testEndnotes() throws Exception {
-        XWPFDocument doc = open("endnotes.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("endnotes.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         assertTrue(extractor.getText().contains("XXX"));
     }
 
     public void testInsertedDeletedText() throws Exception {
-        XWPFDocument doc = open("delins.docx");
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("delins.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
 
         assertTrue(extractor.getText().contains("pendant worn"));
         assertTrue(extractor.getText().contains("extremely well"));
     }
 
-    //TODO use the same logic for opening test files as in HSSFTestDataSamples
-    private XWPFDocument open(String sampleFileName) throws IOException {
-        File file = new File(
-                System.getProperty("HWPF.testdata.path"), sampleFileName);
-
-        try {
-            if(!sampleFileName.equals(file.getCanonicalFile().getName())){
-                throw new RuntimeException("File name is case-sensitive: requested '" + sampleFileName
-                        + "' but actual file is '" + file.getCanonicalFile().getName() + "'");
-            }
-        } catch (IOException e){
-            throw new RuntimeException(e);
-        }
-        return new XWPFDocument(POIXMLDocument.openPackage(file.getPath()));
-    }
 }
index ef5d5868a06cc4772731dcdd870e5c9cece0e4cf..13c04b0193a619a9305922be199c9759d3cba01e 100644 (file)
@@ -20,6 +20,7 @@ import java.io.File;
 
 import org.apache.poi.POIXMLDocument;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
 
 import junit.framework.TestCase;
 
@@ -36,49 +37,13 @@ public class TestXWPFHeaderFooterPolicy extends TestCase {
 
        protected void setUp() throws Exception {
                super.setUp();
-               File file;
 
-               file = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "NoHeadFoot.docx"
-               );
-               assertTrue(file.exists());
-               noHeader = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
-
-               file = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "ThreeColHead.docx"
-               );
-               assertTrue(file.exists());
-               header = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
-
-               file = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "SimpleHeadThreeColFoot.docx"
-               );
-               assertTrue(file.exists());
-               headerFooter = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
-
-               file = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "FancyFoot.docx"
-               );
-               assertTrue(file.exists());
-               footer = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
-
-               file = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "PageSpecificHeadFoot.docx"
-               );
-               assertTrue(file.exists());
-               oddEven = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
-
-               file = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "DiffFirstPageHeadFoot.docx"
-               );
-               assertTrue(file.exists());
-               diffFirst = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
+               noHeader = XWPFTestDataSamples.openSampleDocument("NoHeadFoot.docx");
+        header = XWPFTestDataSamples.openSampleDocument("ThreeColHead.docx");
+        headerFooter = XWPFTestDataSamples.openSampleDocument("SimpleHeadThreeColFoot.docx");
+        footer = XWPFTestDataSamples.openSampleDocument("FancyFoot.docx");
+        oddEven = XWPFTestDataSamples.openSampleDocument("PageSpecificHeadFoot.docx");
+        diffFirst = XWPFTestDataSamples.openSampleDocument("DiffFirstPageHeadFoot.docx");
        }
 
        public void testPolicy() {
index 84a655ed655a874f42dbf483481a94f98d98df43..a893ab11837ac5e3069735471cab449d9098d79f 100644 (file)
@@ -23,6 +23,7 @@ import junit.framework.TestCase;
 
 import org.apache.poi.POIXMLDocument;
 import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHdrFtr;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
@@ -31,16 +32,8 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;
 public class TestXWPFHeader extends TestCase {
        
        public void testSimpleHeader() throws IOException {
-               File sampleFile = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "headerFooter.docx"
-               );
-               assertTrue(sampleFile.exists());
-               XWPFDocument sampleDoc;
-               sampleDoc = new XWPFDocument(
-                               POIXMLDocument.openPackage(sampleFile.toString())
-               );
-               
+               XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerFooter.docx");
+
                XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
                
                
@@ -55,15 +48,7 @@ public class TestXWPFHeader extends TestCase {
        }
        
        public void testSetHeader() throws IOException {
-               File sampleFile = new File(
-                               System.getProperty("HWPF.testdata.path") +
-                               File.separator + "SampleDoc.docx"
-               );
-               assertTrue(sampleFile.exists());
-               XWPFDocument sampleDoc;
-               sampleDoc = new XWPFDocument(
-                               POIXMLDocument.openPackage(sampleFile.toString())
-               );
+               XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
                // no header is set (yet)
                XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
                assertNull(policy.getDefaultHeader());
index f02135afacbcaab9713961cb8e0a1b8a6d79942d..12405fb4a7ad76b1dd25f1a139b4d36a02cc9dd0 100644 (file)
@@ -22,6 +22,7 @@ import java.math.BigInteger;
 import junit.framework.TestCase;
 
 import org.apache.poi.POIXMLDocument;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBorder;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTInd;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTJc;
@@ -41,26 +42,13 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTextAlignment;
  * Tests for XWPF Paragraphs
  */
 public final class TestXWPFParagraph extends TestCase {
-    /**
-     * A simple file
-     */
-    private XWPFDocument xml;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        File file = new File(
-                System.getProperty("HWPF.testdata.path") +
-                File.separator + "ThreeColHead.docx"
-        );
-        assertTrue(file.exists());
-        xml = new XWPFDocument(POIXMLDocument.openPackage(file.toString()));
-    }
 
     /**
      * Check that we get the right paragraph from the header
      */
     public void disabled_testHeaderParagraph() {
+        XWPFDocument xml = XWPFTestDataSamples.openSampleDocument("ThreeColHead.docx");
+
         XWPFHeader hdr = xml.getHeaderFooterPolicy().getDefaultHeader();
         assertNotNull(hdr);
 
@@ -77,6 +65,7 @@ public final class TestXWPFParagraph extends TestCase {
      * Check that we get the right paragraphs from the document
      */
     public void disabled_testDocumentParagraph() {
+        XWPFDocument xml = XWPFTestDataSamples.openSampleDocument("ThreeColHead.docx");
         XWPFParagraph[] ps = xml.getParagraphs();
         assertEquals(10, ps.length);
 
index c0dc9d41b54611e8cc083bf79f8ba919e016d132..2eb46a4291bc47efbf19cc3da42408b6828eb80c 100644 (file)
@@ -41,17 +41,8 @@ public final class HWPFDocFixture
   {
     try
     {
-      String filename = System.getProperty("HWPF.testdata.path");
-      if (filename == null)
-      {
-        filename = "c:";
-      }
-
-      filename = filename + "/test.doc";
-
-
-      POIFSFileSystem filesystem = new POIFSFileSystem(new FileInputStream(
-        new File(filename)));
+      POIFSFileSystem filesystem = new POIFSFileSystem(
+              HWPFTestDataSamples.openSampleFileStream("test.doc"));
 
       DocumentEntry documentProps =
         (DocumentEntry) filesystem.getRoot().getEntry("WordDocument");
diff --git a/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java b/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java
new file mode 100755 (executable)
index 0000000..0b6f529
--- /dev/null
@@ -0,0 +1,65 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+package org.apache.poi.hwpf;\r
+\r
+import org.apache.poi.POIDataSamples;\r
+\r
+import java.io.*;\r
+\r
+public class HWPFTestDataSamples extends POIDataSamples {\r
+\r
+    private static final HWPFTestDataSamples _inst = new HWPFTestDataSamples("HWPF.testdata.path", "SampleDoc.doc");\r
+\r
+\r
+    private HWPFTestDataSamples(String dir, String classPathTestFile){\r
+        super(dir, classPathTestFile);\r
+    }\r
+\r
+    public static POIDataSamples getInstance(){\r
+        return _inst;\r
+    }\r
+\r
+    public static InputStream openSampleFileStream(String sampleFileName) {\r
+        return _inst.openResourceAsStream(sampleFileName);\r
+    }\r
+    public static byte[] getTestDataFileContent(String fileName) {\r
+        return _inst.readFile(fileName);\r
+    }\r
+\r
+    public static HWPFDocument openSampleFile(String sampleFileName) {\r
+        try {\r
+            return new HWPFDocument(_inst.openResourceAsStream(sampleFileName));\r
+        } catch (IOException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
+    /**\r
+     * Writes a spreadsheet to a <tt>ByteArrayOutputStream</tt> and reads it back\r
+     * from a <tt>ByteArrayInputStream</tt>.<p/>\r
+     * Useful for verifying that the serialisation round trip\r
+     */\r
+    public static HWPFDocument writeOutAndReadBack(HWPFDocument original) {\r
+        try {\r
+            ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);\r
+            original.write(baos);\r
+            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());\r
+            return new HWPFDocument(bais);\r
+        } catch (IOException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
+}\r
index 0819d58fa513bdeecf87c17691e7e567ced7db24..4cb88ae30b8bb32b3d4e236ae6e4276ec2d7b3ee 100644 (file)
@@ -17,9 +17,6 @@
 
 package org.apache.poi.hwpf;
 
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
 import java.util.List;
 
 import junit.framework.TestCase;
@@ -43,33 +40,32 @@ public final class TestHWPFPictures extends TestCase {
        private String imgDFile;
 
        protected void setUp() {
-               String dirname = System.getProperty("HWPF.testdata.path");
 
-               docAFile = dirname + "/testPictures.doc";
-               docBFile = dirname + "/two_images.doc";
-               docCFile = dirname + "/vector_image.doc";
-               docDFile = dirname + "/GaiaTest.doc";
+               docAFile = "testPictures.doc";
+               docBFile = "two_images.doc";
+               docCFile = "vector_image.doc";
+               docDFile = "GaiaTest.doc";
 
-               imgAFile = dirname + "/simple_image.jpg";
-               imgBFile = dirname + "/simple_image.png";
-               imgCFile = dirname + "/vector_image.emf";
-               imgDFile = dirname + "/GaiaTestImg.png";
+               imgAFile = "simple_image.jpg";
+               imgBFile = "simple_image.png";
+               imgCFile = "vector_image.emf";
+               imgDFile = "GaiaTestImg.png";
        }
 
        /**
         * Test just opening the files
         */
        public void testOpen() throws Exception {
-               HWPFDocument docA = new HWPFDocument(new FileInputStream(docAFile));
-               HWPFDocument docB = new HWPFDocument(new FileInputStream(docBFile));
+               HWPFDocument docA = HWPFTestDataSamples.openSampleFile(docAFile);
+               HWPFDocument docB = HWPFTestDataSamples.openSampleFile(docBFile);
        }
 
        /**
         * Test that we have the right numbers of images in each file
         */
        public void testImageCount() throws Exception {
-               HWPFDocument docA = new HWPFDocument(new FileInputStream(docAFile));
-               HWPFDocument docB = new HWPFDocument(new FileInputStream(docBFile));
+               HWPFDocument docA = HWPFTestDataSamples.openSampleFile(docAFile);
+               HWPFDocument docB = HWPFTestDataSamples.openSampleFile(docBFile);
 
                assertNotNull(docA.getPicturesTable());
                assertNotNull(docB.getPicturesTable());
@@ -88,7 +84,7 @@ public final class TestHWPFPictures extends TestCase {
         * Test that we have the right images in at least one file
         */
        public void testImageData() throws Exception {
-               HWPFDocument docB = new HWPFDocument(new FileInputStream(docBFile));
+               HWPFDocument docB = HWPFTestDataSamples.openSampleFile(docBFile);
                PicturesTable picB = docB.getPicturesTable();
                List picturesB = picB.getAllPictures();
 
@@ -115,7 +111,7 @@ public final class TestHWPFPictures extends TestCase {
         * Test that compressed image data is correctly returned.
         */
        public void testCompressedImageData() throws Exception {
-               HWPFDocument docC = new HWPFDocument(new FileInputStream(docCFile));
+               HWPFDocument docC = HWPFTestDataSamples.openSampleFile(docCFile);
                PicturesTable picC = docC.getPicturesTable();
                List picturesC = picC.getAllPictures();
 
@@ -136,7 +132,7 @@ public final class TestHWPFPictures extends TestCase {
         *  bug #44937
         */
        public void BROKENtestEscherDrawing() throws Exception {
-               HWPFDocument docD = new HWPFDocument(new FileInputStream(docDFile));
+               HWPFDocument docD = HWPFTestDataSamples.openSampleFile(docDFile);
                List allPictures = docD.getPicturesTable().getAllPictures();
 
                assertEquals(1, allPictures.size());
@@ -158,23 +154,6 @@ public final class TestHWPFPictures extends TestCase {
        }
 
        private static byte[] readFile(String file) {
-               ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               try {
-                       FileInputStream fis = new FileInputStream(file);
-                       byte[] buffer = new byte[1024];
-
-                       int read = 0;
-                       while(read > -1) {
-                               read = fis.read(buffer);
-                               if(read > 0) {
-                                       baos.write(buffer,0,read);
-                               }
-                       }
-                       fis.close();
-               } catch (IOException e) {
-                       throw new RuntimeException(e);
-               }
-
-               return baos.toByteArray();
+               return HWPFTestDataSamples.getTestDataFileContent(file);
        }
 }
index bda94653012bba0369f868e0b9c6b4b7a28b49f9..6aee79605b8a1d13a6c7de79acf5a528f189d8b5 100644 (file)
@@ -17,8 +17,6 @@
 
 package org.apache.poi.hwpf;
 
-import java.io.FileInputStream;
-
 import org.apache.poi.hwpf.usermodel.Range;
 
 import junit.framework.TestCase;
@@ -96,17 +94,8 @@ public final class TestHWPFRangeParts extends TestCase {
        private HWPFDocument docUnicode;
 
        public void setUp() throws Exception {
-               String dirname = System.getProperty("HWPF.testdata.path");
-
-               String filename = dirname + "/HeaderFooterUnicode.doc";
-               docUnicode = new HWPFDocument(
-                               new FileInputStream(filename)
-               );
-
-               filename = dirname + "/ThreeColHeadFoot.doc";
-               docAscii = new HWPFDocument(
-                               new FileInputStream(filename)
-               );
+               docUnicode = HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
+               docAscii = HWPFTestDataSamples.openSampleFile("ThreeColHeadFoot.doc");
        }
 
        public void testBasics() {
index 685ce949bb86bd44df359d5a05ab7b0ec8b7c152..559d95aacf1628b1fac09f7df04041d19fb3a8a7 100644 (file)
 
 package org.apache.poi.hwpf.extractor;
 
-import java.io.FileInputStream;
 import java.util.Iterator;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.hwpf.model.TextPiece;
 import org.apache.poi.hwpf.usermodel.Paragraph;
 import org.apache.poi.hwpf.usermodel.Range;
@@ -53,10 +53,7 @@ public final class TestDifferentRoutes extends TestCase {
        private HWPFDocument doc;
 
     protected void setUp() throws Exception {
-               String dirname = System.getProperty("HWPF.testdata.path");
-
-               String filename = dirname + "/test2.doc";
-               doc = new HWPFDocument(new FileInputStream(filename));
+               doc = HWPFTestDataSamples.openSampleFile("test2.doc");
     }
 
     /**
index a945540a0a31be45d2e55c2e8037e5781297878e..9d32badaf2c60ebe0768ecd5b7e2fab48748fe21 100644 (file)
 
 package org.apache.poi.hwpf.extractor;
 
-import java.io.FileInputStream;
-
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 
+import java.io.FileInputStream;
+
 /**
  * Test the different routes to extracting text
  *
@@ -47,7 +48,7 @@ public final class TestWordExtractor extends TestCase {
                        "\r\n",
                        "It is otherwise very very boring.\r\n"
        };
-       private String p_text1_block = new String();
+       private String p_text1_block = "";
 
        // Well behaved document
        private WordExtractor extractor;
@@ -64,18 +65,17 @@ public final class TestWordExtractor extends TestCase {
         private String filename6;
 
     protected void setUp() throws Exception {
-               String dirname = System.getProperty("HWPF.testdata.path");
                String pdirname = System.getProperty("POIFS.testdata.path");
 
-               String filename = dirname + "/test2.doc";
-               String filename2 = dirname + "/test.doc";
+               String filename = "test2.doc";
+               String filename2 = "test.doc";
                filename3 = pdirname + "/excel_with_embeded.xls";
-               filename4 = dirname + "/ThreeColHeadFoot.doc";
-               filename5 = dirname + "/HeaderFooterUnicode.doc";
-                filename6 = dirname + "/footnote.doc";
+               filename4 = "ThreeColHeadFoot.doc";
+               filename5 = "HeaderFooterUnicode.doc";
+                filename6 = "footnote.doc";
 
-               extractor = new WordExtractor(new FileInputStream(filename));
-               extractor2 = new WordExtractor(new FileInputStream(filename2));
+               extractor = new WordExtractor(HWPFTestDataSamples.openSampleFileStream(filename));
+               extractor2 = new WordExtractor(HWPFTestDataSamples.openSampleFileStream(filename2));
 
                // Build splat'd out text version
                for(int i=0; i<p_text1.length; i++) {
@@ -123,7 +123,8 @@ public final class TestWordExtractor extends TestCase {
      * @throws Exception
      */
     public void testExtractFromEmbeded() throws Exception {
-       POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filename3));
+       POIFSFileSystem fs = new POIFSFileSystem(
+                new FileInputStream(filename3));
        HWPFDocument doc;
        WordExtractor extractor3;
 
@@ -164,9 +165,7 @@ public final class TestWordExtractor extends TestCase {
 
     public void testWithHeader() throws Exception {
        // Non-unicode
-       HWPFDocument doc = new HWPFDocument(
-                       new FileInputStream(filename4)
-       );
+       HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename4);
        extractor = new WordExtractor(doc);
 
        assertEquals(
@@ -181,9 +180,7 @@ public final class TestWordExtractor extends TestCase {
 
 
        // Unicode
-       doc = new HWPFDocument(
-                       new FileInputStream(filename5)
-       );
+       doc = HWPFTestDataSamples.openSampleFile(filename5);
        extractor = new WordExtractor(doc);
 
        assertEquals(
@@ -198,9 +195,7 @@ public final class TestWordExtractor extends TestCase {
 
     public void testWithFooter() throws Exception {
        // Non-unicode
-       HWPFDocument doc = new HWPFDocument(
-                       new FileInputStream(filename4)
-       );
+       HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename4);
        extractor = new WordExtractor(doc);
 
        assertEquals(
@@ -215,9 +210,7 @@ public final class TestWordExtractor extends TestCase {
 
 
        // Unicode
-       doc = new HWPFDocument(
-                       new FileInputStream(filename5)
-       );
+       doc = HWPFTestDataSamples.openSampleFile(filename5);
        extractor = new WordExtractor(doc);
 
        assertEquals(
@@ -231,9 +224,7 @@ public final class TestWordExtractor extends TestCase {
     }
 
     public void testFootnote() throws Exception {
-        HWPFDocument doc = new HWPFDocument(
-                new FileInputStream(filename6)
-        );
+        HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename6);
         extractor = new WordExtractor(doc);
 
         String[] text = extractor.getFootnoteText();
@@ -246,9 +237,7 @@ public final class TestWordExtractor extends TestCase {
     }
 
     public void testEndnote() throws Exception {
-        HWPFDocument doc = new HWPFDocument(
-                new FileInputStream(filename6)
-        );
+        HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename6);
         extractor = new WordExtractor(doc);
 
         String[] text = extractor.getEndnoteText();
@@ -261,9 +250,7 @@ public final class TestWordExtractor extends TestCase {
     }
 
     public void testComments() throws Exception {
-        HWPFDocument doc = new HWPFDocument(
-                new FileInputStream(filename6)
-        );
+        HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename6);
         extractor = new WordExtractor(doc);
 
         String[] text = extractor.getCommentsText();
index 6cae52ccd39ee4ac7126d6567f47d790625a5780..f657dc48583afba8a48f8bb60325aa3c8a352cca 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.hwpf.extractor;
 import java.io.FileInputStream;
 
 import junit.framework.TestCase;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 /**
  * Tests for bugs with the WordExtractor
@@ -27,15 +28,10 @@ import junit.framework.TestCase;
  * @author Nick Burch (nick at torchbox dot com)
  */
 public final class TestWordExtractorBugs extends TestCase {
-       private String dirname;
-       protected void setUp() {
-               dirname = System.getProperty("HWPF.testdata.path");
-       }
 
        public void testProblemMetadata() throws Exception {
-               String filename = dirname + "/ProblemExtracting.doc";
                WordExtractor extractor =
-                       new WordExtractor(new FileInputStream(filename));
+                       new WordExtractor(HWPFTestDataSamples.openSampleFileStream("ProblemExtracting.doc"));
 
                // Check it gives text without error
                extractor.getText();
index bc36e0d40ca5a17b1abc5973ec93d2124a5ac875..57ad140c6fe6c8367c1d7f26399455c0201cf404 100644 (file)
@@ -24,6 +24,7 @@ import java.util.List;
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 /**
  * Unit test for {@link SavedByTable} and {@link SavedByEntry}.
@@ -33,8 +34,6 @@ import org.apache.poi.hwpf.HWPFDocument;
 public final class TestSavedByTable
   extends TestCase
 {
-  /** Data dir */
-  private File testFile = new File(new File(System.getProperty("HWPF.testdata.path")), "saved-by-table.doc");
 
   /** The expected entries in the test document. */
   private List expected = Arrays.asList(new Object[] {
@@ -62,16 +61,7 @@ public final class TestSavedByTable
     // This document is widely available on the internet as "blair.doc".
     // I tried stripping the content and saving the document but my version
     // of Word (from Office XP) strips this table out.
-    InputStream stream = new BufferedInputStream(new FileInputStream(testFile));
-    HWPFDocument doc;
-    try
-    {
-      doc = new HWPFDocument(stream);
-    }
-    finally
-    {
-      stream.close();
-    }
+    HWPFDocument doc = HWPFTestDataSamples.openSampleFile("saved-by-table.doc");
 
     // Check what we just read.
     assertEquals("List of saved-by entries was not as expected",
index c1d77be2a7d2e007b9d86ece95bf757a62f3157e..09df7498d3d03c2762262c32481fde5c7ee068a8 100644 (file)
@@ -19,19 +19,18 @@ package org.apache.poi.hwpf.model;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
 
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocFixture;
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
 
 
 public final class TestTextPieceTable extends TestCase {
   private HWPFDocFixture _hWPFDocFixture;
-  private String dirname;
+  //private String dirname;
 
   public void testReadWrite()
     throws Exception
@@ -66,9 +65,7 @@ public final class TestTextPieceTable extends TestCase {
         *  working with pure-ascii
         */
        public void testAsciiParts() throws Exception {
-               HWPFDocument doc = new HWPFDocument(
-                               new FileInputStream(new File(dirname, "ThreeColHeadFoot.doc"))
-               );
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("ThreeColHeadFoot.doc");
                TextPieceTable tbl = doc.getTextTable();
 
                // All ascii, so stored in one big lump
@@ -101,9 +98,7 @@ public final class TestTextPieceTable extends TestCase {
         *  working with a mix ascii, unicode file
         */
        public void testUnicodeParts() throws Exception {
-               HWPFDocument doc = new HWPFDocument(
-                               new FileInputStream(new File(dirname, "HeaderFooterUnicode.doc"))
-               );
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
                TextPieceTable tbl = doc.getTextTable();
 
                // In three bits, split every 512 bytes
@@ -177,8 +172,6 @@ public final class TestTextPieceTable extends TestCase {
 
     _hWPFDocFixture = new HWPFDocFixture(this);
     _hWPFDocFixture.setUp();
-
-    dirname = System.getProperty("HWPF.testdata.path");
   }
 
   protected void tearDown()
index 779847e27eca3813072f587cc1141884f94caf62..e4c09463ab4f0a2db31076cc0c9fcbc4ebb74256 100755 (executable)
@@ -19,34 +19,28 @@ package org.apache.poi.hwpf.usermodel;
 
 import junit.framework.TestCase;
 
-import java.io.FileInputStream;
-
 import org.apache.poi.hwpf.usermodel.CharacterRun;
 import org.apache.poi.hwpf.usermodel.Paragraph;
 import org.apache.poi.hwpf.usermodel.Range;
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 public class TestBug46610 extends TestCase {
-  private String dirname;
-
-  protected void setUp() {
-    dirname = System.getProperty("HWPF.testdata.path");
-  }
 
   public void testUtf() throws Exception {
-    HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/Bug46610_1.doc"));
+    HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug46610_1.doc");
 
     runExtract(doc);
   }
 
   public void testUtf2() throws Exception {
-    HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/Bug46610_2.doc"));
+    HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug46610_2.doc");
 
     runExtract(doc);
   }
 
   public void testExtraction() throws Exception {
-    HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/Bug46610_3.doc"));
+    HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug46610_3.doc");
 
     String text = runExtract(doc);
 
index 13913eab048ea293fb1a7903f7cc5e69ffb9fe9d..b4d9a7d62000b7474aa695f8ee22eb8a278d19e0 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.File;
-import java.io.FileInputStream;
-
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 /**
  * Tests for the handling of header stories into headers, footers etc
@@ -38,21 +36,15 @@ public final class TestHeaderStories extends TestCase {
        private HWPFDocument withFields;
 
        protected void setUp() throws Exception {
-               String dirname = System.getProperty("HWPF.testdata.path");
-
-               none = new HWPFDocument(new FileInputStream(new File(dirname, "NoHeadFoot.doc")));
-               header = new HWPFDocument(new FileInputStream(new File(dirname, "ThreeColHead.doc")));
-               footer = new HWPFDocument(new FileInputStream(new File(dirname, "ThreeColFoot.doc")));
-               headerFooter = new HWPFDocument(new FileInputStream(new File(dirname,
-                               "SimpleHeadThreeColFoot.doc")));
-               oddEven = new HWPFDocument(new FileInputStream(
-                               new File(dirname, "PageSpecificHeadFoot.doc")));
-               diffFirst = new HWPFDocument(new FileInputStream(new File(dirname,
-                               "DiffFirstPageHeadFoot.doc")));
-               unicode = new HWPFDocument(
-                               new FileInputStream(new File(dirname, "HeaderFooterUnicode.doc")));
-               withFields = new HWPFDocument(
-                               new FileInputStream(new File(dirname, "HeaderWithMacros.doc")));
+
+               none = HWPFTestDataSamples.openSampleFile("NoHeadFoot.doc");
+               header = HWPFTestDataSamples.openSampleFile("ThreeColHead.doc");
+               footer = HWPFTestDataSamples.openSampleFile("ThreeColFoot.doc");
+               headerFooter = HWPFTestDataSamples.openSampleFile("SimpleHeadThreeColFoot.doc");
+               oddEven = HWPFTestDataSamples.openSampleFile("PageSpecificHeadFoot.doc");
+               diffFirst = HWPFTestDataSamples.openSampleFile("DiffFirstPageHeadFoot.doc");
+               unicode = HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
+               withFields = HWPFTestDataSamples.openSampleFile("HeaderWithMacros.doc");
        }
 
        public void testNone() {
index 0f2034de4910d2fcbe5083e2e9d2f06ea94dc46d..85580786db67cc4e404f2579bc3fd24e8ac2a1a9 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
 import java.util.List;
 
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.util.LittleEndian;
 
 /**
@@ -33,14 +31,12 @@ import org.apache.poi.util.LittleEndian;
  * @author Nick Burch (nick at torchbox dot com)
  */
 public final class TestPictures extends TestCase {
-       private String dirname = System.getProperty("HWPF.testdata.path");
-
 
        /**
         * two jpegs
         */
        public void testTwoImages() throws Exception {
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/two_images.doc"));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("two_images.doc");
                List pics = doc.getPicturesTable().getAllPictures();
 
                assertNotNull(pics);
@@ -64,7 +60,7 @@ public final class TestPictures extends TestCase {
         * pngs and jpegs
         */
        public void testDifferentImages() throws Exception {
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/testPictures.doc"));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("testPictures.doc");
                List pics = doc.getPicturesTable().getAllPictures();
 
                assertNotNull(pics);
@@ -90,7 +86,7 @@ public final class TestPictures extends TestCase {
         * emf image, nice and simple
         */
        public void testEmfImage() throws Exception {
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/vector_image.doc"));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("vector_image.doc");
                List pics = doc.getPicturesTable().getAllPictures();
 
                assertNotNull(pics);
@@ -102,7 +98,7 @@ public final class TestPictures extends TestCase {
                assertTrue(pic.getSize() > 128);
 
                // Check right contents
-               byte[] emf = loadImage("vector_image.emf");
+               byte[] emf = HWPFTestDataSamples.getTestDataFileContent("vector_image.emf");
                byte[] pemf = pic.getContent();
                assertEquals(emf.length, pemf.length);
                for(int i=0; i<emf.length; i++) {
@@ -119,7 +115,7 @@ public final class TestPictures extends TestCase {
                // pictures. Instead it has an office drawing object. Need to rewrite this test after
                // revisiting the implementation of office drawing objects.
 
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/emf_2003_image.doc"));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("emf_2003_image.doc");
                List pics = doc.getPicturesTable().getAllPictures();
 
                assertNotNull(pics);
@@ -141,22 +137,10 @@ public final class TestPictures extends TestCase {
        }
 
        public void testPicturesWithTable() throws Exception {
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(
-                               new File(dirname, "Bug44603.doc")));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug44603.doc");
 
                List pics = doc.getPicturesTable().getAllPictures();
                assertEquals(pics.size(), 2);
        }
 
-       private byte[] loadImage(String filename) throws Exception {
-               ByteArrayOutputStream b = new ByteArrayOutputStream();
-               FileInputStream fis = new FileInputStream(dirname + "/" + filename);
-
-               byte[] buf = new byte[4096];
-               int read = 0;
-               while( (read = fis.read(buf)) > -1 ) {
-                       b.write(buf, 0, read);
-               }
-               return b.toByteArray();
-       }
 }
index 54e9b42a0c120d4dc9862984f307517a0becefca..41dd238f5516e41a728892d6a1df9c649b6f173b 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.File;
-import java.io.FileInputStream;
-
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.hwpf.HWPFTestCase;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.hwpf.model.StyleSheet;
 
 /**
@@ -32,14 +30,11 @@ import org.apache.poi.hwpf.model.StyleSheet;
  */
 public final class TestProblems extends HWPFTestCase {
 
-       private String dirname = System.getProperty("HWPF.testdata.path");
-
     /**
      * ListEntry passed no ListTable
      */
     public void testListEntryNoListTable() throws Exception {
-       HWPFDocument doc = new HWPFDocument(new FileInputStream(
-                       new File(dirname, "ListEntryNoListTable.doc")));
+       HWPFDocument doc = HWPFTestDataSamples.openSampleFile("ListEntryNoListTable.doc");
 
        Range r = doc.getRange();
        StyleSheet styleSheet = doc.getStyleSheet();
@@ -56,8 +51,7 @@ public final class TestProblems extends HWPFTestCase {
         * AIOOB for TableSprmUncompressor.unCompressTAPOperation
         */
        public void testSprmAIOOB() throws Exception {
-       HWPFDocument doc = new HWPFDocument(new FileInputStream(
-                       new File(dirname, "AIOOB-Tap.doc")));
+       HWPFDocument doc = HWPFTestDataSamples.openSampleFile("AIOOB-Tap.doc");
 
        Range r = doc.getRange();
        StyleSheet styleSheet = doc.getStyleSheet();
@@ -75,8 +69,7 @@ public final class TestProblems extends HWPFTestCase {
         * Bugs #45062 and #44292
         */
        public void testTableCellLastParagraph() throws Exception {
-       HWPFDocument doc = new HWPFDocument(new FileInputStream(
-                       new File(dirname, "Bug44292.doc")));
+       HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug44292.doc");
                Range r = doc.getRange();
                assertEquals(6, r.numParagraphs());
                assertEquals(0, r.getStartOffset());
@@ -115,8 +108,7 @@ public final class TestProblems extends HWPFTestCase {
        }
 
        public void testRangeDelete() throws Exception {
-       HWPFDocument doc = new HWPFDocument(new FileInputStream(
-                       new File(dirname, "Bug28627.doc")));
+       HWPFDocument doc = HWPFTestDataSamples.openSampleFile("Bug28627.doc");
 
        Range range = doc.getRange();
                int numParagraphs = range.numParagraphs();
@@ -155,8 +147,7 @@ public final class TestProblems extends HWPFTestCase {
         */
        public void testEncryptedFile() throws Exception {
                try {
-                       new HWPFDocument(new FileInputStream(
-                       new File(dirname, "PasswordProtected.doc")));
+                       HWPFTestDataSamples.openSampleFile("PasswordProtected.doc");
                        fail();
                } catch(EncryptedDocumentException e) {
                        // Good
@@ -164,8 +155,7 @@ public final class TestProblems extends HWPFTestCase {
        }
 
        public void testWriteProperties() throws Exception {
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(
-                       new File(dirname, "SampleDoc.doc")));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("SampleDoc.doc");
                assertEquals("Nick Burch", doc.getSummaryInformation().getAuthor());
 
                // Write and read
index 5e08588a293355efb7c0043adc35d38cc9889a4d..289f2b80faa264fbb07ff444f367cb553c50d032 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.FileInputStream;
-
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.hwpf.model.PAPX;
 
 /**
@@ -48,10 +47,7 @@ public final class TestRangeDelete extends TestCase {
        private String illustrativeDocFile;
 
        protected void setUp() {
-
-               String dirname = System.getProperty("HWPF.testdata.path");
-
-               illustrativeDocFile = dirname + "/testRangeDelete.doc";
+               illustrativeDocFile = "testRangeDelete.doc";
        }
 
        /**
@@ -59,7 +55,7 @@ public final class TestRangeDelete extends TestCase {
         */
        public void testOpen() throws Exception {
 
-               HWPFDocument docA = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument docA = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
        }
 
        /**
@@ -67,7 +63,7 @@ public final class TestRangeDelete extends TestCase {
         */
        public void testDocStructure() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
                Range range;
                Section section;
                Paragraph para;
@@ -132,7 +128,7 @@ public final class TestRangeDelete extends TestCase {
         */
        public void testRangeDeleteOne() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                Range range = daDoc.getOverallRange();
                assertEquals(1, range.numSections());
@@ -178,7 +174,7 @@ public final class TestRangeDelete extends TestCase {
         */
        public void testRangeDeleteAll() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                Range range = daDoc.getRange();
                assertEquals(1, range.numSections());
index cdae245ece62abb86a25965d86067e3a1b333d9a..5b024daeff48a7120bc59d2696cfbc06c8d7fe82 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.FileInputStream;
-
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 /**
  *     Test to see if Range.insertBefore() works even if the Range contains a
@@ -40,10 +39,7 @@ public final class TestRangeInsertion extends TestCase {
        private String illustrativeDocFile;
 
        protected void setUp() {
-
-               String dirname = System.getProperty("HWPF.testdata.path");
-
-               illustrativeDocFile = dirname + "/testRangeInsertion.doc";
+               illustrativeDocFile = "testRangeInsertion.doc";
        }
 
        /**
@@ -51,7 +47,7 @@ public final class TestRangeInsertion extends TestCase {
         */
        public void testOpen() throws Exception {
 
-               HWPFDocument docA = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument docA = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
        }
 
        /**
@@ -59,7 +55,7 @@ public final class TestRangeInsertion extends TestCase {
         */
        public void testDocStructure() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                Range range = daDoc.getRange();
 
@@ -87,7 +83,7 @@ public final class TestRangeInsertion extends TestCase {
         */
        public void testRangeInsertion() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                /*
                        Range range = daDoc.getRange();
index 96f1493bdf0fb385652ee9cc40c308654d3f75e6..315c033d06e265005f9d1cbbb66c1c17a3bf51c6 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.util.List;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 import org.apache.poi.hwpf.model.PropertyNode;
 
 import junit.framework.TestCase;
@@ -66,16 +65,9 @@ public final class TestRangeProperties extends TestCase {
        private HWPFDocument u;
        private HWPFDocument a;
 
-       private String dirname;
-
        protected void setUp() throws Exception {
-               dirname = System.getProperty("HWPF.testdata.path");
-               u = new HWPFDocument(
-                               new FileInputStream(new File(dirname, "HeaderFooterUnicode.doc"))
-               );
-               a = new HWPFDocument(
-                               new FileInputStream(new File(dirname, "SampleDoc.doc"))
-               );
+               u = HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
+               a = HWPFTestDataSamples.openSampleFile("SampleDoc.doc");
        }
 
 
index dc32b24a3d52f62d6ebd056b8b14e9db7b428c21..23ca51cda52442319d867690d61cc03a35f2b4b8 100644 (file)
 
 package org.apache.poi.hwpf.usermodel;
 
-import java.io.FileInputStream;
-
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 /**
  *     Test to see if Range.replaceText() works even if the Range contains a
@@ -40,21 +39,14 @@ public final class TestRangeReplacement extends TestCase {
                "It is used to confirm that text replacement works even if Unicode characters (such as \u201c\u2014\u201d (U+2014), \u201c\u2e8e\u201d (U+2E8E), or \u201c\u2714\u201d (U+2714)) are present.  Everybody should be thankful to the Apache Software Foundation and all the POI contributors for their assistance in this matter.\r";
        private String expectedText3 = "Thank you, Apache Software Foundation!\r";
 
-       private String illustrativeDocFile;
-
-       protected void setUp() {
-
-               String dirname = System.getProperty("HWPF.testdata.path");
-
-               illustrativeDocFile = dirname + "/testRangeReplacement.doc";
-       }
+       private String illustrativeDocFile = "testRangeReplacement.doc";
 
        /**
         * Test just opening the files
         */
        public void testOpen() throws Exception {
 
-               HWPFDocument docA = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument docA = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
        }
 
        /**
@@ -62,7 +54,7 @@ public final class TestRangeReplacement extends TestCase {
         */
        public void testDocStructure() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                Range range = daDoc.getRange();
                assertEquals(414, range.text().length());
@@ -91,7 +83,7 @@ public final class TestRangeReplacement extends TestCase {
         */
        public void testRangeReplacementOne() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                Range range = daDoc.getRange();
                assertEquals(1, range.numSections());
@@ -124,7 +116,7 @@ public final class TestRangeReplacement extends TestCase {
         */
        public void testRangeReplacementAll() throws Exception {
 
-               HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+               HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
 
                Range range = daDoc.getRange();
                assertEquals(1, range.numSections());
index b237da0ca33396dfe31105dc382ae917b5b936c8..2a0e61554ca36cb095c1c1fd7f1be7d99855011a 100644 (file)
@@ -19,24 +19,23 @@ package org.apache.poi.hwpf.usermodel;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
 import java.util.List;
 
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
 
 /**
  * Test the shapes handling
  */
 public final class TestShapes extends TestCase {
-       private String dirname = System.getProperty("HWPF.testdata.path");
 
        /**
         * two shapes, second is a group
         */
        public void testShapes() throws Exception {
-               HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/WithArtShapes.doc"));
+               HWPFDocument doc = HWPFTestDataSamples.openSampleFile("WithArtShapes.doc");
 
                List shapes = doc.getShapesTable().getAllShapes();
                List vshapes = doc.getShapesTable().getVisibleShapes();
diff --git a/src/testcases/org/apache/poi/POIDataSamples.java b/src/testcases/org/apache/poi/POIDataSamples.java
new file mode 100755 (executable)
index 0000000..b5f64dd
--- /dev/null
@@ -0,0 +1,182 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+package org.apache.poi;\r
+\r
+import java.io.*;\r
+\r
+/**\r
+ * Centralises logic for finding/opening sample files\r
+ *\r
+ */\r
+public abstract class POIDataSamples {\r
+\r
+    private File _resolvedDataDir;\r
+    /** <code>true</code> if standard system propery is not set,\r
+     * but the data is available on the test runtime classpath */\r
+    private boolean _sampleDataIsAvaliableOnClassPath;\r
+    private String _testDataDir;\r
+\r
+    /**\r
+     *\r
+     * @param dir   the name of the system property that defines  path to the test files\r
+     * @param classPathTestFile the name of the test file to check if resources are available from the classpath\r
+     */\r
+    public POIDataSamples(String dir, String classPathTestFile){\r
+        _testDataDir = dir;\r
+        initialise(classPathTestFile);\r
+    }\r
+\r
+    /**\r
+     * Opens a sample file from the test data directory\r
+     *\r
+     * @param  sampleFileName the file to open\r
+     * @return an open <tt>InputStream</tt> for the specified sample file\r
+     */\r
+    public InputStream openResourceAsStream(String sampleFileName) {\r
+\r
+        if (_sampleDataIsAvaliableOnClassPath) {\r
+            InputStream result = sampleFileName == null ? null :\r
+                    openClasspathResource(sampleFileName);\r
+            if(result == null) {\r
+                throw new RuntimeException("specified test sample file '" + sampleFileName\r
+                        + "' not found on the classpath");\r
+            }\r
+            // wrap to avoid temp warning method about auto-closing input stream\r
+            return new NonSeekableInputStream(result);\r
+        }\r
+        if (_resolvedDataDir == null) {\r
+            throw new RuntimeException("Must set system property '"\r
+                    + _testDataDir\r
+                    + "' properly before running tests");\r
+        }\r
+\r
+        File f = new File(_resolvedDataDir, sampleFileName);\r
+        if (!f.exists()) {\r
+            throw new RuntimeException("Sample file '" + sampleFileName\r
+                    + "' not found in data dir '" + _resolvedDataDir.getAbsolutePath() + "'");\r
+        }\r
+        try {\r
+            if(!sampleFileName.equals(f.getCanonicalFile().getName())){\r
+                throw new RuntimeException("File name is case-sensitive: requested '" + sampleFileName\r
+                        + "' but actual file is '" + f.getCanonicalFile().getName() + "'");\r
+            }\r
+        } catch (IOException e){\r
+            throw new RuntimeException(e);\r
+        }\r
+\r
+        try {\r
+            return new FileInputStream(f);\r
+        } catch (FileNotFoundException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
+\r
+    /**\r
+     *\r
+     * @param classPathTest test file to check if the resources are avaiable from the classpath\r
+     */\r
+    private void initialise(String classPathTest) {\r
+        String dataDirName = System.getProperty(_testDataDir);\r
+        if (dataDirName == null) {\r
+            // check to see if we can just get the resources from the classpath\r
+            InputStream is = openClasspathResource(classPathTest);\r
+            if (is != null) {\r
+                try {\r
+                    is.close(); // be nice\r
+                } catch (IOException e) {\r
+                    throw new RuntimeException(e);\r
+                }\r
+                _sampleDataIsAvaliableOnClassPath = true;\r
+                return;\r
+            }\r
+\r
+            throw new RuntimeException("Must set system property '"\r
+                    + _testDataDir + "' before running tests");\r
+        }\r
+        File dataDir = new File(dataDirName);\r
+        if (!dataDir.exists()) {\r
+            throw new RuntimeException("Data dir '" + dataDirName\r
+                    + "' specified by system property '" + _testDataDir\r
+                    + "' does not exist");\r
+        }\r
+        // convert to canonical file, to make any subsequent error messages\r
+        // clearer.\r
+        try {\r
+            _resolvedDataDir = dataDir.getCanonicalFile();\r
+        } catch (IOException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Opens a test sample file from the 'data' sub-package of this class's package.\r
+     *\r
+     * @param  sampleFileName the file to open\r
+     * @return <code>null</code> if the sample file is not deployed on the classpath.\r
+     */\r
+    private InputStream openClasspathResource(String sampleFileName) {\r
+        return getClass().getResourceAsStream("data/" + sampleFileName);\r
+    }\r
+\r
+    private static final class NonSeekableInputStream extends InputStream {\r
+\r
+        private final InputStream _is;\r
+\r
+        public NonSeekableInputStream(InputStream is) {\r
+            _is = is;\r
+        }\r
+\r
+        public int read() throws IOException {\r
+            return _is.read();\r
+        }\r
+        public int read(byte[] b, int off, int len) throws IOException {\r
+            return _is.read(b, off, len);\r
+        }\r
+        public boolean markSupported() {\r
+            return false;\r
+        }\r
+        public void close() throws IOException {\r
+            _is.close();\r
+        }\r
+    }\r
+\r
+    /**\r
+     * @param  fileName the file to open\r
+     * @return byte array of sample file content from file found in standard hssf test data dir\r
+     */\r
+    public byte[] readFile(String fileName) {\r
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();\r
+\r
+        try {\r
+            InputStream fis = openResourceAsStream(fileName);\r
+\r
+            byte[] buf = new byte[512];\r
+            while (true) {\r
+                int bytesRead = fis.read(buf);\r
+                if (bytesRead < 1) {\r
+                    break;\r
+                }\r
+                bos.write(buf, 0, bytesRead);\r
+            }\r
+            fis.close();\r
+        } catch (IOException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+        return bos.toByteArray();\r
+    }\r
+\r
+}\r
index 113329265f4ab5d42d2bfe128fe5d42a9e3484a1..4d0f3a72c52144da4e184cbc3b777e1c9fc439f6 100644 (file)
@@ -26,139 +26,35 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.POIDataSamples;
 
 /**
  * Centralises logic for finding/opening sample files in the src/testcases/org/apache/poi/hssf/hssf/data folder.
  *
  * @author Josh Micich
  */
-public final class HSSFTestDataSamples {
+public final class HSSFTestDataSamples extends POIDataSamples {
 
-       private static final String TEST_DATA_DIR_SYS_PROPERTY_NAME = "HSSF.testdata.path";
+       private static final HSSFTestDataSamples _inst = new HSSFTestDataSamples("HSSF.testdata.path", "SampleSS.xls");
 
-       private static boolean _isInitialised;
-       private static File _resolvedDataDir;
-       /** <code>true</code> if standard system propery is not set,
-        * but the data is available on the test runtime classpath */
-       private static boolean _sampleDataIsAvaliableOnClassPath;
+    private HSSFTestDataSamples(String dir, String classPathTestFile){
+        super(dir, classPathTestFile);
+    }
 
-       /**
-        * Opens a sample file from the standard HSSF test data directory
-        *
-        * @return an open <tt>InputStream</tt> for the specified sample file
-        */
-       public static InputStream openSampleFileStream(String sampleFileName) {
-
-               if(!_isInitialised) {
-                       try {
-                               initialise();
-                       } finally {
-                               _isInitialised = true;
-                       }
-               }
-               if (_sampleDataIsAvaliableOnClassPath) {
-                       InputStream result = openClasspathResource(sampleFileName);
-                       if(result == null) {
-                               throw new RuntimeException("specified test sample file '" + sampleFileName
-                                               + "' not found on the classpath");
-                       }
-//                     System.out.println("opening cp: " + sampleFileName);
-                       // wrap to avoid temp warning method about auto-closing input stream
-                       return new NonSeekableInputStream(result);
-               }
-               if (_resolvedDataDir == null) {
-                       throw new RuntimeException("Must set system property '"
-                                       + TEST_DATA_DIR_SYS_PROPERTY_NAME
-                                       + "' properly before running tests");
-               }
-
-               File f = new File(_resolvedDataDir, sampleFileName);
-               if (!f.exists()) {
-                       throw new RuntimeException("Sample file '" + sampleFileName
-                                       + "' not found in data dir '" + _resolvedDataDir.getAbsolutePath() + "'");
-               }
-        try {
-            if(!sampleFileName.equals(f.getCanonicalFile().getName())){
-                throw new RuntimeException("File name is case-sensitive: requested '" + sampleFileName
-                        + "' but actual file is '" + f.getCanonicalFile().getName() + "'");
-            }
-        } catch (IOException e){
-            throw new RuntimeException(e);
-        }
-        
-        try {
-                       return new FileInputStream(f);
-               } catch (FileNotFoundException e) {
-                       throw new RuntimeException(e);
-               }
-       }
-
-       private static void initialise() {
-               String dataDirName = System.getProperty(TEST_DATA_DIR_SYS_PROPERTY_NAME);
-               if (dataDirName == null) {
-                       // check to see if we can just get the resources from the classpath
-                       InputStream is = openClasspathResource("SampleSS.xls");
-                       if (is != null) {
-                               try {
-                                       is.close(); // be nice
-                               } catch (IOException e) {
-                                       throw new RuntimeException(e);
-                               }
-                               _sampleDataIsAvaliableOnClassPath = true;
-                               return;
-                       }
-
-                       throw new RuntimeException("Must set system property '"
-                                       + TEST_DATA_DIR_SYS_PROPERTY_NAME + "' before running tests");
-               }
-               File dataDir = new File(dataDirName);
-               if (!dataDir.exists()) {
-                       throw new RuntimeException("Data dir '" + dataDirName
-                                       + "' specified by system property '" + TEST_DATA_DIR_SYS_PROPERTY_NAME
-                                       + "' does not exist");
-               }
-               // convert to canonical file, to make any subsequent error messages
-               // clearer.
-               try {
-                       _resolvedDataDir = dataDir.getCanonicalFile();
-               } catch (IOException e) {
-                       throw new RuntimeException(e);
-               }
-       }
-
-       /**
-        * Opens a test sample file from the 'data' sub-package of this class's package.
-        * @return <code>null</code> if the sample file is not deployed on the classpath.
-        */
-       private static InputStream openClasspathResource(String sampleFileName) {
-               return HSSFTestDataSamples.class.getResourceAsStream("data/" + sampleFileName);
-       }
+    public static POIDataSamples getInstance(){
+        return _inst;
+    }
 
-       private static final class NonSeekableInputStream extends InputStream {
-
-               private final InputStream _is;
-
-               public NonSeekableInputStream(InputStream is) {
-                       _is = is;
-               }
+    public static InputStream openSampleFileStream(String sampleFileName) {
+        return _inst.openResourceAsStream(sampleFileName);
+    }
+    public static byte[] getTestDataFileContent(String fileName) {
+        return _inst.readFile(fileName);
+    }
 
-               public int read() throws IOException {
-                       return _is.read();
-               }
-               public int read(byte[] b, int off, int len) throws IOException {
-                       return _is.read(b, off, len);
-               }
-               public boolean markSupported() {
-                       return false;
-               }
-               public void close() throws IOException {
-                       _is.close();
-               }
-       }
-
-       public static HSSFWorkbook openSampleWorkbook(String sampleFileName) {
+    public static HSSFWorkbook openSampleWorkbook(String sampleFileName) {
                try {
-                       return new HSSFWorkbook(openSampleFileStream(sampleFileName));
+                       return new HSSFWorkbook(_inst.openResourceAsStream(sampleFileName));
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
@@ -180,27 +76,4 @@ public final class HSSFTestDataSamples {
                }
        }
 
-       /**
-        * @return byte array of sample file content from file found in standard hssf test data dir
-        */
-       public static byte[] getTestDataFileContent(String fileName) {
-               ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
-               try {
-                       InputStream fis = HSSFTestDataSamples.openSampleFileStream(fileName);
-
-                       byte[] buf = new byte[512];
-                       while (true) {
-                               int bytesRead = fis.read(buf);
-                               if (bytesRead < 1) {
-                                       break;
-                               }
-                               bos.write(buf, 0, bytesRead);
-                       }
-                       fis.close();
-               } catch (IOException e) {
-                       throw new RuntimeException(e);
-               }
-               return bos.toByteArray();
-       }
 }