* @author Nick Burch (nick at torchbox dot com)
*/
public final class TestReWriteSanity {
- // HSLFSlideShow primed on the test data
- private HSLFSlideShowImpl ss;
- // POIFS primed on the test data
- private POIFSFileSystem pfs;
+ // HSLFSlideShow primed on the test data
+ private HSLFSlideShowImpl ss;
+ // POIFS primed on the test data
+ private POIFSFileSystem pfs;
- @Before
+ @Before
public void setUp() throws Exception {
POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- pfs = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
- ss = new HSLFSlideShowImpl(pfs);
+ pfs = new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+ ss = new HSLFSlideShowImpl(pfs);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ pfs.close();
+ ss.close();
}
-
- @After
- public void tearDown() throws Exception {
- pfs.close();
- ss.close();
- }
@Test
- public void testUserEditAtomsRight() throws Exception {
- // Write out to a byte array
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ss.write(baos);
-
- // Build an input stream of it
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
- // Create a new one from that
- HSLFSlideShowImpl wss = new HSLFSlideShowImpl(bais);
-
- // Find the location of the PersistPtrIncrementalBlocks and
- // UserEditAtoms
- Record[] r = wss.getRecords();
- Map<Integer,Record> pp = new HashMap<Integer,Record>();
- Map<Integer,Object> ue = new HashMap<Integer,Object>();
- ue.put(Integer.valueOf(0),Integer.valueOf(0)); // Will show 0 if first
- int pos = 0;
- int lastUEPos = -1;
-
- for (final Record rec : r) {
- if(rec instanceof PersistPtrHolder) {
- pp.put(Integer.valueOf(pos), rec);
- }
- if(rec instanceof UserEditAtom) {
- ue.put(Integer.valueOf(pos), rec);
- lastUEPos = pos;
- }
-
- ByteArrayOutputStream bc = new ByteArrayOutputStream();
- rec.writeOut(bc);
- pos += bc.size();
- }
-
- // Check that the UserEditAtom's point to right stuff
- for (final Record rec : r) {
- if(rec instanceof UserEditAtom) {
- UserEditAtom uea = (UserEditAtom)rec;
- int luPos = uea.getLastUserEditAtomOffset();
- int ppPos = uea.getPersistPointersOffset();
-
- assertContains(ue, Integer.valueOf(luPos));
- assertContains(pp, Integer.valueOf(ppPos));
- }
- }
-
- // Check that the CurrentUserAtom points to the right UserEditAtom
- CurrentUserAtom cua = wss.getCurrentUserAtom();
- int listedUEPos = (int)cua.getCurrentEditOffset();
- assertEquals(lastUEPos,listedUEPos);
-
- wss.close();
- }
+ public void testUserEditAtomsRight() throws Exception {
+ // Write out to a byte array
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ss.write(baos);
+
+ // Build an input stream of it
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+
+ // Create a new one from that
+ HSLFSlideShowImpl wss = new HSLFSlideShowImpl(bais);
+
+ // Find the location of the PersistPtrIncrementalBlocks and
+ // UserEditAtoms
+ Record[] r = wss.getRecords();
+ Map<Integer,Record> pp = new HashMap<Integer,Record>();
+ Map<Integer,Object> ue = new HashMap<Integer,Object>();
+ ue.put(Integer.valueOf(0),Integer.valueOf(0)); // Will show 0 if first
+ int pos = 0;
+ int lastUEPos = -1;
+
+ for (final Record rec : r) {
+ if(rec instanceof PersistPtrHolder) {
+ pp.put(Integer.valueOf(pos), rec);
+ }
+ if(rec instanceof UserEditAtom) {
+ ue.put(Integer.valueOf(pos), rec);
+ lastUEPos = pos;
+ }
+
+ ByteArrayOutputStream bc = new ByteArrayOutputStream();
+ rec.writeOut(bc);
+ pos += bc.size();
+ }
+
+ // Check that the UserEditAtom's point to right stuff
+ for (final Record rec : r) {
+ if(rec instanceof UserEditAtom) {
+ UserEditAtom uea = (UserEditAtom)rec;
+ int luPos = uea.getLastUserEditAtomOffset();
+ int ppPos = uea.getPersistPointersOffset();
+
+ assertContains(ue, Integer.valueOf(luPos));
+ assertContains(pp, Integer.valueOf(ppPos));
+ }
+ }
+
+ // Check that the CurrentUserAtom points to the right UserEditAtom
+ CurrentUserAtom cua = wss.getCurrentUserAtom();
+ int listedUEPos = (int)cua.getCurrentEditOffset();
+ assertEquals(lastUEPos,listedUEPos);
+
+ wss.close();
+ }
}