summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2023-03-15 14:38:46 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2023-03-15 19:44:03 +0000
commit797938b7bb897617a078fc7e57de27759a00ed07 (patch)
tree6b31e2bff2e5cf728faed7aeb5dde95cf24ca51b
parent48fac1585feaad3982c2bf4ec2f831d53def21b7 (diff)
SwModelTestBase: factor out common code
Change-Id: Iab415dadd3bc465d31bf14cbe2f384b9588466a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148929 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sw/qa/extras/tiledrendering/tiledrendering.cxx131
-rw-r--r--sw/qa/extras/uiwriter/uiwriter4.cxx6
-rw-r--r--sw/qa/extras/uiwriter/uiwriter6.cxx10
-rw-r--r--sw/qa/extras/uiwriter/uiwriter7.cxx17
-rw-r--r--sw/qa/extras/uiwriter/uiwriter8.cxx13
-rw-r--r--sw/qa/inc/swmodeltestbase.hxx2
-rw-r--r--sw/qa/unit/swmodeltestbase.cxx12
7 files changed, 52 insertions, 139 deletions
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 31eb9b267fba..fd5c469c4f3b 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -322,9 +322,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testPostKeyEvent)
// Did we manage to go after the first character?
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), pShellCursor->GetPoint()->GetContentIndex());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
// Did we manage to insert the character after the first one?
CPPUNIT_ASSERT_EQUAL(OUString("Axaa bbb."), pShellCursor->GetPoint()->GetNode().GetTextNode()->GetText());
}
@@ -1028,9 +1026,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testShapeViewCursors)
SdrObject* pObject = pPage->GetObj(0);
SdrView* pView = pWrtShell2->GetDrawView();
pWrtShell2->GetView().BeginTextEdit(pObject, pView->GetSdrPageView(), pWrtShell2->GetWin());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
// Press a key in the second view, while the first one observes this.
aView1.m_bViewCursorInvalidated = false;
aView2.m_bOwnCursorInvalidated = false;
@@ -1039,9 +1035,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testShapeViewCursors)
const tools::Rectangle aLastOwnCursor2 = aView2.m_aOwnCursor;
const tools::Rectangle aLastViewCursor2 = aView2.m_aViewCursor;
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'y', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'y', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"y");
// Make sure that aView1 gets a view-only cursor notification, while
// aView2 gets a real cursor notification.
CPPUNIT_ASSERT_EQUAL(aView1.m_aOwnCursor, aLastOwnCursor1);
@@ -1146,15 +1140,11 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testTextEditViewInvalidations)
SdrObject* pObject = pPage->GetObj(0);
SdrView* pView = pWrtShell->GetDrawView();
pWrtShell->GetView().BeginTextEdit(pObject, pView->GetSdrPageView(), pWrtShell->GetWin());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
// Assert that both views are invalidated when pressing a key while in text edit.
aView1.m_bTilesInvalidated = false;
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'y', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'y', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"y");
CPPUNIT_ASSERT(aView1.m_bTilesInvalidated);
@@ -1175,9 +1165,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoInvalidations)
// Insert a character the end of the document.
SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
pWrtShell->EndOfSection();
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"c");
// ProcessEventsToIdle resets the view; set it again
SfxLokHelper::setView(nView1);
SwShellCursor* pShellCursor = pWrtShell->getShellCursor(false);
@@ -1206,9 +1194,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoLimiting)
// Insert a character the end of the document in the second view.
SwWrtShell* pWrtShell2 = pXTextDocument->GetDocShell()->GetWrtShell();
pWrtShell2->EndOfSection();
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"c");
SwShellCursor* pShellCursor = pWrtShell2->getShellCursor(false);
CPPUNIT_ASSERT_EQUAL(OUString("Aaa bbb.c"), pShellCursor->GetPoint()->GetNode().GetTextNode()->GetText());
@@ -1236,16 +1222,12 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoReordering)
pWrtShell1->SttEndDoc(/*bStt=*/true);
SwTextNode* pTextNode1 = pWrtShell1->GetCursor()->GetPointNode().GetTextNode();
// View 1 types into the first paragraph.
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'a', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a");
SfxLokHelper::setView(nView2);
pWrtShell2->SttEndDoc(/*bStt=*/false);
SwTextNode* pTextNode2 = pWrtShell2->GetCursor()->GetPointNode().GetTextNode();
// View 2 types into the second paragraph.
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'z', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'z', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"z");
CPPUNIT_ASSERT_EQUAL(OUString("a"), pTextNode1->GetText());
CPPUNIT_ASSERT_EQUAL(OUString("z"), pTextNode2->GetText());
@@ -1280,21 +1262,15 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoReorderingRedo)
pWrtShell1->SttEndDoc(/*bStt=*/true);
SwTextNode* pTextNode1 = pWrtShell1->GetCursor()->GetPointNode().GetTextNode();
// View 1 types into the first paragraph, twice.
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'f', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'f', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"f");
// Go to the start of the paragraph, to avoid grouping.
pWrtShell1->SttEndDoc(/*bStt=*/true);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 's', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 's', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"s");
SfxLokHelper::setView(nView2);
pWrtShell2->SttEndDoc(/*bStt=*/false);
SwTextNode* pTextNode2 = pWrtShell2->GetCursor()->GetPointNode().GetTextNode();
// View 2 types into the second paragraph.
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'z', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'z', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"z");
CPPUNIT_ASSERT_EQUAL(OUString("sf"), pTextNode1->GetText());
CPPUNIT_ASSERT_EQUAL(OUString("z"), pTextNode2->GetText());
@@ -1332,21 +1308,15 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoReorderingMulti)
pWrtShell1->SttEndDoc(/*bStt=*/true);
SwTextNode* pTextNode1 = pWrtShell1->GetCursor()->GetPointNode().GetTextNode();
// View 1 types into the first paragraph.
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'a', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a");
SfxLokHelper::setView(nView2);
pWrtShell2->SttEndDoc(/*bStt=*/false);
SwTextNode* pTextNode2 = pWrtShell2->GetCursor()->GetPointNode().GetTextNode();
// View 2 types into the second paragraph, twice.
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
// Go to the start of the paragraph, to avoid grouping.
pWrtShell2->SttPara();
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'y', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'y', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"y");
CPPUNIT_ASSERT_EQUAL(OUString("a"), pTextNode1->GetText());
CPPUNIT_ASSERT_EQUAL(OUString("yx"), pTextNode2->GetText());
@@ -1382,9 +1352,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoShapeLimiting)
SdrObject* pObject = pPage->GetObj(0);
SdrView* pView = pWrtShell2->GetDrawView();
pWrtShell2->GetView().BeginTextEdit(pObject, pView->GetSdrPageView(), pWrtShell2->GetWin());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
pWrtShell2->EndTextEdit();
// Assert that the first view can't and the second view can undo the insertion.
@@ -1415,9 +1383,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoDispatch)
// Insert a character in the first view.
SfxLokHelper::setView(nView1);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"c");
// Click before the first word in the second view.
SfxLokHelper::setView(nView2);
@@ -1454,9 +1420,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoRepairDispatch)
// Insert a character in the first view.
SfxLokHelper::setView(nView1);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"c");
// Assert that by default the second view can't undo the action.
SfxLokHelper::setView(nView2);
@@ -1497,9 +1461,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testShapeTextUndoShells)
SdrObject* pObject = pPage->GetObj(0);
SdrView* pView = pWrtShell->GetDrawView();
pWrtShell->GetView().BeginTextEdit(pObject, pView->GetSdrPageView(), pWrtShell->GetWin());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
pWrtShell->EndTextEdit();
// Make sure that the undo item remembers who created it.
@@ -1525,8 +1487,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testShapeTextUndoGroupShells)
SdrObject* pObject = pPage->GetObj(0);
SdrView* pView = pWrtShell->GetDrawView();
pWrtShell->GetView().BeginTextEdit(pObject, pView->GetSdrPageView(), pWrtShell->GetWin());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
+ emulateTyping(*pXTextDocument, u"x");
pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::BACKSPACE);
pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::BACKSPACE);
Scheduler::ProcessEventsToIdle();
@@ -1547,9 +1508,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testShapeTextUndoGroupShells)
// Create an editeng text selection in the first view.
EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
// 0th para, 0th char -> 0th para, 1st char.
ESelection aWordSelection(0, 0, 0, 1);
rEditView.SetSelection(aWordSelection);
@@ -1808,18 +1767,14 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testCommentEndTextEdit)
// Create a document, type a character and remember the cursor position.
SwXTextDocument* pXTextDocument = createDoc();
ViewCallback aView1;
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
tools::Rectangle aBodyCursor = aView1.m_aOwnCursor;
// Create a comment and type a character there as well.
const int nCtrlAltC = KEY_MOD1 + KEY_MOD2 + 512 + 'c' - 'a';
pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', nCtrlAltC);
pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', nCtrlAltC);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
// End comment text edit by clicking in the body text area, and assert that
// no unexpected cursor callbacks are emitted at origin (top left corner of
// the document).
@@ -1921,15 +1876,11 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoRepairResult)
// Insert a character in the second view.
SfxLokHelper::setView(nView2);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'b', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'b', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"b");
// Insert a character in the first view.
SfxLokHelper::setView(nView1);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'a', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a");
// Assert that by default the second view can't undo the action.
SfxLokHelper::setView(nView2);
@@ -1955,15 +1906,11 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testRedoRepairResult)
// Insert a character in the second view.
SfxLokHelper::setView(nView2);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'b', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'b', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"b");
// Insert a character in the first view.
SfxLokHelper::setView(nView1);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'a', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a");
comphelper::dispatchCommand(".uno:Undo", {}, pResult2);
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(0), pResult2->m_nDocRepair);
@@ -2026,16 +1973,12 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testDisableUndoRepair)
// Insert a character in the first view.
SfxLokHelper::setView(nView1);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'k', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'k', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"k");
checkUndoRepairStates(pXTextDocument, pView1, pView2);
// Insert a character in the second view.
SfxLokHelper::setView(nView2);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'u', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'u', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"u");
{
SfxItemSet aItemSet1(pXTextDocument->GetDocShell()->GetDoc()->GetAttrPool(), svl::Items<SID_UNDO, SID_UNDO>);
SfxItemSet aItemSet2(pXTextDocument->GetDocShell()->GetDoc()->GetAttrPool(), svl::Items<SID_UNDO, SID_UNDO>);
@@ -2054,9 +1997,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testDisableUndoRepair)
// Insert a character in the first view.
SfxLokHelper::setView(nView1);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'l', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'l', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"l");
checkUndoRepairStates(pXTextDocument, pView1, pView2);
}
@@ -2160,9 +2101,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testDocumentRepair)
// Insert a character in the second view.
SfxLokHelper::setView(nView2);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'u', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'u', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"u");
{
std::unique_ptr<SfxBoolItem> pItem1;
std::unique_ptr<SfxBoolItem> pItem2;
@@ -2662,9 +2601,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testVisCursorInvalidation)
aView2.m_bOwnCursorInvalidated = false;
aView2.m_bViewCursorInvalidated = false;
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
CPPUNIT_ASSERT(aView1.m_bViewCursorInvalidated);
CPPUNIT_ASSERT(aView1.m_bOwnCursorInvalidated);
@@ -2688,9 +2625,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testVisCursorInvalidation)
aView2.m_bOwnCursorInvalidated = false;
aView2.m_bViewCursorInvalidated = false;
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"x");
CPPUNIT_ASSERT(aView1.m_bViewCursorInvalidated);
CPPUNIT_ASSERT(aView1.m_bOwnCursorInvalidated);
diff --git a/sw/qa/extras/uiwriter/uiwriter4.cxx b/sw/qa/extras/uiwriter/uiwriter4.cxx
index d8e24dfc6f9d..327d493c8c35 100644
--- a/sw/qa/extras/uiwriter/uiwriter4.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter4.cxx
@@ -1077,8 +1077,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest4, testTdf84695)
SwXTextDocument* pXTextDocument = dynamic_cast<SwXTextDocument*>(mxComponent.get());
CPPUNIT_ASSERT(pXTextDocument);
pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RETURN);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a");
uno::Reference<text::XTextRange> xShape(getShape(1), uno::UNO_QUERY);
// This was empty, Enter did not start the fly frame edit mode.
@@ -1102,8 +1101,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest4, testTdf84695NormalChar)
// Now pressing 'a' should add a character.
SwXTextDocument* pXTextDocument = dynamic_cast<SwXTextDocument*>(mxComponent.get());
CPPUNIT_ASSERT(pXTextDocument);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a");
uno::Reference<text::XTextRange> xShape(getShape(1), uno::UNO_QUERY);
// This was empty, pressing a normal character did not start the fly frame edit mode.
diff --git a/sw/qa/extras/uiwriter/uiwriter6.cxx b/sw/qa/extras/uiwriter/uiwriter6.cxx
index 13979f0d7234..8a90c395a570 100644
--- a/sw/qa/extras/uiwriter/uiwriter6.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter6.cxx
@@ -86,16 +86,6 @@ sal_Int32 lcl_getAttributeIDFromHints(const SwpHints& hints)
return -1;
}
-void emulateTyping(SwXTextDocument& rTextDoc, const std::u16string_view& rStr)
-{
- for (const char16_t c : rStr)
- {
- rTextDoc.postKeyEvent(LOK_KEYEVENT_KEYINPUT, c, 0);
- rTextDoc.postKeyEvent(LOK_KEYEVENT_KEYUP, c, 0);
- Scheduler::ProcessEventsToIdle();
- }
-}
-
uno::Reference<XLinguServiceManager2> GetLngSvcMgr_Impl()
{
uno::Reference<XComponentContext> xContext(comphelper::getProcessComponentContext());
diff --git a/sw/qa/extras/uiwriter/uiwriter7.cxx b/sw/qa/extras/uiwriter/uiwriter7.cxx
index cd6f9f240be3..392a57ed8962 100644
--- a/sw/qa/extras/uiwriter/uiwriter7.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter7.cxx
@@ -2215,10 +2215,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest7, testTdf127635)
SwXTextDocument* pXTextDocument = dynamic_cast<SwXTextDocument*>(mxComponent.get());
CPPUNIT_ASSERT(pXTextDocument);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'a', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, ' ', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'b', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"a b");
SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
pWrtShell->Left(SwCursorSkipMode::Chars, /*bSelect=*/false, 2, /*bBasicCall=*/false);
@@ -2235,10 +2232,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest7, testTdf127635)
pDoc->getIDocumentRedlineAccess().IsRedlineOn());
CPPUNIT_ASSERT(pWrtShell->GetLayout()->IsHideRedlines());
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'c', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, ' ', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'd', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"c d");
SwEditShell* const pEditShell(pDoc->GetEditShell());
// accept all redlines
@@ -2414,12 +2408,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest7, testTdf89954)
pWrtShell->EndPara();
SwXTextDocument* pXTextDocument = dynamic_cast<SwXTextDocument*>(mxComponent.get());
CPPUNIT_ASSERT(pXTextDocument);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 't', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'e', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 's', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 't', 0);
- pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, '.', 0);
- Scheduler::ProcessEventsToIdle();
+ emulateTyping(*pXTextDocument, u"test.");
SwNodeIndex aNodeIndex(pDoc->GetNodes().GetEndOfContent(), -1);
// Placeholder character for the comment anchor was ^A (CH_TXTATR_BREAKWORD), not <fff9> (CH_TXTATR_INWORD).
diff --git a/sw/qa/extras/uiwriter/uiwriter8.cxx b/sw/qa/extras/uiwriter/uiwriter8.cxx
index 45d76fd76771..e6a362484cf4 100644
--- a/sw/qa/extras/uiwriter/uiwriter8.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter8.cxx
@@ -40,19 +40,6 @@
#include <officecfg/Office/Common.hxx>
/// 8th set of tests asserting the behavior of Writer user interface shells.
-namespace
-{
-void emulateTyping(SwXTextDocument& rTextDoc, const std::u16string_view& rStr)
-{
- for (const char16_t c : rStr)
- {
- rTextDoc.postKeyEvent(LOK_KEYEVENT_KEYINPUT, c, 0);
- rTextDoc.postKeyEvent(LOK_KEYEVENT_KEYUP, c, 0);
- Scheduler::ProcessEventsToIdle();
- }
-}
-} //namespace
-
class SwUiWriterTest8 : public SwModelTestBase
{
public:
diff --git a/sw/qa/inc/swmodeltestbase.hxx b/sw/qa/inc/swmodeltestbase.hxx
index ca235e722f83..bb9791e81315 100644
--- a/sw/qa/inc/swmodeltestbase.hxx
+++ b/sw/qa/inc/swmodeltestbase.hxx
@@ -348,6 +348,8 @@ protected:
bool isExported(){ return mbExported; }
+ void emulateTyping(SwXTextDocument& rTextDoc, const std::u16string_view& rStr);
+
private:
void loadURL(OUString const& rURL, const char* pName, const char* pPassword);
diff --git a/sw/qa/unit/swmodeltestbase.cxx b/sw/qa/unit/swmodeltestbase.cxx
index 2a47327287a3..29867b0d8103 100644
--- a/sw/qa/unit/swmodeltestbase.cxx
+++ b/sw/qa/unit/swmodeltestbase.cxx
@@ -22,9 +22,11 @@
#include <rtl/ustrbuf.hxx>
#include <unotools/streamwrap.hxx>
#include <unotools/ucbstreamhelper.hxx>
+#include <vcl/scheduler.hxx>
#include <IDocumentLayoutAccess.hxx>
#include <docsh.hxx>
+#include <LibreOfficeKit/LibreOfficeKitEnums.h>
#include <rootfrm.hxx>
#include <unotxdoc.hxx>
#include <view.hxx>
@@ -627,4 +629,14 @@ void SwModelTestBase::WrapFromTempFile(SvMemoryStream& rStream)
rStream.Seek(0);
}
+void SwModelTestBase::emulateTyping(SwXTextDocument& rTextDoc, const std::u16string_view& rStr)
+{
+ for (const char16_t c : rStr)
+ {
+ rTextDoc.postKeyEvent(LOK_KEYEVENT_KEYINPUT, c, 0);
+ rTextDoc.postKeyEvent(LOK_KEYEVENT_KEYUP, c, 0);
+ Scheduler::ProcessEventsToIdle();
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */