]> source.dussan.org Git - poi.git/commitdiff
fix mime type for pict files (image/x-pict)
authorPJ Fanning <fanningpj@apache.org>
Sat, 23 Oct 2021 12:53:57 +0000 (12:53 +0000)
committerPJ Fanning <fanningpj@apache.org>
Sat, 23 Oct 2021 12:53:57 +0000 (12:53 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894510 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFPictureData.java

index 9842e9ea580955ef4d060ad887928ebf359848a3..b42aeba0532135db8aa696bb7b4245c59ff637b9 100644 (file)
@@ -112,6 +112,37 @@ public final class TestXSSFPictureData {
         wb.close();
     }
 
+    @Test
+    void testNewPictFormat() throws IOException {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
+            XSSFSheet sheet = wb.createSheet();
+            XSSFDrawing drawing = sheet.createDrawingPatriarch();
+
+            byte[] pictData = "test pict data".getBytes(LocaleUtil.CHARSET_1252);
+
+            List<XSSFPictureData> pictures = wb.getAllPictures();
+            assertEquals(0, pictures.size());
+
+            int pictIdx = wb.addPicture(pictData, XSSFWorkbook.PICTURE_TYPE_PICT);
+            assertEquals(1, pictures.size());
+            assertEquals("pict", pictures.get(pictIdx).suggestFileExtension());
+            assertArrayEquals(pictData, pictures.get(pictIdx).getData());
+
+            //TODO finish usermodel API for XSSFPicture
+            XSSFPicture p1 = drawing.createPicture(new XSSFClientAnchor(), pictIdx);
+            assertNotNull(p1);
+
+            //check that the added pictures are accessible after write
+            try (XSSFWorkbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb)) {
+                List<XSSFPictureData> pictures2 = wbBack.getAllPictures();
+                assertEquals(1, pictures2.size());
+
+                assertEquals("pict", pictures2.get(pictIdx).suggestFileExtension());
+                assertArrayEquals(pictData, pictures2.get(pictIdx).getData());
+            }
+        }
+    }
+
     /**
      * Bug 53568:  XSSFPicture.getPictureData() can return null.
      */