#45088 - POI-HSLF changeTextInRichTextRun corrupts presentation

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1711845 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
asf-sync-process 2015-11-01 19:37:28 +00:00
parent 5338f9dce1
commit 0ae2928035
2 changed files with 30 additions and 0 deletions

View File

@ -689,4 +689,34 @@ public final class TestBugs {
ppt2.close(); ppt2.close();
} }
@Test
public void bug45088() throws IOException {
String template = "[SYSDATE]";
String textExp = "REPLACED_DATE_WITH_A_LONG_ONE";
HSLFSlideShow ppt1 = (HSLFSlideShow)SlideShowFactory.create(_slTests.getFile("bug45088.ppt"));
for (HSLFSlide slide : ppt1.getSlides()) {
for (List<HSLFTextParagraph> paraList : slide.getTextParagraphs()) {
for (HSLFTextParagraph para : paraList) {
for (HSLFTextRun run : para.getTextRuns()) {
String text = run.getRawText();
if (text != null && text.contains(template)) {
String replacedText = text.replace(template, textExp);
run.setText(replacedText);
para.setDirty();
}
}
}
}
}
HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1);
ppt1.close();
HSLFTextBox tb = (HSLFTextBox)ppt2.getSlides().get(0).getShapes().get(1);
String textAct = tb.getTextParagraphs().get(0).getTextRuns().get(0).getRawText().trim();
assertEquals(textExp, textAct);
ppt2.close();
}
} }

Binary file not shown.