summaryrefslogtreecommitdiffstats
path: root/sw/qa/extras/unowriter
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 05:03:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 05:03:13 +0000
commit26f6ae4122fcce6bafa71c064f5e645c39022082 (patch)
treeb0e0916f682785b3a983b71950c4623988ca6eef /sw/qa/extras/unowriter
parentAdding upstream version 4:24.2.2. (diff)
downloadlibreoffice-upstream/4%24.2.3.tar.xz
libreoffice-upstream/4%24.2.3.zip
Adding upstream version 4:24.2.3.upstream/4%24.2.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sw/qa/extras/unowriter')
-rw-r--r--sw/qa/extras/unowriter/unowriter.cxx21
1 files changed, 21 insertions, 0 deletions
diff --git a/sw/qa/extras/unowriter/unowriter.cxx b/sw/qa/extras/unowriter/unowriter.cxx
index 8bcadbaf42..80b9e556f7 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -1201,6 +1201,27 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf129841)
CPPUNIT_ASSERT_EQUAL(aRefColor, aColor);
}
+CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
+{
+ createSwDoc();
+ auto xTextDocument(mxComponent.queryThrow<css::text::XTextDocument>());
+ auto xText(xTextDocument->getText());
+ xText->setString(u"123"_ustr);
+ CPPUNIT_ASSERT_EQUAL(u"123"_ustr, xText->getString());
+ auto xCursor = xText->createTextCursorByRange(xText->getEnd());
+ xCursor->goLeft(1, true);
+ CPPUNIT_ASSERT_EQUAL(u"3"_ustr, xCursor->getString());
+ // Insert an SMP character U+1f702 (so it's two UTF-16 code units, 0xd83d 0xdf02):
+ xCursor->setString(u"🜂"_ustr);
+ // Without the fix, the replacement would expand the cursor one too many characters to the left,
+ // and the cursor text would become "2🜂", failing the next test:
+ CPPUNIT_ASSERT_EQUAL(u"🜂"_ustr, xCursor->getString());
+ xCursor->setString(u"test"_ustr);
+ CPPUNIT_ASSERT_EQUAL(u"test"_ustr, xCursor->getString());
+ // This test would fail, too; the text would be "1test":
+ CPPUNIT_ASSERT_EQUAL(u"12test"_ustr, xText->getString());
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */