aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/poifs
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2014-04-25 18:14:28 +0000
committerNick Burch <nick@apache.org>2014-04-25 18:14:28 +0000
commit92dd03dcd6b049ace5a09d0928125bc4e3413982 (patch)
tree053555b7019fe7046f4cdecfbf59cb9f6de36128 /src/testcases/org/apache/poi/poifs
parentc311ead345496e30eb48ee15bb181db559acdbfc (diff)
downloadpoi-92dd03dcd6b049ace5a09d0928125bc4e3413982.tar.gz
poi-92dd03dcd6b049ace5a09d0928125bc4e3413982.zip
Correct mini stream initialisation, and enable more npoifs write tests
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1590088 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/poifs')
-rw-r--r--src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java204
1 files changed, 88 insertions, 116 deletions
diff --git a/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java b/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java
index 92b8ac004b..6d51e55911 100644
--- a/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java
+++ b/src/testcases/org/apache/poi/poifs/filesystem/TestNPOIFSFileSystem.java
@@ -701,20 +701,16 @@ public final class TestNPOIFSFileSystem {
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(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(11));
- } else {
- assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(3));
- assertEquals(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(4));
- }
+ 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(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(11));
+
assertEquals(POIFSConstants.END_OF_CHAIN, fs.getRoot().getProperty().getStartBlock());
@@ -727,79 +723,66 @@ public final class TestNPOIFSFileSystem {
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(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(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(22));
- 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(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(22));
- } else {
- assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(3));
- assertEquals(5, fs.getNextBlock(4));
- assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(5));
- assertEquals(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(6));
- }
assertEquals(POIFSConstants.END_OF_CHAIN, fs.getRoot().getProperty().getStartBlock());
// Now Add a mini stream
- byte[] mini = new byte[] { 0, 1, 2, 3, 4 };
+ byte[] mini = new byte[] { 42, 0, 1, 2, 3, 4, 42 };
testDir.createDocument("Mini", new ByteArrayInputStream(mini));
// Mini stream will get one block for fat + one block for data
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(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(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(22));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(23));
+ assertEquals(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(24));
- 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));
- }
// Check the mini stream location was set
- assertEquals(22, fs.getRoot().getProperty().getStartBlock());
+ // (22 is mini fat, 23 is first mini stream block)
+ assertEquals(23, fs.getRoot().getProperty().getStartBlock());
// Write and read back
@@ -808,42 +791,34 @@ public final class TestNPOIFSFileSystem {
// Check it's all unchanged
assertEquals(POIFSConstants.FAT_SECTOR_BLOCK, fs.getNextBlock(0));
assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(1));
-if (1==0) {
+if(1==0) { // TODO FIX
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(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(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(22));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(23));
+ assertEquals(POIFSConstants.UNUSED_BLOCK, fs.getNextBlock(24));
}
- assertEquals(22, fs.getRoot().getProperty().getStartBlock());
+
+ assertEquals(23, fs.getRoot().getProperty().getStartBlock());
// Check some data
@@ -899,10 +874,10 @@ if (1==0) {
// Check the mini stream was added, then the main stream
assertEquals(POIFSConstants.FAT_SECTOR_BLOCK, fs.getNextBlock(0));
- assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(1));
- assertEquals(3, fs.getNextBlock(2));
- assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(3));
- assertEquals(5, fs.getNextBlock(4));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(1));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(2)); // Mini Fat
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(3)); // Mini Stream
+ assertEquals(5, fs.getNextBlock(4)); // Main Stream
assertEquals(6, fs.getNextBlock(5));
assertEquals(7, fs.getNextBlock(6));
assertEquals(8, fs.getNextBlock(7));
@@ -946,7 +921,7 @@ if (1==0) {
// the properties stream going in at the end
assertEquals(POIFSConstants.FAT_SECTOR_BLOCK, fs.getNextBlock(0));
assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(1));
- assertEquals(3, fs.getNextBlock(2));
+ assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(2));
assertEquals(POIFSConstants.END_OF_CHAIN, fs.getNextBlock(3));
assertEquals(5, fs.getNextBlock(4));
assertEquals(6, fs.getNextBlock(5));
@@ -976,10 +951,7 @@ if (1==0) {
inp = new NDocumentInputStream(miniDoc);
miniRead = new byte[miniDoc.getSize()];
assertEquals(miniDoc.getSize(), inp.read(miniRead));
- // TODO Fix mini stream write/read corruption
-if(1==0) {
assertThat(mini, equalTo(miniRead));
-}
inp.close();
normDoc = (DocumentEntry)testDir.getEntry("Normal4096");