diff options
Diffstat (limited to 'src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java')
-rw-r--r-- | src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java deleted file mode 100644 index 7deb6f22a6..0000000000 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFPictureData.java +++ /dev/null @@ -1,189 +0,0 @@ -/* ==================================================================== - 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.xwpf.usermodel; - -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.fail; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.List; - -import org.apache.poi.openxml4j.exceptions.InvalidFormatException; -import org.apache.poi.openxml4j.opc.PackageRelationship; -import org.apache.poi.xssf.usermodel.XSSFRelation; -import org.apache.poi.xwpf.XWPFTestDataSamples; -import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -class TestXWPFPictureData { - - @Test - void testRead() throws InvalidFormatException, IOException { - try (XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("VariousPictures.docx")) { - List<XWPFPictureData> pictures = sampleDoc.getAllPictures(); - - assertEquals(5, pictures.size()); - String[] ext = {"wmf", "png", "emf", "emf", "jpeg"}; - for (int i = 0; i < pictures.size(); i++) { - assertEquals(ext[i], pictures.get(i).suggestFileExtension()); - } - - int num = pictures.size(); - - byte[] pictureData = XWPFTestDataSamples.getImage("nature1.jpg"); - - String relationId = sampleDoc.addPictureData(pictureData, XWPFDocument.PICTURE_TYPE_JPEG); - // picture list was updated - assertEquals(num + 1, pictures.size()); - XWPFPictureData pict = (XWPFPictureData) sampleDoc.getRelationById(relationId); - assertNotNull(pict); - assertEquals("jpeg", pict.suggestFileExtension()); - assertArrayEquals(pictureData, pict.getData()); - } - } - - @Test - void testPictureInHeader() throws IOException { - try (XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx")) { - verifyOneHeaderPicture(sampleDoc); - - XWPFDocument readBack = XWPFTestDataSamples.writeOutAndReadBack(sampleDoc); - verifyOneHeaderPicture(readBack); - } - } - - @Test - void testCreateHeaderPicture() throws Exception { - try (XWPFDocument doc = new XWPFDocument()) { - - // Starts with no header - XWPFHeaderFooterPolicy policy = doc.getHeaderFooterPolicy(); - assertNull(policy); - - // Add a default header - policy = doc.createHeaderFooterPolicy(); - XWPFHeader header = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT); - header.createParagraph().createRun().setText("Hello, Header World!"); - header.createParagraph().createRun().setText("Paragraph 2"); - assertEquals(0, header.getAllPictures().size()); - assertEquals(2, header.getParagraphs().size()); - - // Add a picture to the first paragraph - header.getParagraphs().get(0).getRuns().get(0).addPicture( - new ByteArrayInputStream(new byte[]{1, 2, 3, 4}), - Document.PICTURE_TYPE_JPEG, "test.jpg", 2, 2); - - // Check - verifyOneHeaderPicture(doc); - - // Save, re-load, re-check - XWPFDocument readBack = XWPFTestDataSamples.writeOutAndReadBack(doc); - verifyOneHeaderPicture(readBack); - } - } - - private void verifyOneHeaderPicture(XWPFDocument sampleDoc) { - XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy(); - - XWPFHeader header = policy.getDefaultHeader(); - - List<XWPFPictureData> pictures = header.getAllPictures(); - assertEquals(1, pictures.size()); - } - - @Test - void testNew() throws InvalidFormatException, IOException { - try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("EmptyDocumentWithHeaderFooter.docx")) { - byte[] jpegData = XWPFTestDataSamples.getImage("nature1.jpg"); - assertNotNull(jpegData); - byte[] gifData = XWPFTestDataSamples.getImage("nature1.gif"); - assertNotNull(gifData); - byte[] pngData = XWPFTestDataSamples.getImage("nature1.png"); - assertNotNull(pngData); - - List<XWPFPictureData> pictures = doc.getAllPictures(); - assertEquals(0, pictures.size()); - - // Document shouldn't have any image relationships - assertEquals(13, doc.getPackagePart().getRelationships().size()); - for (PackageRelationship rel : doc.getPackagePart().getRelationships()) { - assertNotEquals(XSSFRelation.IMAGE_JPEG.getRelation(), rel.getRelationshipType(), "Shouldn't have JPEG yet"); - } - - // Add the image - String relationId = doc.addPictureData(jpegData, XWPFDocument.PICTURE_TYPE_JPEG); - assertEquals(1, pictures.size()); - XWPFPictureData jpgPicData = (XWPFPictureData) doc.getRelationById(relationId); - assertNotNull(jpgPicData); - assertEquals("jpeg", jpgPicData.suggestFileExtension()); - assertArrayEquals(jpegData, jpgPicData.getData()); - - // Ensure it now has one - assertEquals(14, doc.getPackagePart().getRelationships().size()); - PackageRelationship jpegRel = null; - for (PackageRelationship rel : doc.getPackagePart().getRelationships()) { - if (rel.getRelationshipType().equals(XWPFRelation.IMAGE_JPEG.getRelation())) { - assertNull(jpegRel, "Found 2 jpegs!"); - jpegRel = rel; - } - } - assertNotNull(jpegRel, "JPEG Relationship not found"); - - // Check the details - assertNotNull(jpegRel); - assertEquals(XWPFRelation.IMAGE_JPEG.getRelation(), jpegRel.getRelationshipType()); - assertEquals("/word/document.xml", jpegRel.getSource().getPartName().toString()); - assertEquals("/word/media/image1.jpeg", jpegRel.getTargetURI().getPath()); - - XWPFPictureData pictureDataByID = doc.getPictureDataByID(jpegRel.getId()); - assertArrayEquals(jpegData, pictureDataByID.getData()); - - // Save an re-load, check it appears - try (XWPFDocument docBack = XWPFTestDataSamples.writeOutAndReadBack(doc)) { - assertEquals(1, docBack.getAllPictures().size()); - assertEquals(1, docBack.getAllPackagePictures().size()); - - // verify the picture that we read back in - pictureDataByID = docBack.getPictureDataByID(jpegRel.getId()); - assertArrayEquals(jpegData, pictureDataByID.getData()); - } - } - } - - @Test - void testBug51770() throws IOException { - try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("Bug51170.docx")) { - XWPFHeaderFooterPolicy policy = doc.getHeaderFooterPolicy(); - XWPFHeader header = policy.getDefaultHeader(); - - header.getParagraphs().stream() - .map(XWPFParagraph::getRuns) - .flatMap(List::stream) - .map(XWPFRun::getEmbeddedPictures) - .flatMap(List::stream) - .map(XWPFPicture::getPictureData) - .forEach(Assertions::assertNull); - } - } -} |