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]