summaryrefslogtreecommitdiffstats
path: root/sw/qa/extras/unowriter/unowriter.cxx
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 11:48:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 11:48:25 +0000
commit9c0049cfae49c8e4ddef9125a69db2ad134c10c6 (patch)
tree812a86c0eee63dfc5ace12f2622ed3ce9cd3d680 /sw/qa/extras/unowriter/unowriter.cxx
parentReleasing progress-linux version 4:24.2.3-2~progress7.99u1. (diff)
downloadlibreoffice-9c0049cfae49c8e4ddef9125a69db2ad134c10c6.tar.xz
libreoffice-9c0049cfae49c8e4ddef9125a69db2ad134c10c6.zip
Merging upstream version 4:24.2.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sw/qa/extras/unowriter/unowriter.cxx')
-rw-r--r--sw/qa/extras/unowriter/unowriter.cxx27
1 files changed, 27 insertions, 0 deletions
diff --git a/sw/qa/extras/unowriter/unowriter.cxx b/sw/qa/extras/unowriter/unowriter.cxx
index 80b9e556f7..7175e702d7 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -1222,6 +1222,33 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
CPPUNIT_ASSERT_EQUAL(u"12test"_ustr, xText->getString());
}
+CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf161035)
+{
+ // Given a paragraph with a bookmark:
+ createSwDoc("tdf161035.fodt");
+ auto xModel = mxComponent.queryThrow<frame::XModel>();
+
+ // Create a text view cursor in the paragraph.
+ auto xController = xModel->getCurrentController().queryThrow<text::XTextViewCursorSupplier>();
+ auto xViewCursor = xController->getViewCursor();
+ CPPUNIT_ASSERT(xViewCursor);
+ auto xText = xViewCursor->getText();
+ CPPUNIT_ASSERT(xText);
+ // Create a text cursor from the text view cursor, and move it to the end of the paragraph
+ auto xTextCursor = xText->createTextCursorByRange(xViewCursor);
+ CPPUNIT_ASSERT(xTextCursor);
+ xTextCursor->gotoEnd(false);
+ // Get the first paragraph portion from the text cursor
+ auto xParaEnum = xTextCursor.queryThrow<container::XEnumerationAccess>()->createEnumeration();
+ CPPUNIT_ASSERT(xParaEnum);
+ auto xPara = xParaEnum->nextElement().queryThrow<container::XEnumerationAccess>();
+ // Try to enumerate text portions. Without the fix, it would fail an assertion in debug builds,
+ // and hang in release builds, because the paragraph portion started after the bookmark, and
+ // so the bookmark wasn't processed (expectedly):
+ auto xRunEnum = xPara->createEnumeration();
+ CPPUNIT_ASSERT(!xRunEnum->hasMoreElements()); // Empty enumeration for empty selection
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */