You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2015/11/23 14:55:49 UTC

svn commit: r1715815 - in /poi/trunk: ./ src/ooxml/testcases/org/apache/poi/sl/ src/ooxml/testcases/org/apache/poi/sl/draw/ src/ooxml/testcases/org/apache/poi/xslf/ src/ooxml/testcases/org/apache/poi/xslf/usermodel/

Author: onealj
Date: Mon Nov 23 13:55:48 2015
New Revision: 1715815

URL: http://svn.apache.org/viewvc?rev=1715815&view=rev
Log:
prevent slideshow test-data files shapes.pptx and tables_test.pptx from being modified when running "ant test"; close open resources

Modified:
    poi/trunk/.project
    poi/trunk/src/ooxml/testcases/org/apache/poi/sl/TestTable.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/sl/draw/TestDrawPictureShape.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/XSLFTestDataSamples.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFHyperlink.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFShape.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java

Modified: poi/trunk/.project
URL: http://svn.apache.org/viewvc/poi/trunk/.project?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/.project (original)
+++ poi/trunk/.project Mon Nov 23 13:55:48 2015
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>ApachePOI</name>
+	<name>ApachePOI-bug58365</name>
 	<comment></comment>
 	<projects>
 	</projects>

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/sl/TestTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/sl/TestTable.java?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/sl/TestTable.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/sl/TestTable.java Mon Nov 23 13:55:48 2015
@@ -22,43 +22,71 @@ package org.apache.poi.sl;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
+import java.io.InputStream;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.sl.usermodel.SlideShow;
 import org.apache.poi.sl.usermodel.SlideShowFactory;
 import org.apache.poi.sl.usermodel.TableShape;
