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