aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/poifs/filesystem
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2014-04-24 22:22:06 +0000
committerNick Burch <nick@apache.org>2014-04-24 22:22:06 +0000
commit75826dcd7509cf8d2e017f8acf47e682fedf51d3 (patch)
tree2c77b30d502c8fce5f93c302df79a32bf3447e3c /src/testcases/org/apache/poi/poifs/filesystem
parente95e05b8758b3856c569d59906abcc8c9613d0c8 (diff)
downloadpoi-75826dcd7509cf8d2e017f8acf47e682fedf51d3.tar.gz
poi-75826dcd7509cf8d2e017f8acf47e682fedf51d3.zip
Add common code for writing out and reading NPOIFS again, and add a disabled roundtrip test (currently failing...)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1589895 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/poifs/filesystem')
-rw-r--r--src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java63
1 files changed, 57 insertions, 6 deletions
diff --git a/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java b/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java
index a5617ef279..cd0598be30 100644
--- a/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java
+++ b/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java
@@ -83,6 +83,13 @@ public final class TestNPOIFSFileSystem {
return header;
}
+ protected static NPOIFSFileSystem writeOutAndReadBack(NPOIFSFileSystem original) throws IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ original.writeFilesystem(baos);
+ original.close();
+ return new NPOIFSFileSystem(new ByteArrayInputStream(baos.toByteArray()));
+ }
+
@Test
public void basicOpen() throws Exception {
NPOIFSFileSystem fsA, fsB;
@@ -521,11 +528,9 @@ public final class TestNPOIFSFileSystem {
// Now, write it out, and read it back in again fully
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- fs.writeFilesystem(baos);
+ fs = writeOutAndReadBack(fs);
// Check that it is seen correctly
- fs = new NPOIFSFileSystem(new ByteArrayInputStream(baos.toByteArray()));
assertBATCount(fs, 237, 2);
assertEquals(false, fs.getBATBlockAndIndex(236*128-1).getBlock().hasFreeSectors());
@@ -670,9 +675,7 @@ public final class TestNPOIFSFileSystem {
assertEquals(POIFSConstants.END_OF_CHAIN, fs.getRoot().getProperty().getStartBlock());
// Write and read it
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- fs.writeFilesystem(baos);
- fs = new NPOIFSFileSystem(new ByteArrayInputStream(baos.toByteArray()));
+ fs = writeOutAndReadBack(fs);
// Property table entries have been added to the blocks
assertEquals(POIFSConstants.FAT_SECTOR_BLOCK, fs.getNextBlock(0));
@@ -795,7 +798,55 @@ public final class TestNPOIFSFileSystem {
// Write and read back
+ fs = writeOutAndReadBack(fs);
+
+ // Check it's all unchanged
+ // TODO Fix it so that it is....
+if (1==0) {
+ assertEquals(POIFSConstants.FAT_SECTOR_BLOCK, fs.getNextBlock(0));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(1));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(2));
+ if (fs.getBigBlockSize() == POIFSConstants.SMALLER_BIG_BLOCK_SIZE) {
+ assertEquals(4, fs.getNextBlock(3));
+ assertEquals(5, fs.getNextBlock(4));
+ assertEquals(6, fs.getNextBlock(5));
+ assertEquals(7, fs.getNextBlock(6));
+ assertEquals(8, fs.getNextBlock(7));
+ assertEquals(9, fs.getNextBlock(8));
+ assertEquals(10, fs.getNextBlock(9));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(10));
+
+ assertEquals(12, fs.getNextBlock(11));
+ assertEquals(13, fs.getNextBlock(12));
+ assertEquals(14, fs.getNextBlock(13));
+ assertEquals(15, fs.getNextBlock(14));
+ assertEquals(16, fs.getNextBlock(15));
+ assertEquals(17, fs.getNextBlock(16));
+ assertEquals(18, fs.getNextBlock(17));
+ assertEquals(19, fs.getNextBlock(18));
+ assertEquals(20, fs.getNextBlock(19));
+ assertEquals(21, fs.getNextBlock(20));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(21));
+ assertEquals(23, fs.getNextBlock(22));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(23));
+ assertEquals(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(24));
+ } else {
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(3));
+ assertEquals(5, fs.getNextBlock(4));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(5));
+ assertEquals(7, fs.getNextBlock(6));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(7));
+ assertEquals(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(8));
+ }
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getRoot().getProperty().getStartBlock());
+}
+
+ // Check some data
// TODO
+
+
+ // All done
+ fs.close();
}
@Test