summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2021-11-19 17:51:49 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2021-11-20 12:13:13 +0100
commit653c5d2ca1cc777d3556348b65ded0eaae95a414 (patch)
tree7cb6cc0e60b2cb301ab18bea5cc6005f9beb307e
parent9f3271297e7ce980fdb09a063ce51435314066f6 (diff)
tdf#121546: sw_uiwriter3: Add unittest
Change-Id: I10d1d9a06c04e810b90da9184d5a52f278015fee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125566 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sw/qa/extras/uiwriter/data/tdf121546.odtbin0 -> 10044 bytes
-rw-r--r--sw/qa/extras/uiwriter/uiwriter3.cxx47
2 files changed, 47 insertions, 0 deletions
diff --git a/sw/qa/extras/uiwriter/data/tdf121546.odt b/sw/qa/extras/uiwriter/data/tdf121546.odt
new file mode 100644
index 000000000000..6b8b78f69ee3
--- /dev/null
+++ b/sw/qa/extras/uiwriter/data/tdf121546.odt
Binary files differ
diff --git a/sw/qa/extras/uiwriter/uiwriter3.cxx b/sw/qa/extras/uiwriter/uiwriter3.cxx
index c86fb182c07e..72d3bfeb45c4 100644
--- a/sw/qa/extras/uiwriter/uiwriter3.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter3.cxx
@@ -2137,6 +2137,53 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, TestTextBoxCrashAfterLineDel)
xCursor->setString(OUString());
}
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf121546)
+{
+ createSwDoc(DATA_DIRECTORY, "tdf121546.odt");
+
+ CPPUNIT_ASSERT_EQUAL(OUString("xxxxxxxxxxxxxxxxxxxx"), getParagraph(2)->getString());
+
+ dispatchCommand(mxComponent, ".uno:SelectAll", {});
+ Scheduler::ProcessEventsToIdle();
+
+ dispatchCommand(mxComponent, ".uno:Cut", {});
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(1, getParagraphs());
+
+ // Create a new document
+ createSwDoc();
+
+ dispatchCommand(mxComponent, ".uno:Paste", {});
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(OUString("xxxxxxxxxxxxxxxxxxxx"), getParagraph(2)->getString());
+
+ dispatchCommand(mxComponent, ".uno:SelectAll", {});
+ Scheduler::ProcessEventsToIdle();
+
+ dispatchCommand(mxComponent, ".uno:Cut", {});
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(1, getParagraphs());
+
+ dispatchCommand(mxComponent, ".uno:Undo", {});
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(OUString("xxxxxxxxxxxxxxxxxxxx"), getParagraph(2)->getString());
+
+ dispatchCommand(mxComponent, ".uno:Undo", {});
+ Scheduler::ProcessEventsToIdle();
+
+ SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get());
+
+ // Without the fix in place, this test would have crashed here
+ pTextDoc->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RETURN);
+ Scheduler::ProcessEventsToIdle();
+
+ CPPUNIT_ASSERT_EQUAL(2, getParagraphs());
+}
+
CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf134626)
{
SwDoc* pDoc = createSwDoc(DATA_DIRECTORY, "tdf134626.odt");