diff options
Diffstat (limited to 'src/scratchpad/testcases/org')
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hslf/HSLFTestDataSamples.java | 74 | ||||
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hslf/TestReWrite.java | 25 |
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); + } } |