You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2015/05/11 16:58:43 UTC
svn commit: r1678764 -
/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java
Author: nick
Date: Mon May 11 14:58:43 2015
New Revision: 1678764
URL: http://svn.apache.org/r1678764
Log:
Add a (disabled) failing unit test on heavily nested NPOIFS copies, found working on #56791
Modified:
poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java
Modified: poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java?rev=1678764&r1=1678763&r2=1678764&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java Mon May 11 14:58:43 2015
@@ -17,6 +17,9 @@
package org.apache.poi.poifs.filesystem;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -30,6 +33,7 @@ import org.apache.poi.POIDataSamples;
*/
public final class TestFileSystemBugs extends TestCase {
protected static POIDataSamples _samples = POIDataSamples.getPOIFSInstance();
+ protected static POIDataSamples _ssSamples = POIDataSamples.getSpreadSheetInstance();
protected List<NPOIFSFileSystem> openedFSs;
protected void tearDown() throws Exception {
@@ -45,15 +49,25 @@ public final class TestFileSystemBugs ex
openedFSs = null;
}
protected DirectoryNode[] openSample(String name, boolean oldFails) throws Exception {
- NPOIFSFileSystem nfs = new NPOIFSFileSystem(
- _samples.openResourceAsStream(name));
+ return openSamples(new InputStream[] {
+ _samples.openResourceAsStream(name),
+ _samples.openResourceAsStream(name)
+ }, oldFails);
+ }
+ protected DirectoryNode[] openSSSample(String name, boolean oldFails) throws Exception {
+ return openSamples(new InputStream[] {
+ _ssSamples.openResourceAsStream(name),
+ _ssSamples.openResourceAsStream(name)
+ }, oldFails);
+ }
+ protected DirectoryNode[] openSamples(InputStream[] inps, boolean oldFails) throws Exception {
+ NPOIFSFileSystem nfs = new NPOIFSFileSystem(inps[0]);
if (openedFSs == null) openedFSs = new ArrayList<NPOIFSFileSystem>();
openedFSs.add(nfs);
POIFSFileSystem ofs = null;
try {
- ofs = new POIFSFileSystem(
- _samples.openResourceAsStream(name));
+ ofs = new POIFSFileSystem(inps[1]);
if (oldFails) fail("POIFSFileSystem should have failed but didn't");
} catch (Exception e) {
if (!oldFails) throw e;
@@ -107,4 +121,36 @@ public final class TestFileSystemBugs ex
assertEquals(42, root.getEntryCount());
}
}
+
+ /**
+ * With heavily nested documents, ensure we still re-write the same
+ */
+ public void IGNOREDtestHeavilyNestedReWrite() throws Exception {
+ for (DirectoryNode root : openSSSample("ex42570-20305.xls", false)) {
+ // TODO Record the structure
+
+ // Prepare to copy
+ DirectoryNode dest;
+ if (root.getNFileSystem() != null) {
+ dest = (new NPOIFSFileSystem()).getRoot();
+ } else {
+ dest = (new OPOIFSFileSystem()).getRoot();
+ }
+
+ // Copy over
+ EntryUtils.copyNodes(root, dest);
+
+ // Re-load, always as NPOIFS
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ if (root.getNFileSystem() != null) {
+ root.getNFileSystem().writeFilesystem(baos);
+ } else {
+ root.getOFileSystem().writeFilesystem(baos);
+ }
+ NPOIFSFileSystem read = new NPOIFSFileSystem(
+ new ByteArrayInputStream(baos.toByteArray()));
+
+ // TODO Check the structure matches
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org