chart2/qa/extras/uichart.cxx | 6 desktop/qa/desktop_lib/test_desktop_lib.cxx | 2 sc/qa/unit/jumbosheets-test.cxx | 4 sc/qa/unit/tiledrendering/tiledrendering.cxx | 37 +++++ sc/qa/unit/uicalc/uicalc.cxx | 81 ++++++++++++ sd/qa/unit/tiledrendering/LOKitSearchTest.cxx | 2 sd/qa/unit/tiledrendering/tiledrendering.cxx | 33 +++++ sd/qa/unit/uiimpress.cxx | 45 ++++++ sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx | 2 sw/qa/extras/layout/layout.cxx | 2 sw/qa/extras/tiledrendering/tiledrendering.cxx | 4 sw/qa/extras/uiwriter/uiwriter.cxx | 2 sw/qa/extras/uiwriter/uiwriter2.cxx | 16 ++ sw/qa/extras/uiwriter/uiwriter3.cxx | 97 +++++++++++++++ sw/qa/extras/uiwriter/uiwriter4.cxx | 10 + sw/qa/extras/uiwriter/uiwriter5.cxx | 14 ++ sw/qa/extras/uiwriter/uiwriter6.cxx | 16 ++ sw/qa/extras/uiwriter/uiwriter7.cxx | 3 sw/qa/extras/uiwriter/uiwriter8.cxx | 79 ++++++++++++ unotest/Library_unotest.mk | 1 unotest/source/cpp/macros_test.cxx | 6 21 files changed, 456 insertions(+), 6 deletions(-)
New commits: commit 4df2a951b05197448e310cb003449658e52b45fb Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri Mar 24 12:43:12 2023 +0000 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Mar 24 15:09:41 2023 +0000 Revert "qa: call ProcessEventsToIdle inside dispatchCommand" This reverts commit 1029afe2fa49a3a326ca529a68e99e2a7239a395. number of failures in CppunitTest_sc_uicalc has increased since this patch was backported. reverting it to find out for sure whether this introduced it or not Change-Id: I670412d9445aee5ca2d65f647a82b993682d088f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149518 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/chart2/qa/extras/uichart.cxx b/chart2/qa/extras/uichart.cxx index 4b5db209a742..ec250f80bb27 100644 --- a/chart2/qa/extras/uichart.cxx +++ b/chart2/qa/extras/uichart.cxx @@ -47,13 +47,16 @@ void Chart2UiChartTest::testCopyPasteToNewSheet(uno::Reference<chart::XChartDocu comphelper::makePropertyValue("ToObject", aObjectName), }; dispatchCommand(mxComponent, ".uno:GoToObject", aPropertyValues); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // create a new document load("private:factory/scalc"); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); uno::Reference<chart2::XChartDocument> xChartDoc2 = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc2.is()); @@ -137,13 +140,16 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf151091) comphelper::makePropertyValue("ToObject", OUString("Object 1")), }; dispatchCommand(mxComponent, ".uno:GoToObject", aPropertyValues); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // create a new writer document load("private:factory/swriter"); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); aSeriesList = getWriterChartColumnDescriptions(mxComponent); diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index d7108977aae2..5af044e67523 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -606,6 +606,7 @@ void DesktopLOKTest::testSearchCalc() {"SearchItem.Command", uno::Any(static_cast<sal_uInt16>(SvxSearchCmd::FIND_ALL))}, })); dispatchCommand(mxComponent, ".uno:ExecuteSearch", aPropertyValues); + Scheduler::ProcessEventsToIdle(); std::vector<OString> aSelections; sal_Int32 nIndex = 0; @@ -636,6 +637,7 @@ void DesktopLOKTest::testSearchAllNotificationsCalc() {"SearchItem.Command", uno::Any(static_cast<sal_uInt16>(SvxSearchCmd::FIND_ALL))}, })); dispatchCommand(mxComponent, ".uno:ExecuteSearch", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // This was 1, make sure that we get no notifications about selection changes during search. CPPUNIT_ASSERT_EQUAL(0, m_nSelectionBeforeSearchResult); diff --git a/sc/qa/unit/jumbosheets-test.cxx b/sc/qa/unit/jumbosheets-test.cxx index 0dec10967751..05b2c2248650 100644 --- a/sc/qa/unit/jumbosheets-test.cxx +++ b/sc/qa/unit/jumbosheets-test.cxx @@ -272,10 +272,12 @@ void ScJumboSheetsTest::testTdf134553() pViewShell->SelectObject(u"Diagram 1"); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), pPage->GetObjCount()); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); pOleObj = pPage->GetObj(0); CPPUNIT_ASSERT(pOleObj); @@ -315,8 +317,10 @@ void ScJumboSheetsTest::testTdf147509() CPPUNIT_ASSERT_EQUAL(sal_Int32(0), ScDocShell::GetViewData()->GetCurY()); dispatchCommand(mxComponent, ".uno:SelectColumn", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:InsertColumnsAfter", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("A"), pDoc->GetString(ScAddress(0, 0, 0))); diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx index b7dd40111a90..fb8af68bdd7e 100644 --- a/sc/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx @@ -768,6 +768,7 @@ void ScTiledRenderingTest::testTextViewSelection() // Create a selection on two cells in the second view, that's a text selection in LOK terms. aView1.m_bTextViewSelectionInvalidated = false; dispatchCommand(mxComponent, ".uno:GoRightSel", {}); + Scheduler::ProcessEventsToIdle(); // Make sure the first view got its notification. CPPUNIT_ASSERT(aView1.m_bTextViewSelectionInvalidated); } @@ -784,6 +785,7 @@ void ScTiledRenderingTest::testDocumentSizeChanged() comphelper::makePropertyValue("ToPoint", OUString("$A$30")), }; dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // Assert that the size in the payload is not 0. CPPUNIT_ASSERT(m_aDocumentSize.getWidth() > 0); CPPUNIT_ASSERT(m_aDocumentSize.getHeight() > 0); @@ -856,6 +858,7 @@ void ScTiledRenderingTest::testMoveShapeHandle() {"NewPosY", uno::Any(y+1)} })); dispatchCommand(mxComponent, ".uno:MoveShapeHandle", aPropertyValues); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(!aView1.m_ShapeSelection.isEmpty()); lcl_extractHandleParameters(aView1.m_ShapeSelection, id, x ,y); CPPUNIT_ASSERT_EQUAL(x-1, oldX); @@ -1078,6 +1081,7 @@ void ScTiledRenderingTest::testAutoSum() uno::Sequence<beans::PropertyValue> aArgs; dispatchCommand(mxComponent, ".uno:AutoSum", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView.m_sCellFormula.startsWith("=SUM(")); } @@ -1097,6 +1101,7 @@ void ScTiledRenderingTest::testHideColRow() })); dispatchCommand(mxComponent, ".uno:SelectColumn", aArgs2); + Scheduler::ProcessEventsToIdle(); } SCCOL nOldCurX = ScDocShell::GetViewData()->GetCurX(); @@ -1104,6 +1109,7 @@ void ScTiledRenderingTest::testHideColRow() { uno::Sequence<beans::PropertyValue> aArgs; dispatchCommand(mxComponent, ".uno:HideColumn", aArgs); + Scheduler::ProcessEventsToIdle(); } SCCOL nNewCurX = ScDocShell::GetViewData()->GetCurX(); @@ -1122,6 +1128,7 @@ void ScTiledRenderingTest::testHideColRow() { "Modifier", uno::Any(sal_uInt16(0)) } })); dispatchCommand(mxComponent, ".uno:SelectRow", aArgs2); + Scheduler::ProcessEventsToIdle(); } nOldCurX = ScDocShell::GetViewData()->GetCurX(); @@ -1129,6 +1136,7 @@ void ScTiledRenderingTest::testHideColRow() { uno::Sequence<beans::PropertyValue> aArgs; dispatchCommand(mxComponent, ".uno:HideRow", aArgs); + Scheduler::ProcessEventsToIdle(); } nNewCurX = ScDocShell::GetViewData()->GetCurX(); nNewCurY = ScDocShell::GetViewData()->GetCurY(); @@ -1167,6 +1175,7 @@ void ScTiledRenderingTest::testInvalidateOnCopyPasteCells() // paste cells aView.m_bInvalidateTiles = false; dispatchCommand(mxComponent, ".uno:Paste", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView.m_bInvalidateTiles); } @@ -1191,6 +1200,7 @@ void ScTiledRenderingTest::testInvalidateOnInserRowCol() aView.m_bInvalidateTiles = false; aView.m_aInvalidations.clear(); dispatchCommand(mxComponent, ".uno:InsertRows", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView.m_bInvalidateTiles); CPPUNIT_ASSERT_EQUAL(size_t(2), aView.m_aInvalidations.size()); CPPUNIT_ASSERT_EQUAL(tools::Rectangle(-75, 51240, 32212230, 63990), aView.m_aInvalidations[0]); @@ -1207,6 +1217,7 @@ void ScTiledRenderingTest::testInvalidateOnInserRowCol() aView.m_bInvalidateTiles = false; aView.m_aInvalidations.clear(); dispatchCommand(mxComponent, ".uno:InsertColumns", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView.m_bInvalidateTiles); CPPUNIT_ASSERT_EQUAL(size_t(2), aView.m_aInvalidations.size()); CPPUNIT_ASSERT_EQUAL(tools::Rectangle(254925, -15, 32212230, 63990), aView.m_aInvalidations[0]); @@ -1236,6 +1247,7 @@ void ScTiledRenderingTest::testCommentCallback() {"Author", uno::Any(OUString("LOK User1"))}, })); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Add' action CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1266,6 +1278,7 @@ void ScTiledRenderingTest::testCommentCallback() {"Author", uno::Any(OUString("LOK User2"))}, }); dispatchCommand(mxComponent, ".uno:EditAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Modify' action CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1287,6 +1300,7 @@ void ScTiledRenderingTest::testCommentCallback() {"Id", uno::Any(OUString::createFromAscii(aCommentId.c_str()))} }); dispatchCommand(mxComponent, ".uno:DeleteNote", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Remove' action CPPUNIT_ASSERT_EQUAL(std::string("Remove"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1330,12 +1344,14 @@ void ScTiledRenderingTest::testUndoLimiting() // try to execute undo in view #2 SfxLokHelper::setView(nView2); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // check that undo has not been executed on view #2 CPPUNIT_ASSERT_EQUAL(std::size_t(1), pUndoManager->GetUndoActionCount()); // try to execute undo in view #1 SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // check that undo has been executed on view #1 CPPUNIT_ASSERT_EQUAL(std::size_t(0), pUndoManager->GetUndoActionCount()); @@ -1345,12 +1361,14 @@ void ScTiledRenderingTest::testUndoLimiting() // try to execute redo in view #2 SfxLokHelper::setView(nView2); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); // check that redo has not been executed on view #2 CPPUNIT_ASSERT_EQUAL(std::size_t(1), pUndoManager->GetRedoActionCount()); // try to execute redo in view #1 SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); // check that redo has been executed on view #1 CPPUNIT_ASSERT_EQUAL(std::size_t(0), pUndoManager->GetRedoActionCount()); } @@ -1388,6 +1406,7 @@ void ScTiledRenderingTest::testUndoRepairDispatch() // try to execute undo in view #2 SfxLokHelper::setView(nView2); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // check that undo has not been executed on view #2 CPPUNIT_ASSERT_EQUAL(std::size_t(1), pUndoManager->GetUndoActionCount()); @@ -1398,6 +1417,7 @@ void ScTiledRenderingTest::testUndoRepairDispatch() {"Repair", uno::Any(true)} })); dispatchCommand(mxComponent, ".uno:Undo", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // check that undo has been executed on view #2 in repair mode CPPUNIT_ASSERT_EQUAL(std::size_t(0), pUndoManager->GetUndoActionCount()); } @@ -1427,12 +1447,14 @@ void ScTiledRenderingTest::testInsertGraphicInvalidations() { "FileName", uno::Any(createFileURL(u"smile.png")) } })); dispatchCommand(mxComponent, ".uno:InsertGraphic", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView.m_bInvalidateTiles); // undo image insertion in view and see if both views are invalidated aView.m_bInvalidateTiles = false; uno::Sequence<beans::PropertyValue> aArgs2; dispatchCommand(mxComponent, ".uno:Undo", aArgs2); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView.m_bInvalidateTiles); } @@ -1930,6 +1952,7 @@ void ScTiledRenderingTest::testInsertDeletePageInvalidation() { "Index", uno::Any(sal_Int32(1)) } })); dispatchCommand(mxComponent, ".uno:Insert", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView1.m_bInvalidateTiles); CPPUNIT_ASSERT_EQUAL(size_t(6), aView1.m_aInvalidations.size()); CPPUNIT_ASSERT_EQUAL(tools::Rectangle(0, 0, 1000000000, 1000000000), aView1.m_aInvalidations[0]); @@ -1942,6 +1965,7 @@ void ScTiledRenderingTest::testInsertDeletePageInvalidation() { "Index", uno::Any(sal_Int32(1)) } })); dispatchCommand(mxComponent, ".uno:Remove", aArgs2); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView1.m_bInvalidateTiles); CPPUNIT_ASSERT_EQUAL(size_t(5), aView1.m_aInvalidations.size()); CPPUNIT_ASSERT_EQUAL(tools::Rectangle(0, 0, 1000000000, 1000000000), aView1.m_aInvalidations[0]); @@ -2755,6 +2779,7 @@ void ScTiledRenderingTest::testSheetViewDataCrash() { "Index", uno::Any(sal_Int32(2)) } })); dispatchCommand(mxComponent, ".uno:Insert", aArgs); + Scheduler::ProcessEventsToIdle(); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::PAGEDOWN | KEY_MOD1); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::PAGEDOWN | KEY_MOD1); Scheduler::ProcessEventsToIdle(); @@ -2789,6 +2814,7 @@ void ScTiledRenderingTest::testTextBoxInsert() { "CreateDirectly", uno::Any(true) } })); dispatchCommand(mxComponent, ".uno:DrawText", aArgs); + Scheduler::ProcessEventsToIdle(); // check if we have textbox selected CPPUNIT_ASSERT(!aView1.m_ShapeSelection.isEmpty()); @@ -2826,6 +2852,7 @@ void ScTiledRenderingTest::testCommentCellCopyPaste() {"Author", uno::Any(OUString("LOK Client"))}, })); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Add' action CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView.m_aCommentCallbackResult.get<std::string>("action")); @@ -2842,10 +2869,12 @@ void ScTiledRenderingTest::testCommentCellCopyPaste() // Single cell(with comment) copy paste test { dispatchCommand(mxComponent, ".uno:Copy", aCopyPasteArgs); + Scheduler::ProcessEventsToIdle(); pTabViewShell->SetCursor(1, 49); Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Paste", aCopyPasteArgs); // Paste to cell B50 + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Add' action CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView.m_aCommentCallbackResult.get<std::string>("action")); @@ -2872,10 +2901,12 @@ void ScTiledRenderingTest::testCommentCellCopyPaste() Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", aCopyPasteArgs); + Scheduler::ProcessEventsToIdle(); pTabViewShell->SetCursor(3, 49); Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Paste", aCopyPasteArgs); // Paste to cell D50 + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Add' action CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView.m_aCommentCallbackResult.get<std::string>("action")); @@ -2915,6 +2946,7 @@ void ScTiledRenderingTest::testInvalidEntrySave() uno::Sequence<beans::PropertyValue> aArgs; dispatchCommand(mxComponent, ".uno:Save", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("Should not be marked modified after save", !pDocSh->IsModified()); @@ -2978,12 +3010,14 @@ void ScTiledRenderingTest::testUndoReordering() // try to execute undo in view #1 SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // check that undo has been executed on view #1 CPPUNIT_ASSERT_EQUAL(std::size_t(1), pUndoManager->GetUndoActionCount()); // try to execute undo in view #2 SfxLokHelper::setView(nView2); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // check that undo has been executed on view #2 CPPUNIT_ASSERT_EQUAL(std::size_t(0), pUndoManager->GetUndoActionCount()); } @@ -3053,6 +3087,7 @@ void ScTiledRenderingTest::testUndoReorderingRedo() // View 1 presses undo, and the second cell is erased SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::size_t(2), pUndoManager->GetUndoActionCount()); CPPUNIT_ASSERT_EQUAL(OUString("xx"), pDoc->GetString(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 1, 0))); @@ -3072,6 +3107,7 @@ void ScTiledRenderingTest::testUndoReorderingRedo() // View 1 presses undo again, and the first cell is erased dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::size_t(1), pUndoManager->GetUndoActionCount()); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 1, 0))); @@ -3141,6 +3177,7 @@ void ScTiledRenderingTest::testUndoReorderingMulti() // View 1 presses undo SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::size_t(2), pUndoManager->GetUndoActionCount()); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString("CC"), pDoc->GetString(ScAddress(0, 2, 0))); diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx index 98d3398b09d8..25b4d0790383 100644 --- a/sc/qa/unit/uicalc/uicalc.cxx +++ b/sc/qa/unit/uicalc/uicalc.cxx @@ -298,10 +298,12 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf103994) goToCell("A1"); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); goToCell("B1"); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have failed with // - Expected: ='file:///tmp/lu124171irlmb.tmp'#$Sheet1.A1 @@ -386,9 +388,11 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107869) goToCell("A1"); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); goToCell("A2"); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", pDoc->HasNote(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_MESSAGE("There should be a note on A2", pDoc->HasNote(ScAddress(0, 1, 0))); @@ -396,8 +400,10 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107869) goToCell("A1"); dispatchCommand(mxComponent, ".uno:SelectRow", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:DeleteRows", {}); + Scheduler::ProcessEventsToIdle(); for (size_t i = 0; i < 10; ++i) { @@ -406,6 +412,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107869) CPPUNIT_ASSERT_MESSAGE("There should be no note on A2", !pDoc->HasNote(ScAddress(0, 1, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("A"), pDoc->GetString(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString("B"), pDoc->GetString(ScAddress(0, 1, 0))); @@ -413,15 +420,19 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107869) CPPUNIT_ASSERT_MESSAGE("There should be a note on A2", pDoc->HasNote(ScAddress(0, 1, 0))); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); } dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); goToCell("A1:A2"); dispatchCommand(mxComponent, ".uno:SelectRow", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:DeleteRows", {}); + Scheduler::ProcessEventsToIdle(); for (size_t i = 0; i < 10; ++i) { @@ -431,6 +442,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107869) CPPUNIT_ASSERT_MESSAGE("There should be no note on A2", !pDoc->HasNote(ScAddress(0, 1, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("A"), pDoc->GetString(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString("B"), pDoc->GetString(ScAddress(0, 1, 0))); @@ -438,6 +450,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107869) CPPUNIT_ASSERT_MESSAGE("There should be a note on A2", pDoc->HasNote(ScAddress(0, 1, 0))); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); } } @@ -484,6 +497,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf63805) CPPUNIT_ASSERT_EQUAL(OUString("2014-05-31"), pDoc->GetString(ScAddress(0, 19, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("2012-10-31"), pDoc->GetString(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 1, 0))); @@ -530,13 +544,16 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf94208) goToCell("A3:A8"); dispatchCommand(mxComponent, ".uno:SelectRow", {}); + Scheduler::ProcessEventsToIdle(); //type Control-D/Fill Down dispatchCommand(mxComponent, ".uno:FillDown", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0.0, pDoc->GetValue(ScAddress(0, 0, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have failed with // - Expected: 1 @@ -661,11 +678,13 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf119162) // Without the fix in place, this test would have hung here dispatchCommand(mxComponent, ".uno:ChangeCaseRotateCase", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"Test" + OUStringChar(u'\xA')), pDoc->GetString(ScAddress(0, 0, 0))); dispatchCommand(mxComponent, ".uno:ChangeCaseToLower", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"test" + OUStringChar(u'\xA')), pDoc->GetString(ScAddress(0, 0, 0))); @@ -689,6 +708,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf90579) goToCell("C1:C2"); dispatchCommand(mxComponent, ".uno:ConvertFormulaToValue", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("2310"), pDoc->GetString(ScAddress(2, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString("LibreOffice"), pDoc->GetString(ScAddress(2, 1, 0))); @@ -696,6 +716,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf90579) CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetFormula(2, 1, 0)); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("2310"), pDoc->GetString(ScAddress(2, 0, 0))); CPPUNIT_ASSERT_EQUAL(OUString("LibreOffice"), pDoc->GetString(ScAddress(2, 1, 0))); @@ -711,6 +732,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124820) goToCell("B2"); dispatchCommand(mxComponent, ".uno:Strikeout", {}); + Scheduler::ProcessEventsToIdle(); saveAndReload("Calc Office Open XML"); pDoc = getScDoc(); @@ -733,6 +755,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf119155) // Without the fix in place, this test would have hung here dispatchCommand(mxComponent, ".uno:ChangeCaseToTitleCase", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("Collagene Expert Targeted Wrinkle Corrector Unboxed 10 Ml"), pDoc->GetString(ScAddress(2, 1, 0))); @@ -755,6 +778,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf146795) goToCell("B2"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // Move to B3 ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); @@ -769,6 +793,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf146795) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("a"), pDoc->GetString(ScAddress(1, 1, 0))); CPPUNIT_ASSERT_EQUAL(OUString("a"), pDoc->GetString(ScAddress(1, 2, 0))); @@ -799,6 +824,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf147744) goToCell("A2"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // Move to A3 ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); @@ -811,6 +837,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf147744) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1.0, pDoc->GetValue(ScAddress(0, 1, 0))); CPPUNIT_ASSERT_EQUAL(0.0, pDoc->GetValue(ScAddress(0, 2, 0))); @@ -845,12 +872,14 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf138432) goToCell("A1"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); goToCell("A2"); typeString(u"="); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN); @@ -1003,6 +1032,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf145640) goToCell("A2:F17"); dispatchCommand(mxComponent, ".uno:SortDescending", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("=SUM(A15:B15:C15:D15:E15:F15)"), pDoc->GetFormula(6, 3, 0)); @@ -1012,6 +1042,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf145640) CPPUNIT_ASSERT_EQUAL(10.0, pDoc->GetValue(ScAddress(6, 3, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("=SUM(A4:B4:C4:D4:E4:F4)"), pDoc->GetFormula(6, 3, 0)); CPPUNIT_ASSERT_EQUAL(10.0, pDoc->GetValue(ScAddress(6, 3, 0))); @@ -1039,10 +1070,12 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf97215) // Without the fix in place, this test would have hung here dispatchCommand(mxComponent, ".uno:SortAscending", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("Inserted at bottom"), pDoc->GetString(ScAddress(0, 0, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("Inserted at bottom"), pDoc->GetString(ScAddress(0, 23, 0))); @@ -1306,15 +1339,18 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf117706) // Use Adding Selection dispatchCommand(mxComponent, ".uno:StatusSelectionModeExp", {}); + Scheduler::ProcessEventsToIdle(); goToCell("A1"); dispatchCommand(mxComponent, ".uno:SelectRow", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:GoDown", {}); dispatchCommand(mxComponent, ".uno:GoDown", {}); lcl_AssertCurrentCursorPosition(*pDocSh, u"A3"); dispatchCommand(mxComponent, ".uno:SelectRow", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", {}); @@ -1370,11 +1406,14 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf149503) ScDocument* pDoc = getScDoc(); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); ScDPCollection* pDPs = pDoc->GetDPCollection(); CPPUNIT_ASSERT_EQUAL(size_t(1), pDPs->GetCount()); @@ -1386,8 +1425,10 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf108292) ScDocument* pDoc = getScDoc(); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // Open a new document createScDoc(); @@ -1395,6 +1436,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf108292) // Without the fix in place, this test would have crashed dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("2D"), pDoc->GetString(ScAddress(26, 0, 0))); } @@ -1410,15 +1452,18 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testMultiRangeCol) // Use Adding Selection dispatchCommand(mxComponent, ".uno:StatusSelectionModeExp", {}); + Scheduler::ProcessEventsToIdle(); goToCell("A1"); dispatchCommand(mxComponent, ".uno:SelectColumn", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:GoRight", {}); dispatchCommand(mxComponent, ".uno:GoRight", {}); lcl_AssertCurrentCursorPosition(*pDocSh, u"C1"); dispatchCommand(mxComponent, ".uno:SelectColumn", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", {}); @@ -1724,12 +1769,14 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf108654) CPPUNIT_ASSERT_EQUAL(OUString("=VLOOKUP(C127,#REF!,D$1,0)"), aFormula); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(3, 126, 1); CPPUNIT_ASSERT_EQUAL(OUString(""), aFormula); CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), pDoc->GetTableCount()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(1), pDoc->GetTableCount()); } @@ -1791,16 +1838,19 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf133326) CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), pDoc->GetTableCount()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(0, 0, 1); CPPUNIT_ASSERT_EQUAL(OUString(""), aFormula); CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), pDoc->GetTableCount()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(1), pDoc->GetTableCount()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), pDoc->GetTableCount()); aFormula = pDoc->GetFormula(0, 0, 1); @@ -1808,6 +1858,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf133326) // Without the fix in place, it would have crashed here dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(0, 0, 1); CPPUNIT_ASSERT_EQUAL(OUString("=RAND()*1000000"), aFormula); @@ -1821,6 +1872,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf126685) ScDocument* pDoc = getScDoc(); dispatchCommand(mxComponent, ".uno:SelectAll", {}); // test should crash here without the fix + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL( OUString("Control Height will change from 0.65 to 0.61 cm with 120dpi ..."), @@ -1858,11 +1910,13 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf119793) Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5084), xShape->getPosition().X); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1381), xShape->getPosition().Y); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have failed with // - Expected: 4984 @@ -1953,12 +2007,15 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124818) CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pPage->GetObjCount()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), pPage->GetObjCount()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pPage->GetObjCount()); } @@ -2135,12 +2192,14 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124822) CPPUNIT_ASSERT_EQUAL(OUString("X"), pDoc->GetString(ScAddress(0, 0, 2))); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 0, 2))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("X"), pDoc->GetString(ScAddress(0, 0, 2))); } @@ -2172,6 +2231,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf118189) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(0, 77, 0); CPPUNIT_ASSERT_EQUAL(OUString("=FALSE()"), aFormula); @@ -2215,11 +2275,13 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf118207) CPPUNIT_ASSERT_EQUAL(OUString("=FALSE()"), aFormula); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(1, 77, 0); CPPUNIT_ASSERT_EQUAL(OUString("=FALSE()"), aFormula); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(1, 77, 0); CPPUNIT_ASSERT_EQUAL(OUString(""), aFormula); @@ -2227,6 +2289,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf118207) CPPUNIT_ASSERT_EQUAL(OUString(""), aFormula); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); aFormula = pDoc->GetFormula(0, 77, 0); CPPUNIT_ASSERT_EQUAL(OUString("=FALSE()"), aFormula); @@ -2255,6 +2318,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124778) uno::Sequence<beans::PropertyValue> aArgs = comphelper::InitPropertySequence({ { "Text", uno::Any(OUString("Comment")) } }); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", pDoc->HasNote(ScAddress(0, 0, 0))); @@ -2279,6 +2343,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf138428) uno::Sequence<beans::PropertyValue> aArgs = comphelper::InitPropertySequence({ { "Text", uno::Any(OUString("Comment")) } }); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); ScDocument* pDoc = getScDoc(); CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", pDoc->HasNote(ScAddress(0, 0, 0))); @@ -2296,21 +2361,25 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf138428) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", pDoc->HasNote(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_MESSAGE("There shouldn't be a note on B1", !pDoc->HasNote(ScAddress(1, 0, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("There shouldn't be a note on A1", !pDoc->HasNote(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_MESSAGE("There shouldn't be a note on B1", !pDoc->HasNote(ScAddress(1, 0, 0))); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", pDoc->HasNote(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_MESSAGE("There shouldn't be a note on B1", !pDoc->HasNote(ScAddress(1, 0, 0))); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_MESSAGE("There should be a note on A1", pDoc->HasNote(ScAddress(0, 0, 0))); CPPUNIT_ASSERT_MESSAGE("There should be a note on B1", pDoc->HasNote(ScAddress(1, 0, 0))); @@ -2352,6 +2421,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf130614) lcl_SelectObjectByName(*getViewShell(), u"Object 1"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // Open a new document createScDoc(); @@ -2359,6 +2429,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf130614) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer(); SdrPage* pPage = pDrawLayer->GetPage(0); @@ -2616,11 +2687,13 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf134675) goToCell("A:A"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // Select column B to Z goToCell("B:Z"); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); for (size_t i = 1; i < 24; ++i) { @@ -2719,6 +2792,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107952) goToCell("D10"); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have failed with // - Expected: 1 @@ -2729,6 +2803,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf107952) goToCell("D10"); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); lcl_AssertCurrentCursorPosition(*pDocSh, u"B1"); } @@ -2765,11 +2840,13 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf144022) goToCell("A5:B79"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); goToCell("D5"); //Without the fix in place, this test would have crashed dispatchCommand(mxComponent, ".uno:PasteTransposed", {}); + Scheduler::ProcessEventsToIdle(); for (size_t i = 3; i < 76; ++i) { @@ -2789,10 +2866,12 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf99386) goToCell("A1:B1"); dispatchCommand(mxComponent, ".uno:ToggleMergeCells", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("0"), pDoc->GetString(ScAddress(1, 1, 0))); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("This"), pDoc->GetString(ScAddress(1, 0, 0))); @@ -2852,6 +2931,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf152014) goToCell("A1"); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // Create a second document mxComponent2 = loadFromDesktop("private:factory/scalc"); @@ -2860,6 +2940,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf152014) CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xFrames->getCount()); dispatchCommand(mxComponent2, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); ScModelObj* pModelObj2 = dynamic_cast<ScModelObj*>(mxComponent2.get()); CPPUNIT_ASSERT(pModelObj2); diff --git a/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx b/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx index 2ba0a8f27848..f3beb12b3ce1 100644 --- a/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx +++ b/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx @@ -131,6 +131,7 @@ void LOKitSearchTest::lcl_search(const OUString& rKey, bool bFindAll, bool bBack })); dispatchCommand(mxComponent, ".uno:ExecuteSearch", aPropertyValues); + Scheduler::ProcessEventsToIdle(); } void LOKitSearchTest::lcl_replace(const OUString& rKey, const OUString& rReplace, bool bAll) @@ -146,6 +147,7 @@ void LOKitSearchTest::lcl_replace(const OUString& rKey, const OUString& rReplace })); dispatchCommand(mxComponent, ".uno:ExecuteSearch", aPropertyValues); + Scheduler::ProcessEventsToIdle(); } namespace diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index ad1c2564419b..67f81fa7be04 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -573,6 +573,7 @@ void SdTiledRenderingTest::testUndoShells() {"AttributePageSize.Height", uno::Any(static_cast<sal_Int32>(10000))}, })); dispatchCommand(mxComponent, ".uno:AttributePageSize", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // Assert that view shell ID tracking works for SdUndoAction subclasses. SdDrawDocument* pDocument = pXImpressDocument->GetDoc(); @@ -731,6 +732,7 @@ void SdTiledRenderingTest::testInsertTable() })); dispatchCommand(mxComponent, ".uno:InsertTable", aArgs); + Scheduler::ProcessEventsToIdle(); // get the table sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); @@ -756,6 +758,7 @@ void SdTiledRenderingTest::testDeleteTable() })); dispatchCommand(mxComponent, ".uno:InsertTable", aArgs); + Scheduler::ProcessEventsToIdle(); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); SdrView* pSdrView = pViewShell->GetView(); const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); @@ -1660,6 +1663,8 @@ void SdTiledRenderingTest::testTdf104405() uno::Sequence aArgs{ comphelper::makePropertyValue("PersistentCopy", true) }; dispatchCommand(mxComponent, ".uno:FormatPaintbrush", aArgs); + Scheduler::ProcessEventsToIdle(); + // now click on the table pView->MarkObj(pTableObject, pView->GetSdrPageView()); pTableObject->setActiveCell(sdr::table::CellPos(0,0)); @@ -1750,6 +1755,7 @@ void SdTiledRenderingTest::testTdf105502() // Grow font size for the selection. dispatchCommand(mxComponent, ".uno:Grow", {}); + Scheduler::ProcessEventsToIdle(); // Assert that the selected A1 has now a larger font than the unselected // A2. @@ -1799,6 +1805,7 @@ void SdTiledRenderingTest::testCommentCallbacks() {"Text", uno::Any(OUString("Comment"))}, }); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Add' action CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1823,6 +1830,7 @@ void SdTiledRenderingTest::testCommentCallbacks() {"Text", uno::Any(OUString("Reply to comment"))}, }); dispatchCommand(mxComponent, ".uno:ReplyToAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Modify' action CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1847,6 +1855,7 @@ void SdTiledRenderingTest::testCommentCallbacks() {"Text", uno::Any(OUString("Edited comment"))}, }); dispatchCommand(mxComponent, ".uno:EditAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Modify' action CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1864,6 +1873,7 @@ void SdTiledRenderingTest::testCommentCallbacks() {"Id", uno::Any(OUString::number(nComment1))}, }); dispatchCommand(mxComponent, ".uno:DeleteAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); // We received a LOK_CALLBACK_COMMENT callback with comment 'Remove' action CPPUNIT_ASSERT_EQUAL(std::string("Remove"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1895,6 +1905,7 @@ void SdTiledRenderingTest::testCommentChangeImpress() {"Text", uno::Any(OUString("Comment"))}, }); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1912,6 +1923,7 @@ void SdTiledRenderingTest::testCommentChangeImpress() {"PositionY", uno::Any(sal_Int32(20))} }); dispatchCommand(mxComponent, ".uno:EditAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action")); CPPUNIT_ASSERT_EQUAL(std::string("Comment"), aView1.m_aCommentCallbackResult.get<std::string>("text")); @@ -1941,6 +1953,7 @@ void SdTiledRenderingTest::testCommentChangeDraw() {"Text", uno::Any(OUString("Comment"))}, }); dispatchCommand(mxComponent, ".uno:InsertAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::string("Add"), aView1.m_aCommentCallbackResult.get<std::string>("action")); @@ -1958,6 +1971,7 @@ void SdTiledRenderingTest::testCommentChangeDraw() {"PositionY", uno::Any(sal_Int32(20))} }); dispatchCommand(mxComponent, ".uno:EditAnnotation", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action")); CPPUNIT_ASSERT_EQUAL(std::string("Comment"), aView1.m_aCommentCallbackResult.get<std::string>("text")); @@ -1990,6 +2004,7 @@ void SdTiledRenderingTest::testMultiViewInsertDeletePage() // Insert slide in 1st view SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:InsertPage", aArgs); + Scheduler::ProcessEventsToIdle(); // See if the current slide number changed in 2nd view too SfxLokHelper::setView(nView2); @@ -1998,6 +2013,7 @@ void SdTiledRenderingTest::testMultiViewInsertDeletePage() // Delete the page in 1st view now SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:DeletePage", aArgs); + Scheduler::ProcessEventsToIdle(); // See if current slide number changed in 2nd view too SfxLokHelper::setView(nView2); @@ -2051,6 +2067,7 @@ void SdTiledRenderingTest::testMultiViewInsertDeletePage2() // Insert slide in 1st view SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:InsertPage", aArgs); + Scheduler::ProcessEventsToIdle(); // See if the current slide number changed in 2nd view too SfxLokHelper::setView(nView2); @@ -2059,6 +2076,7 @@ void SdTiledRenderingTest::testMultiViewInsertDeletePage2() // Delete the page in 1st view now SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:DeletePage", aArgs); + Scheduler::ProcessEventsToIdle(); // See if current slide number changed in 2nd view too SfxLokHelper::setView(nView2); @@ -2233,6 +2251,7 @@ void SdTiledRenderingTest::testLanguageAllText() { "Language", uno::Any(OUString("Default_English (USA)")) }, }); dispatchCommand(mxComponent, ".uno:LanguageStatus", aArgs); + Scheduler::ProcessEventsToIdle(); // Assert that the shape text language was changed. uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY); @@ -2325,6 +2344,7 @@ void SdTiledRenderingTest::testTdf115783() { "FontHeight.Height", uno::Any(static_cast<float>(12)) }, }); dispatchCommand(mxComponent, ".uno:FontHeight", aArgs); + Scheduler::ProcessEventsToIdle(); // Create a text selection on the B1 cell. pTableObject->setActiveCell(sdr::table::CellPos(1, 0)); @@ -2337,9 +2357,11 @@ void SdTiledRenderingTest::testTdf115783() // Copy selection, paste at the start of the cell. aArgs = {}; dispatchCommand(mxComponent, ".uno:Copy", aArgs); + Scheduler::ProcessEventsToIdle(); rEditView.SetSelection(ESelection(0, 0, 0, 0)); aArgs = {}; dispatchCommand(mxComponent, ".uno:Paste", aArgs); + Scheduler::ProcessEventsToIdle(); pView->SdrEndTextEdit(); // And now verify that the cell has the correct font size. @@ -2399,6 +2421,7 @@ void SdTiledRenderingTest::testPasteTextOnSlide() // Copy some text dispatchCommand(mxComponent, ".uno:Copy", uno::Sequence<beans::PropertyValue>()); + Scheduler::ProcessEventsToIdle(); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE); @@ -2406,6 +2429,7 @@ void SdTiledRenderingTest::testPasteTextOnSlide() // Paste onto the slide dispatchCommand(mxComponent, ".uno:Paste", uno::Sequence<beans::PropertyValue>()); + Scheduler::ProcessEventsToIdle(); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE); @@ -2504,6 +2528,7 @@ void SdTiledRenderingTest::testCutSelectionChange() // Cut the selected text dispatchCommand(mxComponent, ".uno:Cut", uno::Sequence<beans::PropertyValue>()); + Scheduler::ProcessEventsToIdle(); // Selection is removed CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(0), m_aSelection.size()); @@ -2533,6 +2558,7 @@ void SdTiledRenderingTest::testRegenerateDiagram() // regenerate diagram dispatchCommand(mxComponent, ".uno:RegenerateDiagram", uno::Sequence<beans::PropertyValue>()); + Scheduler::ProcessEventsToIdle(); // diagram content (child shape count) should be the same as in the beginning CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), pActualPage->GetObj(0)->GetSubList()->GetObjCount()); @@ -2549,6 +2575,7 @@ void SdTiledRenderingTest::testInsertDeletePageInvalidation() aView1.m_bTilesInvalidated = false; aView1.m_aInvalidations.clear(); dispatchCommand(mxComponent, ".uno:InsertPage", uno::Sequence<beans::PropertyValue>()); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView1.m_bTilesInvalidated); CPPUNIT_ASSERT_EQUAL(9, pXImpressDocument->getParts()); CPPUNIT_ASSERT_EQUAL(size_t(9), aView1.m_aInvalidations.size()); @@ -2557,6 +2584,7 @@ void SdTiledRenderingTest::testInsertDeletePageInvalidation() aView1.m_bTilesInvalidated = false; aView1.m_aInvalidations.clear(); dispatchCommand(mxComponent, ".uno:DeletePage", uno::Sequence<beans::PropertyValue>()); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(aView1.m_bTilesInvalidated); CPPUNIT_ASSERT_EQUAL(8, pXImpressDocument->getParts()); CPPUNIT_ASSERT_EQUAL(size_t(8), aView1.m_aInvalidations.size()); @@ -2605,6 +2633,7 @@ void SdTiledRenderingTest::testSlideDuplicateUndo() // Duplicate the first slide on view 1 and undo it. SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:DuplicatePage", {}); + Scheduler::ProcessEventsToIdle(); pXImpressDocument->setPart(0, /*bAllowChangeFocus=*/false); pXImpressDocument->setPart(1, /*bAllowChangeFocus=*/false); SfxLokHelper::setView(nView0); @@ -2670,6 +2699,7 @@ void SdTiledRenderingTest::testMoveShapeHandle() {"NewPosY", uno::Any(y+1)} })); dispatchCommand(mxComponent, ".uno:MoveShapeHandle", aPropertyValues); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT(!aView1.m_ShapeSelection.isEmpty()); lcl_extractHandleParameters(aView1.m_ShapeSelection, id, x ,y); CPPUNIT_ASSERT_EQUAL(x-1, oldX); @@ -2693,10 +2723,13 @@ void SdTiledRenderingTest::testPasteUndo() ESelection aWordSelection(0, 0, 0, 1); // "w" of "world" rEditView.SetSelection(aWordSelection); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); // When undoing a paste: dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Then make sure the cursor position is still at the beginning: ESelection aSelection = rEditView.GetSelection(); diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx index d193e45d0280..f85c977ee514 100644 --- a/sd/qa/unit/uiimpress.cxx +++ b/sd/qa/unit/uiimpress.cxx @@ -160,6 +160,7 @@ void SdUiImpressTest::lcl_search(const OUString& rKey, bool bFindAll, bool bBack })); dispatchCommand(mxComponent, ".uno:ExecuteSearch", aPropertyValues); + Scheduler::ProcessEventsToIdle(); } CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf111522) @@ -262,6 +263,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf124708) createSdImpressDoc("tdf124708.ppt"); dispatchCommand(mxComponent, ".uno:NextPage", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(2); @@ -271,13 +273,16 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf124708) CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(16), pActualPage->GetObjCount()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), pActualPage->GetObjCount()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(16), pActualPage->GetObjCount()); } @@ -382,12 +387,16 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf139996) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:MovePageUp", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:MovePageDown", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:MovePageTop", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:MovePageBottom", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, rPageSelector.GetSelectedPageCount()); } @@ -432,6 +441,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf126605) createSdImpressDoc(); dispatchCommand(mxComponent, ".uno:InsertPage", {}); + Scheduler::ProcessEventsToIdle(); insertStringToObject(0, u"Test", /*bUseEscape*/ false); @@ -458,11 +468,13 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf126605) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:ParaRightToLeft", {}); + Scheduler::ProcessEventsToIdle(); xPropSet->getPropertyValue("WritingMode") >>= nWritingMode; CPPUNIT_ASSERT_EQUAL(text::WritingMode2::RL_TB, nWritingMode); dispatchCommand(mxComponent, ".uno:ParaLeftToRight", {}); + Scheduler::ProcessEventsToIdle(); xPropSet->getPropertyValue("WritingMode") >>= nWritingMode; CPPUNIT_ASSERT_EQUAL(text::WritingMode2::LR_TB, nWritingMode); @@ -473,12 +485,15 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf100950) createSdImpressDoc(); dispatchCommand(mxComponent, ".uno:InsertPage", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:InsertPage", {}); + Scheduler::ProcessEventsToIdle(); insertStringToObject(0, u"Test", /*bUseEscape*/ true); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); sd::slidesorter::SlideSorterViewShell* pSSVS = getSlideSorterViewShell(); auto& rSSController = pSSVS->GetSlideSorter().GetController(); @@ -493,12 +508,15 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf129346) createSdImpressDoc(); dispatchCommand(mxComponent, ".uno:DiaMode", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(1); dispatchCommand(mxComponent, ".uno:InsertPage", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(2); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(1); } @@ -516,6 +534,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testmoveSlides) { "IsPageObj", uno::Any(false) } })); dispatchCommand(mxComponent, ".uno:InsertPage", aArgs); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(2); CPPUNIT_ASSERT_EQUAL(OUString("Test 1"), pViewShell->GetActualPage()->GetName()); @@ -526,6 +545,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testmoveSlides) { "IsPageObj", uno::Any(false) } }); dispatchCommand(mxComponent, ".uno:InsertPage", aArgs); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(3); CPPUNIT_ASSERT_EQUAL(OUString("Test 2"), pViewShell->GetActualPage()->GetName()); @@ -534,6 +554,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testmoveSlides) for (size_t i = 2; i > 0; --i) { dispatchCommand(mxComponent, ".uno:MovePageUp", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(i); CPPUNIT_ASSERT_EQUAL(OUString("Test 2"), pViewShell->GetActualPage()->GetName()); } @@ -542,17 +563,20 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testmoveSlides) for (size_t i = 2; i < 4; ++i) { dispatchCommand(mxComponent, ".uno:MovePageDown", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(i); CPPUNIT_ASSERT_EQUAL(OUString("Test 2"), pViewShell->GetActualPage()->GetName()); } // Move slide 'Test 2' to the top dispatchCommand(mxComponent, ".uno:MovePageFirst", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(1); CPPUNIT_ASSERT_EQUAL(OUString("Test 2"), pViewShell->GetActualPage()->GetName()); // Move slide 'Test 2' to the bottom dispatchCommand(mxComponent, ".uno:MovePageLast", {}); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(3); CPPUNIT_ASSERT_EQUAL(OUString("Test 2"), pViewShell->GetActualPage()->GetName()); } @@ -586,42 +610,52 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf148620) uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ { "KeyModifier", uno::Any(sal_Int32(0)) } })); dispatchCommand(mxComponent, ".uno:OutlineUp", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nThree\nFour\nsix\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineUp", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nThree\nsix\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineUp", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nsix\nThree\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineUp", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nsix\nTwo\nThree\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineUp", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"six\nOne\nTwo\nThree\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineDown", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nsix\nTwo\nThree\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineDown", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nsix\nThree\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineDown", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nThree\nsix\nFour\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineDown", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nThree\nFour\nsix\nFive"), xShape->getString()); dispatchCommand(mxComponent, ".uno:OutlineDown", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString(u"One\nTwo\nThree\nFour\nFive\nsix"), xShape->getString()); } @@ -636,6 +670,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf141703) { { "Rows", uno::Any(sal_Int32(2)) }, { "Columns", uno::Any(sal_Int32(2)) } })); dispatchCommand(mxComponent, ".uno:InsertTable", aArgs); + Scheduler::ProcessEventsToIdle(); // Move to A1 using Alt + Tab and write 'A' for (int i = 0; i < 3; i++) @@ -691,10 +726,12 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf127481) { { "Rows", uno::Any(sal_Int32(1)) }, { "Columns", uno::Any(sal_Int32(1)) } })); dispatchCommand(mxComponent, ".uno:InsertTable", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount()); dispatchCommand(mxComponent, ".uno:DuplicatePage", aArgs); + Scheduler::ProcessEventsToIdle(); checkCurrentPageNumber(2); @@ -821,6 +858,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf38669) uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ { "KeyModifier", uno::Any(KEY_MOD1) } })); dispatchCommand(mxComponent, ".uno:BasicShapes.rectangle", aArgs); + Scheduler::ProcessEventsToIdle(); uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY); uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0), @@ -855,6 +893,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf151417) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Edit", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(3), xDrawPage->getCount()); } @@ -869,6 +908,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf123841) uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ { "KeyModifier", uno::Any(KEY_MOD1) } })); dispatchCommand(mxComponent, ".uno:Rect_Unfilled", aArgs); + Scheduler::ProcessEventsToIdle(); uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY); uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0), @@ -955,11 +995,13 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testCharColorTheme) xController->select(uno::Any(xShape)); Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Text", {}); + Scheduler::ProcessEventsToIdle(); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); SdrView* pView = pViewShell->GetView(); CPPUNIT_ASSERT(pView->IsTextEdit()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); // When picking a theme color on the sidebar: uno::Sequence<beans::PropertyValue> aColorArgs = { @@ -969,6 +1011,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testCharColorTheme) comphelper::makePropertyValue("ColorLumOff", static_cast<sal_Int16>(8000)), }; dispatchCommand(mxComponent, ".uno:Color", aColorArgs); + Scheduler::ProcessEventsToIdle(); // Then make sure the theme "metadata" is set in the document model: pView->EndTextEditCurrentView(); @@ -1014,6 +1057,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testFillColorTheme) comphelper::makePropertyValue("ColorLumOff", static_cast<sal_Int16>(6000)), }; dispatchCommand(mxComponent, ".uno:FillColor", aColorArgs); + Scheduler::ProcessEventsToIdle(); // Then make sure the theme index is not lost when the sidebar sets it: sal_Int16 nFillColorTheme{}; @@ -1056,6 +1100,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf127696) createSdImpressDoc(); dispatchCommand(mxComponent, ".uno:InsertPage", {}); + Scheduler::ProcessEventsToIdle(); insertStringToObject(0, u"Test", /*bUseEscape*/ false); dispatchCommand(mxComponent, ".uno:SelectAll", {}); diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx index 235a5ccaf757..e412c8249a65 100644 --- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx +++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx @@ -334,6 +334,7 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testOnlineNodeSplitAppend) // Undo second change dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("He heard quiet steps behind him. "), getParagraph(1)->getString()); CPPUNIT_ASSERT_EQUAL(OUString("That didn't bode well. Who could be following him this late at " @@ -350,6 +351,7 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testOnlineNodeSplitAppend) // Undo first change dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), pDoc->getOnlineAccessibilityCheck()->getNumberOfAccessibilityIssues()); CPPUNIT_ASSERT_EQUAL( diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index e926194560d5..587fa4d4294e 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -3691,6 +3691,7 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testKeepWithNextPlusFlyFollowTextFlow) } dispatchCommand(mxComponent, ".uno:Fieldnames", {}); + Scheduler::ProcessEventsToIdle(); { xmlDocUniquePtr pXmlDoc = parseLayoutDump(); @@ -3708,6 +3709,7 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testKeepWithNextPlusFlyFollowTextFlow) } dispatchCommand(mxComponent, ".uno:Fieldnames", {}); + Scheduler::ProcessEventsToIdle(); { xmlDocUniquePtr pXmlDoc = parseLayoutDump(); diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index 42e11ed6ca3d..cb5bb20d5365 100644 --- a/sw/qa/extras/tiledrendering/tiledrendering.cxx +++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx @@ -1210,6 +1210,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoReordering) // When view 1 presses undo: SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Then make sure view 1's last undo action is invoked, out of order: // Without the accompanying fix in place, this test would have failed with: @@ -1259,9 +1260,11 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoReorderingRedo) // When view 1 presses undo, twice: SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // First just s(econd) is erased: CPPUNIT_ASSERT_EQUAL(OUString("f"), pTextNode1->GetText()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Then make sure view 1's undo actions are invoked, out of order: // Without the accompanying fix in place, this test would have failed with: @@ -1311,6 +1314,7 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testUndoReorderingMulti) // When view 1 presses undo: SfxLokHelper::setView(nView1); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Then make sure view 1's undo action is invoked, out of order: // Without the accompanying fix in place, this test would have failed with: diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 47df30709462..5cad83ed7b0f 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -1480,6 +1480,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest, testTdf137532) CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xCursor, "CharWeight")); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); xCursor.set(xText->createTextCursorByRange(getRun(getParagraph(1), 1))); CPPUNIT_ASSERT(xCursor.is()); @@ -1491,6 +1492,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest, testTdf137532) CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xCursor, "CharWeight")); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); xCursor.set(xText->createTextCursorByRange(getRun(getParagraph(1), 1))); CPPUNIT_ASSERT(xCursor.is()); diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx b/sw/qa/extras/uiwriter/uiwriter2.cxx index 4292edfb2fdb..1ac7b41988d1 100644 --- a/sw/qa/extras/uiwriter/uiwriter2.cxx +++ b/sw/qa/extras/uiwriter/uiwriter2.cxx @@ -447,6 +447,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134250) // this would crash in 2 different ways dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); @@ -456,11 +457,13 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134250) xTextContent->getAnchor()->getString()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); @@ -468,6 +471,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134250) xTextContent->getAnchor()->getString()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); @@ -503,12 +507,14 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134436) // first, the section doesn't get deleted dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); CPPUNIT_ASSERT_EQUAL(OUString(""), pWrtShell->GetCursor()->GetText()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); @@ -516,12 +522,14 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134436) // second, the section does get deleted because point is at the end dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xSections->getCount()); CPPUNIT_ASSERT_EQUAL(OUString(""), pWrtShell->GetCursor()->GetText()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); @@ -529,18 +537,21 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134436) // the problem was that the section was not deleted on Redo dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xSections->getCount()); CPPUNIT_ASSERT_EQUAL(OUString(""), pWrtShell->GetCursor()->GetText()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); CPPUNIT_ASSERT_EQUAL(OUString("a\nb\n"), pWrtShell->GetCursor()->GetText()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xSections->getCount()); @@ -571,6 +582,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134252) xCursor->getString()); dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); @@ -578,6 +590,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134252) // this would crash dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xSections->getCount()); @@ -585,12 +598,14 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134252) xCursor->getString()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); CPPUNIT_ASSERT_EQUAL(OUString(""), xCursor->getString()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xSections->getCount()); @@ -598,6 +613,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf134252) xCursor->getString()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xTables->getCount()); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xSections->getCount()); diff --git a/sw/qa/extras/uiwriter/uiwriter3.cxx b/sw/qa/extras/uiwriter/uiwriter3.cxx index f81232ddca62..f0cbf7339937 100644 --- a/sw/qa/extras/uiwriter/uiwriter3.cxx +++ b/sw/qa/extras/uiwriter/uiwriter3.cxx @@ -47,14 +47,17 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf145731) CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(9, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -67,29 +70,36 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf147199) CPPUNIT_ASSERT_EQUAL(7, getShapes()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(7, getShapes()); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(14, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(7, getShapes()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(7, getShapes()); } @@ -101,13 +111,16 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf139843) int nPages = getPages(); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(nPages, getPages()); } @@ -118,8 +131,10 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf146848) createSwDoc("tdf77014.odt"); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY); uno::Reference<container::XEnumerationAccess> xFieldsAccess( @@ -129,6 +144,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf146848) // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); xFields = xFieldsAccess->createEnumeration(); @@ -149,24 +165,29 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf149507) CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -177,6 +198,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf114973) createSwDoc("tdf114973.fodt"); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); SwDoc* const pDoc = getSwDoc(); SwWrtShell* const pWrtShell = pDoc->GetDocShell()->GetWrtShell(); @@ -184,15 +206,18 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf114973) CPPUNIT_ASSERT(!pWrtShell->IsInHeaderFooter()); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); // check that hidden paragraphs at start and end are deleted dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(int(1), getParagraphs()); CPPUNIT_ASSERT_EQUAL(OUString(), getParagraph(1)->getString()); // check that hidden paragraphs at start and end are copied dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(int(3), getParagraphs()); CPPUNIT_ASSERT_EQUAL(OUString("hidden first paragraph"), getParagraph(1)->getString()); @@ -210,14 +235,17 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf145321) CPPUNIT_ASSERT_EQUAL(3, getPages()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(3, getShapes()); CPPUNIT_ASSERT_EQUAL(3, getPages()); @@ -652,12 +680,15 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf138482) CPPUNIT_ASSERT_EQUAL(2, getShapes()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(0, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(2, getShapes()); } @@ -673,13 +704,16 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf134965) for (sal_Int32 i = 0; i < 10; ++i) { dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount()); } @@ -697,9 +731,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf128375) CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed cutting the second document dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount()); } @@ -716,12 +752,15 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf135061) CPPUNIT_ASSERT_EQUAL(4, getShapes()); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); for (sal_Int32 i = 0; i < 5; ++i) { dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); } CPPUNIT_ASSERT_EQUAL(sal_Int32(6), xIndexAccess->getCount()); @@ -731,6 +770,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf135061) { // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); } CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); @@ -765,10 +805,12 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132911) CPPUNIT_ASSERT_EQUAL(8, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(4, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(0, getShapes()); @@ -781,15 +823,18 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132911) CPPUNIT_ASSERT_EQUAL(8, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(4, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(0, getShapes()); //tdf#135247: Without the fix in place, this would have crashed dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(4, getShapes()); } @@ -841,6 +886,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf124904) // remove the first word "Heading" (with change tracking) to update the referenced text dispatchCommand(mxComponent, ".uno:DelToEndOfWord", {}); + Scheduler::ProcessEventsToIdle(); // This was "Reference to Heading of document file" CPPUNIT_ASSERT_EQUAL(OUString("Reference to of example document "), @@ -848,6 +894,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf124904) // don't hide the wholly deleted referenced text dispatchCommand(mxComponent, ".uno:DelToEndOfLine", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("Reference to Heading of example document file"), getParagraph(2)->getString()); } @@ -880,18 +927,22 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf134404) CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:GoToEndOfPage", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:InsertPagebreak", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(2, getPages()); dispatchCommand(mxComponent, ".uno:SwBackspace", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, the image would have been deleted CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(2, getPages()); } @@ -920,12 +971,15 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132321) CPPUNIT_ASSERT_EQUAL(1, getShapes()); dispatchCommand(mxComponent, ".uno:GoToEndOfPage", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:SwBackspace", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, the button form would have also been deleted CPPUNIT_ASSERT_EQUAL(1, getShapes()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); } @@ -966,9 +1020,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132597) { { "SelectedFormat", uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::RTF)) } }); dispatchCommand(mxComponent, ".uno:ClipboardFormatItems", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -989,9 +1045,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf139737) { { "SelectedFormat", uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::RTF)) } }); dispatchCommand(mxComponent, ".uno:ClipboardFormatItems", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); } CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf150845) @@ -1003,6 +1061,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf150845) uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ { "KeyModifier", uno::Any(KEY_MOD1) } })); dispatchCommand(mxComponent, ".uno:Edit", aArgs); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); } @@ -1120,6 +1179,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf144840) { { "SelectedFormat", uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::RTF)) } }); dispatchCommand(mxComponent, ".uno:ClipboardFormatItems", aPropertyValues); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); @@ -1151,6 +1211,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf131963) { { "SelectedFormat", uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::RTF)) } }); dispatchCommand(mxComponent, ".uno:ClipboardFormatItems", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here @@ -1173,9 +1234,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132596) { { "SelectedFormat", uno::Any(static_cast<sal_uInt32>(SotClipboardFormatId::RTF)) } }); dispatchCommand(mxComponent, ".uno:ClipboardFormatItems", aPropertyValues); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(2, getPages()); } @@ -1215,12 +1278,15 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf133967) dispatchCommand(mxComponent, ".uno:SelectAll", {}); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); for (sal_Int32 i = 0; i < 10; ++i) { dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); } // Without the fix in place, this test would have failed with: @@ -1268,22 +1334,27 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf130094) pWrtShell->Down(/*bSelect=*/true); dispatchCommand(mxComponent, ".uno:Copy", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("First"), getParagraph(1)->getString()); CPPUNIT_ASSERT_EQUAL(OUString("Second"), getParagraph(2)->getString()); CPPUNIT_ASSERT_EQUAL(OUString(""), getParagraph(3)->getString()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("First"), getParagraph(1)->getString()); CPPUNIT_ASSERT_EQUAL(OUString("Second"), getParagraph(2)->getString()); CPPUNIT_ASSERT_EQUAL(OUString("Third"), getParagraph(3)->getString()); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("First"), getParagraph(1)->getString()); CPPUNIT_ASSERT_EQUAL(OUString("Second"), getParagraph(2)->getString()); @@ -1530,14 +1601,17 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf141175) dispatchCommand(mxComponent, ".uno:SelectAll", {}); dispatchCommand(mxComponent, ".uno:SelectAll", {}); dispatchCommand(mxComponent, ".uno:SelectAll", {}); + Scheduler::ProcessEventsToIdle(); //Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Paste", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -1584,6 +1658,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf126504) dispatchCommand(mxComponent, ".uno:Copy", {}); dispatchCommand(mxComponent, ".uno:GoToEndOfPage", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Paste", {}); @@ -1591,17 +1666,20 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf126504) CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); //Without the fix in place, it would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -1649,6 +1727,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf134253) //Without the fix in place, it would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(6, getPages()); @@ -1713,6 +1792,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf140975) // Set the Anchor of the shape to As_Char selectShape(1); dispatchCommand(mxComponent, ".uno:SetAnchorToChar", {}); + Scheduler::ProcessEventsToIdle(); // Get the layout of the textbox auto pExportDump = parseLayoutDump(); @@ -1816,6 +1896,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf140828) selectShape(1); dispatchCommand(mxComponent, ".uno:SetAnchorAtChar", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL( text::TextContentAnchorType::TextContentAnchorType_AT_CHARACTER, @@ -1840,9 +1921,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132725) CPPUNIT_ASSERT_EQUAL(OUString("AA"), getParagraph(1)->getString()); dispatchCommand(mxComponent, ".uno:GoToEndOfPara", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:SwBackspace", {}); dispatchCommand(mxComponent, ".uno:SwBackspace", {}); + Scheduler::ProcessEventsToIdle(); // tdf#137587 fly is no longer deleted by backspace CPPUNIT_ASSERT_EQUAL(1, getShapes()); @@ -1850,12 +1933,14 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132725) dispatchCommand(mxComponent, ".uno:Undo", {}); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(OUString("AA"), getParagraph(1)->getString()); dispatchCommand(mxComponent, ".uno:Redo", {}); dispatchCommand(mxComponent, ".uno:Redo", {}); + Scheduler::ProcessEventsToIdle(); // tdf#137587 fly is no longer deleted by backspace CPPUNIT_ASSERT_EQUAL(1, getShapes()); @@ -1863,6 +1948,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132725) //Without the fix in place, it would crash here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getShapes()); CPPUNIT_ASSERT_EQUAL(OUString("A"), getParagraph(1)->getString()); @@ -2028,11 +2114,13 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf134021) dispatchCommand(mxComponent, ".uno:JumpToNextTable", {}); dispatchCommand(mxComponent, ".uno:DeleteTable", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, it would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(12, getPages()); @@ -2051,11 +2139,13 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf136778) dispatchCommand(mxComponent, ".uno:JumpToNextTable", {}); dispatchCommand(mxComponent, ".uno:DeleteTable", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, it would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -2072,6 +2162,7 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf123285) ". Here is a short sentence demonstrating this very peculiar bug.")); dispatchCommand(mxComponent, ".uno:GoToEndOfPage", {}); + Scheduler::ProcessEventsToIdle(); pTextDoc->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RETURN); Scheduler::ProcessEventsToIdle(); @@ -2154,9 +2245,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf130685) dispatchCommand(mxComponent, ".uno:Undo", {}); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(2, getPages()); } @@ -2168,9 +2261,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf132944) dispatchCommand(mxComponent, ".uno:SelectAll", {}); dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getPages()); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); // Without the fix in place, the document would have had 2 pages CPPUNIT_ASSERT_EQUAL(1, getPages()); @@ -2184,10 +2279,12 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest3, testTdf104649) dispatchCommand(mxComponent, ".uno:SelectAll", {}); dispatchCommand(mxComponent, ".uno:Delete", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(1, getPages()); // Without the fix in place, this test would have crashed here dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(OUString("Test"), getParagraph(1)->getString()); } diff --git a/sw/qa/extras/uiwriter/uiwriter4.cxx b/sw/qa/extras/uiwriter/uiwriter4.cxx index 281ad33fd9e5..77b42667ee87 100644 --- a/sw/qa/extras/uiwriter/uiwriter4.cxx +++ b/sw/qa/extras/uiwriter/uiwriter4.cxx @@ -137,8 +137,10 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest4, testTdf146449) CPPUNIT_ASSERT(pShell->SelectObj(Point(), 0, pObject)); dispatchCommand(mxComponent, ".uno:Cut", {}); + Scheduler::ProcessEventsToIdle(); dispatchCommand(mxComponent, ".uno:Undo", {}); + Scheduler::ProcessEventsToIdle(); ... etc. - the rest is truncated