+import org.apache.poi.xslf.XSLFTestDataSamples;
+import org.apache.poi.xslf.usermodel.XMLSlideShow;
 import org.junit.Test;
 
 public class TestTable {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
     
+    /** a generic way to open a sample slideshow document **/
+    public static SlideShow<?,?> openSampleSlideshow(String sampleName) throws IOException {
+        InputStream is = _slTests.openResourceAsStream(sampleName);
+        try {
+            return SlideShowFactory.create(is);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            is.close();
+        }
+    }
+    
     @Test
     public void testColWidthRowHeight() throws IOException {
         // Test of table dimensions of same slideshow saved as ppt/x
         // to check if both return similar (points) value
-        SlideShow<?,?> ppt = SlideShowFactory.create(_slTests.getFile("table_test.ppt"));
+        SlideShow<?,?> ppt = openSampleSlideshow("table_test.ppt");
         TableShape<?,?> ts = (TableShape<?,?>)ppt.getSlides().get(0).getShapes().get(0);
-        int cols = ts.getNumberOfColumns();
-        int rows = ts.getNumberOfRows();
 
-        SlideShow<?,?> pptx = SlideShowFactory.create(_slTests.getFile("table_test.pptx"));
+        SlideShow<?,?> pptx = openSampleSlideshow("table_test.pptx");
         TableShape<?,?> tsx = (TableShape<?,?>)pptx.getSlides().get(0).getShapes().get(0);
-        int colsx = tsx.getNumberOfColumns();
-        int rowsx = tsx.getNumberOfRows();
         
-        assertEquals(cols, colsx);
-        assertEquals(rows, rowsx);
+        // assume table shape should be equal to itself
+        confirmTableShapeEqual(ts, ts);
+        confirmTableShapeEqual(tsx, tsx);
+        
+        // assert ppt and pptx versions of the same table have the same shape
+        confirmTableShapeEqual(ts, tsx);
+
+        pptx.close();
+        ppt.close();
+    }
+    
+    private void confirmTableShapeEqual(TableShape<?,?> tableA, TableShape<?,?> tableB) {
+        int cols = tableA.getNumberOfColumns();
+        int rows = tableA.getNumberOfRows();
+        
+        int colsx = tableB.getNumberOfColumns();
+        int rowsx = tableB.getNumberOfRows();
+        
+        assertEquals("tables should have same number of columns", cols, colsx);
+        assertEquals("tables should have same number of rows", rows, rowsx);
         
         for (int i=0; i<cols; i++) {
-            assertEquals(ts.getColumnWidth(i), tsx.getColumnWidth(i), 0.2);
+            assertEquals("Width of column " + i + " should be equal",
+                    tableA.getColumnWidth(i), tableB.getColumnWidth(i), 0.2);
         }
 
         for (int i=0; i<rows; i++) {
-            assertEquals(ts.getRowHeight(i), tsx.getRowHeight(i), 0.3);
+            assertEquals("Height of row " + i + " should be equal",
+                    tableA.getRowHeight(i), tableB.getRowHeight(i), 0.3);
         }
-
-        pptx.close();
-        ppt.close();
     }
 
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/sl/draw/TestDrawPictureShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/sl/draw/TestDrawPictureShape.java?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/sl/draw/TestDrawPictureShape.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/sl/draw/TestDrawPictureShape.java Mon Nov 23 13:55:48 2015
@@ -23,8 +23,11 @@ import static org.junit.Assert.assertNot
 
 import java.awt.Dimension;
 import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+import java.io.InputStream;
 
 import org.apache.poi.POIDataSamples;
+import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.sl.usermodel.PictureData;
 import org.apache.poi.sl.usermodel.PictureShape;
 import org.apache.poi.sl.usermodel.RectAlign;
@@ -33,16 +36,31 @@ import org.apache.poi.sl.usermodel.Slide
 import org.apache.poi.sl.usermodel.SlideShow;
 import org.apache.poi.sl.usermodel.SlideShowFactory;
 import org.apache.poi.util.Units;
+import org.apache.poi.xslf.XSLFTestDataSamples;
+import org.apache.poi.xslf.usermodel.XMLSlideShow;
 import org.junit.Test;
 
 public class TestDrawPictureShape {
     final static POIDataSamples ssSamples = POIDataSamples.getSlideShowInstance();
+    
+    /** a generic way to open a sample slideshow document **/
+    public static SlideShow<?,?> openSampleDocument(String sampleName) throws IOException {
+        InputStream is = ssSamples.openResourceAsStream(sampleName);
+        try {
+            return SlideShowFactory.create(is);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            is.close();
+        }
+    }
 
     @Test
     public void testResize() throws Exception {
         String files[] = { "pictures.ppt", "shapes.pptx" };
         for (String file : files) {
-            SlideShow<?,?> ss = SlideShowFactory.create(ssSamples.getFile(file));
+            SlideShow<?,?> ss = openSampleDocument(file);
+            
             Slide<?,?> slide = ss.getSlides().get(0);
             PictureShape<?,?> picShape = null;
             for (Shape<?,?> shape : slide.getShapes()) {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/XSLFTestDataSamples.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/XSLFTestDataSamples.java?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/XSLFTestDataSamples.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/XSLFTestDataSamples.java Mon Nov 23 13:55:48 2015
@@ -22,30 +22,44 @@ import org.apache.poi.xslf.usermodel.XML
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
 
 /**
  * @author Yegor Kozlov
  */
 public class XSLFTestDataSamples {
 
-    public static XMLSlideShow openSampleDocument(String sampleName) {
+    public static XMLSlideShow openSampleDocument(String sampleName) throws IOException {
         InputStream is = POIDataSamples.getSlideShowInstance().openResourceAsStream(sampleName);
         try {
             return new XMLSlideShow(OPCPackage.open(is));
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            is.close();
         }
     }
 
-    public static XMLSlideShow writeOutAndReadBack(XMLSlideShow doc) {
+    public static XMLSlideShow writeOutAndReadBack(XMLSlideShow doc) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
         try {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
             doc.write(baos);
-            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        
+        InputStream bais;
+        bais = new ByteArrayInputStream(baos.toByteArray());
+        try {
             return new XMLSlideShow(OPCPackage.open(bais));
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            baos.close();
+            bais.close();
         }
+        
     }
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFHyperlink.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFHyperlink.java?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFHyperlink.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFHyperlink.java Mon Nov 23 13:55:48 2015
@@ -19,9 +19,11 @@ package org.apache.poi.xslf.usermodel;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import java.io.IOException;
 import java.net.URI;
 import java.util.List;
 
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.openxml4j.opc.TargetMode;
 import org.apache.poi.xslf.XSLFTestDataSamples;
@@ -33,7 +35,7 @@ import org.junit.Test;
 public class TestXSLFHyperlink {
 
     @Test
-    public void testRead(){
+    public void testRead() throws IOException{
         XMLSlideShow  ppt = XSLFTestDataSamples.openSampleDocument("shapes.pptx");
 
         XSLFSlide slide = ppt.getSlides().get(4);
@@ -56,10 +58,12 @@ public class TestXSLFHyperlink {
         XSLFHyperlink link3 = cell3.getTextParagraphs().get(0).getTextRuns().get(0).getHyperlink();
         assertNotNull(link3);
         assertEquals(URI.create("mailto:dev@poi.apache.org?subject=Hi%20There"), link3.getTargetURI());
+        
+        ppt.close();
     }
 
     @Test
-    public void testCreate() throws Exception  {
+    public void testCreate() throws IOException, InvalidFormatException  {
         XMLSlideShow ppt = new XMLSlideShow();
         XSLFSlide slide1 = ppt.createSlide();
         XSLFSlide slide2 = ppt.createSlide();
@@ -97,5 +101,7 @@ public class TestXSLFHyperlink {
         assertEquals(id2, rel2.getId());
         assertEquals(TargetMode.INTERNAL, rel2.getTargetMode());
         assertEquals(XSLFRelation.SLIDE.getRelation(), rel2.getRelationshipType());
+        
+        ppt.close();
     }
 }
\ No newline at end of file

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFShape.java?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFShape.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFShape.java Mon Nov 23 13:55:48 2015
@@ -22,6 +22,7 @@ import org.apache.poi.xslf.XSLFTestDataS
 import org.junit.Test;
 import org.openxmlformats.schemas.drawingml.x2006.main.STTextUnderlineType;
 
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -30,7 +31,7 @@ import java.util.List;
 public class TestXSLFShape {
 
     @Test
-    public void testReadTextShapes() {
+    public void testReadTextShapes() throws IOException {
         XMLSlideShow ppt = XSLFTestDataSamples.openSampleDocument("shapes.pptx");
         List<XSLFSlide> slides = ppt.getSlides();
 
@@ -79,9 +80,12 @@ public class TestXSLFShape {
         assertEquals("Subtitle", paragraphs2.get(0).getTextRuns().get(0).getRawText());
         assertTrue(paragraphs2.get(0).getTextRuns().get(0).getXmlObject().getRPr().getB());
         assertEquals("And second line", paragraphs2.get(1).getTextRuns().get(0).getRawText());
+        
+        ppt.close();
     }
 
-    public void testCreateShapes() {
+    @Test
+    public void testCreateShapes() throws IOException {
         XMLSlideShow ppt = new XMLSlideShow();
         XSLFSlide slide = ppt.createSlide();
         assertTrue(slide.getShapes().isEmpty());
@@ -92,11 +96,14 @@ public class TestXSLFShape {
         assertSame(textBox, slide.getShapes().get(0));
 
         assertEquals("", textBox.getText());
-        assertEquals(0, textBox.getTextParagraphs().size());
+        // FIXME: is this correct? Should it be starting out with 0 or 1 text paragraphs?
+        assertEquals(1, textBox.getTextParagraphs().size());
         textBox.addNewTextParagraph().addNewTextRun().setText("Apache");
         textBox.addNewTextParagraph().addNewTextRun().setText("POI");
         assertEquals("Apache\nPOI", textBox.getText());
-        assertEquals(2, textBox.getTextParagraphs().size());
+        assertEquals(3, textBox.getTextParagraphs().size());
+        
+        ppt.close();
     }
 
 }
\ No newline at end of file

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java?rev=1715815&r1=1715814&r2=1715815&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSlide.java Mon Nov 23 13:55:48 2015
@@ -36,7 +36,7 @@ import org.junit.Test;
 public class TestXSLFSlide {
     
     @Test
-    public void testReadShapes(){
+    public void testReadShapes() throws IOException {
         XMLSlideShow  ppt = XSLFTestDataSamples.openSampleDocument("shapes.pptx");
         List<XSLFSlide> slides = ppt.getSlides();
 
@@ -101,6 +101,8 @@ public class TestXSLFSlide {
         XSLFTable tbl = (XSLFTable)shapes4.get(0);
         assertEquals(3, tbl.getNumberOfColumns());
         assertEquals(6, tbl.getNumberOfRows());
+        
+        ppt.close();
     }
 
     @Test



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org