Author: nick
Date: Mon Aug  4 21:34:51 2014
New Revision: 1615803

URL: http://svn.apache.org/r1615803
Log:
Add a disabled unit test for bug #56812, based on code and file from Geoff 
Wright

Added:
    poi/trunk/test-data/slideshow/56812.pptx   (with props)
Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java?rev=1615803&r1=1615802&r2=1615803&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java 
(original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java 
Mon Aug  4 21:34:51 2014
@@ -19,28 +19,34 @@
 
 package org.apache.poi.xslf.usermodel;
 
+import java.awt.Graphics2D;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+
+import javax.imageio.ImageIO;
+import javax.xml.namespace.QName;
+
 import org.apache.poi.POIXMLException;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.util.Beta;
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.*;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTOfficeArtExtension;
+import 
org.openxmlformats.schemas.drawingml.x2006.main.CTOfficeArtExtensionList;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties;
+import org.openxmlformats.schemas.drawingml.x2006.main.STShapeType;
 import 
org.openxmlformats.schemas.presentationml.x2006.main.CTApplicationNonVisualDrawingProps;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTPicture;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTPictureNonVisual;
 
-import javax.imageio.ImageIO;
-import javax.xml.namespace.QName;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-
 /**
  * Represents a picture shape
- *
- * @author Yegor Kozlov
  */
 @Beta
 public class XSLFPictureShape extends XSLFSimpleShape {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java?rev=1615803&r1=1615802&r2=1615803&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java 
(original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java Mon Aug 
 4 21:34:51 2014
@@ -25,7 +25,10 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.xslf.usermodel.DrawingParagraph;
 import org.apache.poi.xslf.usermodel.DrawingTextBody;
 import org.apache.poi.xslf.usermodel.XMLSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFPictureData;
+import org.apache.poi.xslf.usermodel.XSLFPictureShape;
 import org.apache.poi.xslf.usermodel.XSLFRelation;
+import org.apache.poi.xslf.usermodel.XSLFShape;
 import org.apache.poi.xslf.usermodel.XSLFSlide;
 import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
 
@@ -136,6 +139,31 @@ public class TestXSLFBugs extends POITes
         assertContains("POI can read this", getSlideText(slide));
     }
     
+    /**
+     * When the picture is not embedded but inserted only as a "link to file", 
+     * there is no data available and XSLFPictureShape.getPictureData()
+     * gives a NPE, see bug #56812
+     */
+    public void DISABLEDtest56812() throws Exception {
+        XMLSlideShow ppt = 
XSLFTestDataSamples.openSampleDocument("56812.pptx");
+        
+        int pictures = 0;
+        for (XSLFSlide slide : ppt.getSlides()){
+            for (XSLFShape shape : slide.getShapes()){
+                assertNotNull(shape);
+                
+                if (shape instanceof XSLFPictureShape) {
+                    XSLFPictureData data = ((XSLFPictureShape) 
shape).getPictureData();
+                    assertNotNull(data);
+                    assertNotNull(data.getFileName());
+                    pictures++;
+                }
+            }
+        }
+        
+        assertEquals(3, pictures);
+    }
+    
     protected String getSlideText(XSLFSlide slide) {
         StringBuffer text = new StringBuffer();
         for(DrawingTextBody textBody : 
slide.getCommonSlideData().getDrawingText()) {

Added: poi/trunk/test-data/slideshow/56812.pptx
URL: 
http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/56812.pptx?rev=1615803&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/slideshow/56812.pptx
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to