]> source.dussan.org Git - poi.git/commitdiff
Test to ensure that when we add slides, we can write them back out and everything...
authorNick Burch <nick@apache.org>
Wed, 19 Apr 2006 15:43:06 +0000 (15:43 +0000)
committerNick Burch <nick@apache.org>
Wed, 19 Apr 2006 15:43:06 +0000 (15:43 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@395280 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestAddingSlides.java [new file with mode: 0644]

diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestAddingSlides.java b/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestAddingSlides.java
new file mode 100644 (file)
index 0000000..8ebd679
--- /dev/null
@@ -0,0 +1,191 @@
+
+/* ====================================================================
+   Copyright 2002-2004   Apache Software Foundation
+
+   Licensed 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.usermodel;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
+import junit.framework.TestCase;
+import org.apache.poi.hslf.*;
+import org.apache.poi.hslf.model.*;
+
+/**
+ * Tests that SlideShow adds additional sheets properly
+ *
+ * @author Nick Burch (nick at torchbox dot com)
+ */
+public class TestAddingSlides extends TestCase {
+       // An empty SlideShow
+       private HSLFSlideShow hss_empty;
+       private SlideShow ss_empty;
+       
+       // A SlideShow with one slide
+       private HSLFSlideShow hss_one;
+       private SlideShow ss_one;
+       
+       // A SlideShow with two slides
+       private HSLFSlideShow hss_two;
+       private SlideShow ss_two;
+       
+       /**
+        * Create/open the slideshows
+        */
+       public void setUp() throws Exception {
+               hss_empty = new HSLFSlideShow();
+               ss_empty = new SlideShow(hss_empty);
+               
+               String dirname = System.getProperty("HSLF.testdata.path");
+               
+               String filename = dirname + "/Single_Coloured_Page.ppt";
+               hss_one = new HSLFSlideShow(filename);
+               ss_one = new SlideShow(hss_one);
+               
+               filename = dirname + "/basic_test_ppt_file.ppt";
+               hss_two = new HSLFSlideShow(filename);
+               ss_two = new SlideShow(hss_two);
+       }
+       
+       /**
+        * Test adding a slide to an empty slideshow
+        */
+       public void testAddSlideToEmpty() throws Exception {
+               // Doesn't have any slides
+               assertEquals(0, ss_empty.getSlides().length);
+               
+               // Add one
+               Slide slide = ss_empty.createSlide();
+               assertEquals(1, ss_empty.getSlides().length);
+               assertEquals(256, slide._getSheetNumber());
+               assertEquals(3, slide._getSheetRefId());
+               assertEquals(1, slide.getSlideNumber());
+               
+               // Write out, and read back in
+               ByteArrayOutputStream baos = new ByteArrayOutputStream();
+               hss_empty.write(baos);
+               ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+               
+               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
+               SlideShow ss_read = new SlideShow(hss_read);
+               
+               // Check it now has a slide
+               assertEquals(1, ss_read.getSlides().length);
+               
+               // And check it's as expected
+               slide = ss_read.getSlides()[0];
+               assertEquals(256, slide._getSheetNumber());
+               assertEquals(3, slide._getSheetRefId());
+               assertEquals(1, slide.getSlideNumber());
+       }
+       
+       /**
+        * Test adding a slide to an existing slideshow
+        */
+       public void testAddSlideToExisting() throws Exception {
+               // Has one slide
+               assertEquals(1, ss_one.getSlides().length);
+               Slide s1 = ss_one.getSlides()[0];
+               
+               // Check slide 1 is as expected
+               assertEquals(256, s1._getSheetNumber());
+               assertEquals(3, s1._getSheetRefId());
+               assertEquals(1, s1.getSlideNumber());
+               
+               // Add a second one
+               Slide s2 = ss_one.createSlide();
+               assertEquals(2, ss_one.getSlides().length);
+               assertEquals(257, s2._getSheetNumber());
+               assertEquals(4, s2._getSheetRefId());
+               assertEquals(2, s2.getSlideNumber());
+               
+               // Write out, and read back in
+               ByteArrayOutputStream baos = new ByteArrayOutputStream();
+               hss_one.write(baos);
+               ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+               
+               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
+               SlideShow ss_read = new SlideShow(hss_read);
+               
+               // Check it now has two slides
+               assertEquals(2, ss_read.getSlides().length);
+               
+               // And check it's as expected
+               s1 = ss_read.getSlides()[0];
+               s2 = ss_read.getSlides()[1];
+               assertEquals(256, s1._getSheetNumber());
+               assertEquals(3, s1._getSheetRefId());
+               assertEquals(1, s1.getSlideNumber());
+               assertEquals(257, s2._getSheetNumber());
+               assertEquals(4, s2._getSheetRefId());
+               assertEquals(2, s2.getSlideNumber());
+       }
+       
+       /**
+        * Test adding a slide to an existing slideshow,
+        *  with two slides already
+        */
+       public void testAddSlideToExisting2() throws Exception {
+               // Has two slides
+               assertEquals(2, ss_two.getSlides().length);
+               Slide s1 = ss_two.getSlides()[0];
+               Slide s2 = ss_two.getSlides()[1];
+               
+               // Check slide 1 is as expected
+               assertEquals(256, s1._getSheetNumber());
+               assertEquals(4, s1._getSheetRefId()); // master has notes
+               assertEquals(1, s1.getSlideNumber());
+               // Check slide 2 is as expected
+               assertEquals(257, s2._getSheetNumber());
+               assertEquals(6, s2._getSheetRefId()); // master and 1 have notes
+               assertEquals(2, s2.getSlideNumber());
+               
+               // Add a third one
+               Slide s3 = ss_two.createSlide();
+               assertEquals(3, ss_two.getSlides().length);
+               assertEquals(258, s3._getSheetNumber());
+               assertEquals(8, s3._getSheetRefId()); // lots of notes before us
+               assertEquals(3, s3.getSlideNumber());
+               
+               // Write out, and read back in
+               ByteArrayOutputStream baos = new ByteArrayOutputStream();
+               hss_two.write(baos);
+               ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+               
+               HSLFSlideShow hss_read = new HSLFSlideShow(bais);
+               SlideShow ss_read = new SlideShow(hss_read);
+               
+               // Check it now has three slides
+               assertEquals(3, ss_read.getSlides().length);
+               
+               // And check it's as expected
+               s1 = ss_read.getSlides()[0];
+               s2 = ss_read.getSlides()[1];
+               s3 = ss_read.getSlides()[2];
+               assertEquals(256, s1._getSheetNumber());
+               assertEquals(4, s1._getSheetRefId());
+               assertEquals(1, s1.getSlideNumber());
+               assertEquals(257, s2._getSheetNumber());
+               assertEquals(6, s2._getSheetRefId());
+               assertEquals(2, s2.getSlideNumber());
+               assertEquals(258, s3._getSheetNumber());
+               assertEquals(8, s3._getSheetRefId());
+               assertEquals(3, s3.getSlideNumber());
+       }
+}