aboutsummaryrefslogtreecommitdiffstats
path: root/src/scratchpad/testcases/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/scratchpad/testcases/org')
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/HSLFTestDataSamples.java74
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java25
2 files changed, 93 insertions, 6 deletions
diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/HSLFTestDataSamples.java b/src/scratchpad/testcases/org/apache/poi/hslf/HSLFTestDataSamples.java
new file mode 100644
index 0000000000..6740708792
--- /dev/null
+++ b/src/scratchpad/testcases/org/apache/poi/hslf/HSLFTestDataSamples.java
@@ -0,0 +1,74 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hslf;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.hslf.usermodel.SlideShow;
+
+public class HSLFTestDataSamples {
+
+ private static final POIDataSamples _inst = POIDataSamples.getSlideShowInstance();
+
+ public static InputStream openSampleFileStream(String sampleFileName) {
+ return _inst.openResourceAsStream(sampleFileName);
+ }
+ public static File getSampleFile(String sampleFileName) {
+ return _inst.getFile(sampleFileName);
+ }
+ public static byte[] getTestDataFileContent(String fileName) {
+ return _inst.readFile(fileName);
+ }
+
+ /**
+ * Writes a slideshow to a <tt>ByteArrayOutputStream</tt> and reads it back
+ * from a <tt>ByteArrayInputStream</tt>.<p/>
+ * Useful for verifying that the serialisation round trip
+ */
+ public static HSLFSlideShow writeOutAndReadBack(HSLFSlideShow original) {
+ try {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
+ original.write(baos);
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ return new HSLFSlideShow(bais);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Writes a slideshow to a <tt>ByteArrayOutputStream</tt> and reads it back
+ * from a <tt>ByteArrayInputStream</tt>.<p/>
+ * Useful for verifying that the serialisation round trip
+ */
+ public static SlideShow writeOutAndReadBack(SlideShow original) {
+ try {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
+ original.write(baos);
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ return new SlideShow(bais);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java b/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java
index ff918ad03d..1398e747e1 100644
--- a/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java
+++ b/src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java
@@ -18,15 +18,16 @@
package org.apache.poi.hslf;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
+
import junit.framework.TestCase;
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.poifs.filesystem.*;
import org.apache.poi.POIDataSamples;
-
-import java.io.ByteArrayOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.FileNotFoundException;
+import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.poifs.filesystem.DocumentEntry;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
* Tests that HSLFSlideShow writes the powerpoint bit of data back out
@@ -160,4 +161,16 @@ public final class TestReWrite extends TestCase {
assertEquals(_oData[i], _nData[i]);
}
}
+
+ public void test48593() throws Exception {
+ SlideShow slideShow = new SlideShow();
+ slideShow.createSlide();
+ slideShow = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
+ slideShow.createSlide();
+ slideShow = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
+ slideShow.createSlide();
+ slideShow = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
+ slideShow.createSlide();
+ slideShow = HSLFTestDataSamples.writeOutAndReadBack(slideShow);
+ }
}