aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/testcases/org/apache
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2008-09-30 13:57:36 +0000
committerYegor Kozlov <yegor@apache.org>2008-09-30 13:57:36 +0000
commit0c4ee58c9ffa1dcc4a241ace4a45a605ee3f1585 (patch)
tree2d5f0f998e7a4df4c7aa678e51fdabb6c6c30bdf /src/ooxml/testcases/org/apache
parent7c40d2c9b019b4882ff432a1460d720e039bc234 (diff)
downloadpoi-0c4ee58c9ffa1dcc4a241ace4a45a605ee3f1585.tar.gz
poi-0c4ee58c9ffa1dcc4a241ace4a45a605ee3f1585.zip
refactored POIXMLDocument to be a composite of POIXMLDocumentPart, this way XSSFWorkbook is a root of a tree: XSSFSheets are children, XSSFDrawings are children of worksheets, etc,
Also, performed major cleanup of core XSSF classes and test cases git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@700472 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/testcases/org/apache')
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java18
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java17
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java195
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java23
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java20
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java14
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java2
7 files changed, 122 insertions, 167 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java b/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
index aa1d78fe5f..1fe0b120c1 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
@@ -17,10 +17,7 @@
package org.apache.poi.xssf;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -47,15 +44,20 @@ public class XSSFTestDataSamples {
}
}
public static <R extends Workbook> R writeOutAndReadBack(R wb) {
- ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
Workbook result;
try {
- wb.write(baos);
- InputStream is = new ByteArrayInputStream(baos.toByteArray());
if (wb instanceof HSSFWorkbook) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
+ wb.write(baos);
+ InputStream is = new ByteArrayInputStream(baos.toByteArray());
result = new HSSFWorkbook(is);
} else if (wb instanceof XSSFWorkbook) {
- Package pkg = Package.open(is);
+ File tmp = File.createTempFile("poi-ooxml-", ".xlsx");
+ tmp.deleteOnExit();
+ FileOutputStream out = new FileOutputStream(tmp);
+ wb.write(out);
+ out.close();
+ Package pkg = Package.open(tmp.getAbsolutePath());
result = new XSSFWorkbook(pkg);
} else {
throw new RuntimeException("Unexpected workbook type ("
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java b/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java
index 418ddec476..c37d1d8b50 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java
@@ -30,6 +30,7 @@ import org.apache.poi.xssf.usermodel.XSSFComment;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xssf.XSSFTestDataSamples;
import org.openxml4j.opc.Package;
import org.openxml4j.opc.PackagePart;
import org.openxml4j.opc.PackagingURIHelper;
@@ -212,12 +213,8 @@ public class TestCommentsTable extends TestCase {
// Save, and re-load the file
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- workbook.write(baos);
-
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- workbook = new XSSFWorkbook(Package.open(bais));
-
+ workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+
// Check we still have comments where we should do
sheet1 = workbook.getSheetAt(0);
sheet2 = (XSSFSheet)workbook.getSheetAt(1);
@@ -259,12 +256,8 @@ public class TestCommentsTable extends TestCase {
sheet1.getRow(12).getCell(2).getCellComment().getAuthor());
// Save, and re-load the file
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- workbook.write(baos);
-
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- workbook = new XSSFWorkbook(Package.open(bais));
-
+ workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+
// Check we still have comments where we should do
sheet1 = workbook.getSheetAt(0);
assertNotNull(sheet1.getRow(4).getCell(2).getCellComment());
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
index 570cc077b4..b3f3e533dd 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
@@ -17,120 +17,107 @@
package org.apache.poi.xssf.usermodel;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import junit.framework.TestCase;
import org.openxml4j.opc.Package;
import org.openxml4j.opc.PackagePart;
import org.openxml4j.opc.PackagingURIHelper;
+import org.apache.poi.xssf.XSSFTestDataSamples;
public class TestXSSFBugs extends TestCase {
- private String getFilePath(String file) {
- File xml = new File(
- System.getProperty("HSSF.testdata.path") +
- File.separator + file
- );
- assertTrue(xml.exists());
-
- return xml.toString();
- }
-
- private Package saveAndOpen(XSSFWorkbook wb) throws Exception {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- wb.write(baos);
- ByteArrayInputStream inp = new ByteArrayInputStream(
- baos.toByteArray()
- );
- Package pkg = Package.open(inp);
- return pkg;
- }
-
- /**
- * Named ranges had the right reference, but
- * the wrong sheet name
- */
- public void test45430() throws Exception {
- XSSFWorkbook wb = new XSSFWorkbook(getFilePath("45430.xlsx"));
- assertFalse(wb.isMacroEnabled());
- assertEquals(3, wb.getNumberOfNames());
-
- assertEquals(0, wb.getNameAt(0).getCTName().getLocalSheetId());
- assertFalse(wb.getNameAt(0).getCTName().isSetLocalSheetId());
- assertEquals("SheetA!$A$1", wb.getNameAt(0).getReference());
- assertEquals("SheetA", wb.getNameAt(0).getSheetName());
-
- assertEquals(0, wb.getNameAt(1).getCTName().getLocalSheetId());
- assertFalse(wb.getNameAt(1).getCTName().isSetLocalSheetId());
- assertEquals("SheetB!$A$1", wb.getNameAt(1).getReference());
- assertEquals("SheetB", wb.getNameAt(1).getSheetName());
-
- assertEquals(0, wb.getNameAt(2).getCTName().getLocalSheetId());
- assertFalse(wb.getNameAt(2).getCTName().isSetLocalSheetId());
- assertEquals("SheetC!$A$1", wb.getNameAt(2).getReference());
- assertEquals("SheetC", wb.getNameAt(2).getSheetName());
-
- // Save and re-load, still there
- Package nPkg = saveAndOpen(wb);
- XSSFWorkbook nwb = new XSSFWorkbook(nPkg);
- assertEquals(3, nwb.getNumberOfNames());
- assertEquals("SheetA!$A$1", nwb.getNameAt(0).getReference());
- }
-
- /**
- * We should carry vba macros over after save
- */
- public void test45431() throws Exception {
- Package pkg = Package.open(getFilePath("45431.xlsm"));
- XSSFWorkbook wb = new XSSFWorkbook(pkg);
- assertTrue(wb.isMacroEnabled());
-
- // Check the various macro related bits can be found
- PackagePart vba = pkg.getPart(
- PackagingURIHelper.createPartName("/xl/vbaProject.bin")
- );
- assertNotNull(vba);
- // And the drawing bit
- PackagePart drw = pkg.getPart(
- PackagingURIHelper.createPartName("/xl/drawings/vmlDrawing1.vml")
- );
- assertNotNull(drw);
-
-
- // Save and re-open, both still there
- Package nPkg = saveAndOpen(wb);
- XSSFWorkbook nwb = new XSSFWorkbook(nPkg);
- assertTrue(nwb.isMacroEnabled());
-
- vba = nPkg.getPart(
- PackagingURIHelper.createPartName("/xl/vbaProject.bin")
- );
- assertNotNull(vba);
- drw = nPkg.getPart(
- PackagingURIHelper.createPartName("/xl/drawings/vmlDrawing1.vml")
- );
- assertNotNull(drw);
-
- // And again, just to be sure
- nPkg = saveAndOpen(nwb);
- nwb = new XSSFWorkbook(nPkg);
- assertTrue(nwb.isMacroEnabled());
-
- vba = nPkg.getPart(
- PackagingURIHelper.createPartName("/xl/vbaProject.bin")
- );
- assertNotNull(vba);
- drw = nPkg.getPart(
- PackagingURIHelper.createPartName("/xl/drawings/vmlDrawing1.vml")
- );
- assertNotNull(drw);
-
- // For testing with excel
+ private String getFilePath(String file) {
+ File xml = new File(
+ System.getProperty("HSSF.testdata.path") +
+ File.separator + file
+ );
+ assertTrue(xml.exists());
+
+ return xml.toString();
+ }
+
+ /**
+ * Named ranges had the right reference, but
+ * the wrong sheet name
+ */
+ public void test45430() throws Exception {
+ XSSFWorkbook wb = new XSSFWorkbook(getFilePath("45430.xlsx"));
+ assertFalse(wb.isMacroEnabled());
+ assertEquals(3, wb.getNumberOfNames());
+
+ assertEquals(0, wb.getNameAt(0).getCTName().getLocalSheetId());
+ assertFalse(wb.getNameAt(0).getCTName().isSetLocalSheetId());
+ assertEquals("SheetA!$A$1", wb.getNameAt(0).getReference());
+ assertEquals("SheetA", wb.getNameAt(0).getSheetName());
+
+ assertEquals(0, wb.getNameAt(1).getCTName().getLocalSheetId());
+ assertFalse(wb.getNameAt(1).getCTName().isSetLocalSheetId());
+ assertEquals("SheetB!$A$1", wb.getNameAt(1).getReference());
+ assertEquals("SheetB", wb.getNameAt(1).getSheetName());
+
+ assertEquals(0, wb.getNameAt(2).getCTName().getLocalSheetId());
+ assertFalse(wb.getNameAt(2).getCTName().isSetLocalSheetId());
+ assertEquals("SheetC!$A$1", wb.getNameAt(2).getReference());
+ assertEquals("SheetC", wb.getNameAt(2).getSheetName());
+
+ // Save and re-load, still there
+ XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ assertEquals(3, nwb.getNumberOfNames());
+ assertEquals("SheetA!$A$1", nwb.getNameAt(0).getReference());
+ }
+
+ /**
+ * We should carry vba macros over after save
+ */
+ public void test45431() throws Exception {
+ Package pkg = Package.open(getFilePath("45431.xlsm"));
+ XSSFWorkbook wb = new XSSFWorkbook(pkg);
+ assertTrue(wb.isMacroEnabled());
+
+ // Check the various macro related bits can be found
+ PackagePart vba = pkg.getPart(
+ PackagingURIHelper.createPartName("/xl/vbaProject.bin")
+ );
+ assertNotNull(vba);
+ // And the drawing bit
+ PackagePart drw = pkg.getPart(
+ PackagingURIHelper.createPartName("/xl/drawings/vmlDrawing1.vml")
+ );
+ assertNotNull(drw);
+
+
+ // Save and re-open, both still there
+ XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ Package nPkg = nwb.getPackage();
+ assertTrue(nwb.isMacroEnabled());
+
+ vba = nPkg.getPart(
+ PackagingURIHelper.createPartName("/xl/vbaProject.bin")
+ );
+ assertNotNull(vba);
+ drw = nPkg.getPart(
+ PackagingURIHelper.createPartName("/xl/drawings/vmlDrawing1.vml")
+ );
+ assertNotNull(drw);
+
+ // And again, just to be sure
+ nwb = XSSFTestDataSamples.writeOutAndReadBack(nwb);
+ nPkg = nwb.getPackage();
+ assertTrue(nwb.isMacroEnabled());
+
+ vba = nPkg.getPart(
+ PackagingURIHelper.createPartName("/xl/vbaProject.bin")
+ );
+ assertNotNull(vba);
+ drw = nPkg.getPart(
+ PackagingURIHelper.createPartName("/xl/drawings/vmlDrawing1.vml")
+ );
+ assertNotNull(drw);
+
+ // For testing with excel
// FileOutputStream fout = new FileOutputStream("/tmp/foo.xlsm");
// nwb.write(fout);
// fout.close();
- }
+ }
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
index 4a943597e6..c2ddb01bae 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
@@ -17,9 +17,6 @@
package org.apache.poi.xssf.usermodel;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Comment;
@@ -27,6 +24,7 @@ import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.model.CommentsTable;
+import org.apache.poi.xssf.XSSFTestDataSamples;
import org.openxml4j.opc.Package;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTAuthors;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComment;
@@ -135,7 +133,7 @@ public class TestXSSFComment extends TestCase {
*/
public void testCreateSave() throws Exception {
XSSFWorkbook wb = new XSSFWorkbook();
- XSSFSheet s1 = (XSSFSheet)wb.createSheet();
+ XSSFSheet s1 = wb.createSheet();
Row r1 = s1.createRow(0);
Cell r1c1 = r1.createCell(0);
r1c1.setCellValue(2.2);
@@ -150,12 +148,8 @@ public class TestXSSFComment extends TestCase {
assertEquals(1, s1.getNumberOfComments());
// Save and re-load
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- wb.write(baos);
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
- wb = new XSSFWorkbook(Package.open(bais));
- s1 = (XSSFSheet)wb.getSheetAt(0);
+ wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ s1 = wb.getSheetAt(0);
assertEquals(1, s1.getNumberOfComments());
assertNotNull(s1.getRow(0).getCell(0).getCellComment());
@@ -171,12 +165,9 @@ public class TestXSSFComment extends TestCase {
assertEquals(2, s1.getNumberOfComments());
// Save and re-load
- baos = new ByteArrayOutputStream();
- wb.write(baos);
- bais = new ByteArrayInputStream(baos.toByteArray());
-
- wb = new XSSFWorkbook(Package.open(bais));
- s1 = (XSSFSheet)wb.getSheetAt(0);
+
+ wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ s1 = wb.getSheetAt(0);
assertEquals(2, s1.getNumberOfComments());
assertNotNull(s1.getCellComment(0, 0));
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java
index 2c469c49b3..0e5141db78 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java
@@ -17,8 +17,6 @@
package org.apache.poi.xssf.usermodel;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import junit.framework.TestCase;
@@ -27,6 +25,7 @@ import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Hyperlink;
import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.xssf.XSSFTestDataSamples;
import org.openxml4j.opc.Package;
public class TestXSSFHyperlink extends TestCase {
@@ -79,12 +78,9 @@ public class TestXSSFHyperlink extends TestCase {
// Write out, and check
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- workbook.write(baos);
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
+
// Load up again, check all links still there
- XSSFWorkbook wb2 = new XSSFWorkbook(Package.open(bais));
+ XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(workbook);
assertEquals(3, wb2.getNumberOfSheets());
assertNotNull(wb2.getSheetAt(0));
assertNotNull(wb2.getSheetAt(1));
@@ -119,18 +115,14 @@ public class TestXSSFHyperlink extends TestCase {
// Save and re-load once more
- baos = new ByteArrayOutputStream();
- wb2.write(baos);
- bais = new ByteArrayInputStream(baos.toByteArray());
-
-
- XSSFWorkbook wb3 = new XSSFWorkbook(Package.open(bais));
+
+ XSSFWorkbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2);
assertEquals(3, wb3.getNumberOfSheets());
assertNotNull(wb3.getSheetAt(0));
assertNotNull(wb3.getSheetAt(1));
assertNotNull(wb3.getSheetAt(2));
- sheet = (XSSFSheet)wb3.getSheetAt(0);
+ sheet = wb3.getSheetAt(0);
assertEquals(5, sheet.getNumHyperlinks());
doTestHyperlinkContents(sheet);
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
index 2ccedebf8c..5060125b0e 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
@@ -17,8 +17,6 @@
package org.apache.poi.xssf.usermodel;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.Iterator;
import junit.framework.TestCase;
@@ -30,11 +28,7 @@ import org.apache.poi.ss.util.Region;
import org.apache.poi.xssf.model.CommentsTable;
import org.apache.poi.xssf.model.StylesTable;
import org.apache.poi.xssf.usermodel.helpers.ColumnHelper;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.usermodel.HSSFRow;
-import org.apache.poi.hssf.usermodel.HSSFCell;
-import org.openxml4j.opc.Package;
+import org.apache.poi.xssf.XSSFTestDataSamples;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComment;
@@ -349,11 +343,7 @@ public class TestXSSFSheet extends TestCase {
// Save and reload
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- workbook.write(baos);
- XSSFWorkbook wb = new XSSFWorkbook(Package.open(
- new ByteArrayInputStream(baos.toByteArray())
- ));
+ XSSFWorkbook wb = XSSFTestDataSamples.writeOutAndReadBack(workbook);
hdr = (XSSFOddHeader)wb.getSheetAt(0).getHeader();
ftr = (XSSFOddFooter)wb.getSheetAt(0).getFooter();
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
index 4bfaf3ac2a..a8cdda1f55 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
@@ -441,7 +441,7 @@ public final class TestXSSFWorkbook extends TestCase {
// Now, an existing file with named ranges
workbook = XSSFTestDataSamples.openSampleWorkbook("WithVariousData.xlsx");
-
+
assertEquals(2, workbook.getNumberOfNames());
assertEquals("Sheet1!$A$2:$A$7", workbook.getNameAt(0).getReference());
assertEquals("AllANumbers", workbook.getNameAt(0).getNameName());