Author: fanningpj
Date: Mon Aug 15 13:08:03 2022
New Revision: 1903437

URL: http://svn.apache.org/viewvc?rev=1903437&view=rev
Log:
[bug-66040] add apparently working test cases

Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFShape.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFShape.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFShape.java?rev=1903437&r1=1903436&r2=1903437&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFShape.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFShape.java
 Mon Aug 15 13:08:03 2022
@@ -161,6 +161,102 @@ class TestXSLFShape {
                 for (XSLFShape shape : updatedSlide.getShapes()) {
                     if (shape instanceof XSLFTextShape) {
                         XSLFTextShape textShape = (XSLFTextShape) shape;
+                        List<XSLFTextParagraph> textBoxParagraphs = 
textShape.getTextParagraphs();
+                        List<XSLFTextRun> textBoxParagraphTextRuns = 
textBoxParagraphs.stream()
+                                .map(XSLFTextParagraph::getTextRuns)
+                                .flatMap(List::stream)
+                                .collect(Collectors.toList());
+                        int pos = 0;
+                        for (XSLFTextRun r : textBoxParagraphTextRuns) {
+                            assertEquals("Replaced" + pos++, r.getRawText());
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    @Test
+    void testCloneSlideAndReplaceText() throws IOException {
+        try (
+                XMLSlideShow ppt = 
XSLFTestDataSamples.openSampleDocument("shapes.pptx");
+                UnsynchronizedByteArrayOutputStream bos = new 
UnsynchronizedByteArrayOutputStream()
+        ) {
+            assertEquals(6, ppt.getSlides().size());
+            XSLFSlide slide0 = ppt.getSlides().get(0);
+            XSLFSlide newSlide = ppt.createSlide(slide0.getSlideLayout());
+            newSlide = newSlide.importContent(slide0);
+            for (XSLFShape shape : newSlide.getShapes()) {
+                if (shape instanceof XSLFTextShape) {
+                    XSLFTextShape textShape = (XSLFTextShape) shape;
+                    List<XDDFTextParagraph> textBoxParagraphs = 
textShape.getTextBody().getParagraphs();
+                    List<XDDFTextRun> textBoxParagraphTextRuns = 
textBoxParagraphs.stream()
+                            .map(XDDFTextParagraph::getTextRuns)
+                            .flatMap(List::stream)
+                            .collect(Collectors.toList());
+                    int pos = 0;
+                    for (XDDFTextRun r : textBoxParagraphTextRuns) {
+                        r.setText("Replaced" + pos++);
+                    }
+                }
+            }
+            ppt.write(bos);
+
+            try (XMLSlideShow ppt2 = new XMLSlideShow(bos.toInputStream())) {
+                assertEquals(7, ppt2.getSlides().size());
+                XSLFSlide updatedSlide = ppt2.getSlides().get(6);
+                assertEquals(newSlide.getSlideName(), 
updatedSlide.getSlideName());
+                for (XSLFShape shape : updatedSlide.getShapes()) {
+                    if (shape instanceof XSLFTextShape) {
+                        XSLFTextShape textShape = (XSLFTextShape) shape;
+                        List<XSLFTextParagraph> textBoxParagraphs = 
textShape.getTextParagraphs();
+                        List<XSLFTextRun> textBoxParagraphTextRuns = 
textBoxParagraphs.stream()
+                                .map(XSLFTextParagraph::getTextRuns)
+                                .flatMap(List::stream)
+                                .collect(Collectors.toList());
+                        int pos = 0;
+                        for (XSLFTextRun r : textBoxParagraphTextRuns) {
+                            assertEquals("Replaced" + pos++, r.getRawText());
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    @Test
+    void testCloneSlideAndReplaceTextXDDF() throws IOException {
+        try (
+                XMLSlideShow ppt = 
XSLFTestDataSamples.openSampleDocument("shapes.pptx");
+                UnsynchronizedByteArrayOutputStream bos = new 
UnsynchronizedByteArrayOutputStream()
+        ) {
+            assertEquals(6, ppt.getSlides().size());
+            XSLFSlide slide0 = ppt.getSlides().get(0);
+            XSLFSlide newSlide = ppt.createSlide(slide0.getSlideLayout());
+            newSlide = newSlide.importContent(slide0);
+            for (XSLFShape shape : newSlide.getShapes()) {
+                if (shape instanceof XSLFTextShape) {
+                    XSLFTextShape textShape = (XSLFTextShape) shape;
+                    List<XDDFTextParagraph> textBoxParagraphs = 
textShape.getTextBody().getParagraphs();
+                    List<XDDFTextRun> textBoxParagraphTextRuns = 
textBoxParagraphs.stream()
+                            .map(XDDFTextParagraph::getTextRuns)
+                            .flatMap(List::stream)
+                            .collect(Collectors.toList());
+                    int pos = 0;
+                    for (XDDFTextRun r : textBoxParagraphTextRuns) {
+                        r.setText("Replaced" + pos++);
+                    }
+                }
+            }
+            ppt.write(bos);
+
+            try (XMLSlideShow ppt2 = new XMLSlideShow(bos.toInputStream())) {
+                assertEquals(7, ppt2.getSlides().size());
+                XSLFSlide updatedSlide = ppt2.getSlides().get(6);
+                assertEquals(newSlide.getSlideName(), 
updatedSlide.getSlideName());
+                for (XSLFShape shape : updatedSlide.getShapes()) {
+                    if (shape instanceof XSLFTextShape) {
+                        XSLFTextShape textShape = (XSLFTextShape) shape;
                         List<XDDFTextParagraph> textBoxParagraphs = 
textShape.getTextBody().getParagraphs();
                         List<XDDFTextRun> textBoxParagraphTextRuns = 
textBoxParagraphs.stream()
                                 .map(XDDFTextParagraph::getTextRuns)



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

Reply via email to