<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>
<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>
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 {
// 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));
}
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");
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;
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 {
// 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);
// 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) {
* @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 {
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);
}
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);
}
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);
}
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];
* (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);
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.File;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
}
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) {
}
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);
}
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);
}
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);
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;
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();
}
public void testLoadExisting() throws Exception {
- XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+ XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook(testFile);
assertNotNull(workbook.getStylesSource());
StylesTable st = workbook.getStylesSource();
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();
}
public void testPopulateExisting() throws Exception {
- XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+ XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook(testFile);
assertNotNull(workbook.getStylesSource());
StylesTable st = workbook.getStylesSource();
}
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);
}
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);
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;
}
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;
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()) {
}
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());
}
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());
--- /dev/null
+/* ====================================================================\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
import org.apache.poi.POIXMLDocument;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
import junit.framework.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();
* 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();
}
public void testGetWithHyperlinks() throws Exception {
- XWPFDocument doc = open("TestDocument.docx");
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
// Now check contents
}
public void testHeadersFooters() throws Exception {
- XWPFDocument doc = open("ThreeColHeadFoot.docx");
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("ThreeColHeadFoot.docx");
XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
assertEquals(
// 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);
}
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"));
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();
}
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()));
- }
}
import org.apache.poi.POIXMLDocument;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.XWPFTestDataSamples;
import junit.framework.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() {
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;
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();
}
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());
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;
* 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);
* 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);
{
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");
--- /dev/null
+/* ====================================================================\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
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;
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());
* 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();
* 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();
* 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());
}
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);
}
}
package org.apache.poi.hwpf;
-import java.io.FileInputStream;
-
import org.apache.poi.hwpf.usermodel.Range;
import junit.framework.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() {
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;
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");
}
/**
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
*
"\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;
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++) {
* @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;
public void testWithHeader() throws Exception {
// Non-unicode
- HWPFDocument doc = new HWPFDocument(
- new FileInputStream(filename4)
- );
+ HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename4);
extractor = new WordExtractor(doc);
assertEquals(
// Unicode
- doc = new HWPFDocument(
- new FileInputStream(filename5)
- );
+ doc = HWPFTestDataSamples.openSampleFile(filename5);
extractor = new WordExtractor(doc);
assertEquals(
public void testWithFooter() throws Exception {
// Non-unicode
- HWPFDocument doc = new HWPFDocument(
- new FileInputStream(filename4)
- );
+ HWPFDocument doc = HWPFTestDataSamples.openSampleFile(filename4);
extractor = new WordExtractor(doc);
assertEquals(
// Unicode
- doc = new HWPFDocument(
- new FileInputStream(filename5)
- );
+ doc = HWPFTestDataSamples.openSampleFile(filename5);
extractor = new WordExtractor(doc);
assertEquals(
}
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();
}
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();
}
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();
import java.io.FileInputStream;
import junit.framework.TestCase;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
/**
* Tests for bugs with the WordExtractor
* @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();
import junit.framework.TestCase;
import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.HWPFTestDataSamples;
/**
* Unit test for {@link SavedByTable} and {@link SavedByEntry}.
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[] {
// 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",
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
* 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
* 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
_hWPFDocFixture = new HWPFDocFixture(this);
_hWPFDocFixture.setUp();
-
- dirname = System.getProperty("HWPF.testdata.path");
}
protected void tearDown()
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);
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
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() {
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;
/**
* @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);
* 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);
* 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);
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++) {
// 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);
}
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();
- }
}
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;
/**
*/
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();
* 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();
* 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());
}
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();
*/
public void testEncryptedFile() throws Exception {
try {
- new HWPFDocument(new FileInputStream(
- new File(dirname, "PasswordProtected.doc")));
+ HWPFTestDataSamples.openSampleFile("PasswordProtected.doc");
fail();
} catch(EncryptedDocumentException e) {
// Good
}
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
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;
/**
private String illustrativeDocFile;
protected void setUp() {
-
- String dirname = System.getProperty("HWPF.testdata.path");
-
- illustrativeDocFile = dirname + "/testRangeDelete.doc";
+ illustrativeDocFile = "testRangeDelete.doc";
}
/**
*/
public void testOpen() throws Exception {
- HWPFDocument docA = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+ HWPFDocument docA = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
}
/**
*/
public void testDocStructure() throws Exception {
- HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+ HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
Range range;
Section section;
Paragraph para;
*/
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());
*/
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());
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
private String illustrativeDocFile;
protected void setUp() {
-
- String dirname = System.getProperty("HWPF.testdata.path");
-
- illustrativeDocFile = dirname + "/testRangeInsertion.doc";
+ illustrativeDocFile = "testRangeInsertion.doc";
}
/**
*/
public void testOpen() throws Exception {
- HWPFDocument docA = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+ HWPFDocument docA = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
}
/**
*/
public void testDocStructure() throws Exception {
- HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+ HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
Range range = daDoc.getRange();
*/
public void testRangeInsertion() throws Exception {
- HWPFDocument daDoc = new HWPFDocument(new FileInputStream(illustrativeDocFile));
+ HWPFDocument daDoc = HWPFTestDataSamples.openSampleFile(illustrativeDocFile);
/*
Range range = daDoc.getRange();
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;
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");
}
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
"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);
}
/**
*/
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());
*/
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());
*/
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());
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();
--- /dev/null
+/* ====================================================================\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
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);
}
}
}
- /**
- * @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();
- }
}