From 534d24dc745bca74822e7b86dabbbbb24b48b060 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sat, 11 Jan 2025 09:23:50 +0000 Subject: [PATCH] Add test for bug 58805 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1923055 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hwpf/usermodel/TestBugs.java | 19 ++++++++++++++++++ test-data/document/header_footer_replace.doc | Bin 0 -> 28160 bytes 2 files changed, 19 insertions(+) create mode 100644 test-data/document/header_footer_replace.doc diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hwpf/usermodel/TestBugs.java b/poi-scratchpad/src/test/java/org/apache/poi/hwpf/usermodel/TestBugs.java index bd4e0fb653..133dc655dc 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hwpf/usermodel/TestBugs.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hwpf/usermodel/TestBugs.java @@ -27,6 +27,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; @@ -784,4 +786,21 @@ class TestBugs { assertNotNull(pictures); } } + + // + @Test + void test58805() throws IOException { + try (HWPFDocument doc = openSampleFile("header_footer_replace.doc")) { + + Range oRange = doc.getHeaderStoryRange(); + for (int i = 0; i < oRange.numCharacterRuns(); i++) { + CharacterRun run = oRange.getCharacterRun(i); + run.replaceText("_TEST_", "This text is longer than the initial text. It goes on and on without interruption."); + } + + try (FileOutputStream fos = new FileOutputStream(new File("/tmp/test.doc"))) { + doc.write(fos); + } + } + } } diff --git a/test-data/document/header_footer_replace.doc b/test-data/document/header_footer_replace.doc new file mode 100644 index 0000000000000000000000000000000000000000..029ccb56f29eba5236d63234edeb6370a5baf9cd GIT binary patch literal 28160 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 literal 0 HcmV?d00001