sd/qa/unit/tiledrendering/tiledrendering.cxx | 60 +++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 8 deletions(-)
New commits: commit e3daab4a0899ab89b42bdc1086217deba51bb993 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> AuthorDate: Sun Mar 15 11:57:43 2020 -0400 Commit: Ashod Nakashian <ashnak...@gmail.com> CommitDate: Sun Mar 15 20:59:02 2020 +0100 sd: LOK: cursor visibility test when ending editing Change-Id: I783220269f934ad7bf39796b23185816b3900127 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90531 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index b510814dd2b8..c26411624b56 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -99,6 +99,7 @@ public: void testCursorVisibility_SingleClick(); void testCursorVisibility_DoubleClick(); void testCursorVisibility_MultiView(); + void testCursorVisibility_Escape(); void testViewLock(); void testUndoLimiting(); void testCreateViewGraphicSelection(); @@ -152,6 +153,7 @@ public: CPPUNIT_TEST(testCursorVisibility_SingleClick); CPPUNIT_TEST(testCursorVisibility_DoubleClick); CPPUNIT_TEST(testCursorVisibility_MultiView); + CPPUNIT_TEST(testCursorVisibility_Escape); CPPUNIT_TEST(testViewLock); CPPUNIT_TEST(testUndoLimiting); CPPUNIT_TEST(testCreateViewGraphicSelection); @@ -1266,7 +1268,7 @@ void SdTiledRenderingTest::testCursorVisibility_MultiView() sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(0); - CPPUNIT_ASSERT(pObject1 != nullptr); + CPPUNIT_ASSERT(pObject1); CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject1->GetObjIdentifier()); SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1); @@ -1275,12 +1277,10 @@ void SdTiledRenderingTest::testCursorVisibility_MultiView() pXImpressDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>()); const int nView2 = SfxLokHelper::getView(); Scheduler::ProcessEventsToIdle(); - CPPUNIT_ASSERT(aView1.m_bCursorVisibleChanged == false); - CPPUNIT_ASSERT(aView1.m_aViewCursorVisibilities[nView2] == false); + CPPUNIT_ASSERT_EQUAL(false, aView1.m_bCursorVisibleChanged); + CPPUNIT_ASSERT_EQUAL(false, aView1.m_aViewCursorVisibilities[nView2]); - // Make sure that typing in the first view causes an invalidation in the - // second view as well, even if the second view was created after begin - // text edit in the first view. + // Also check that the second view gets the notifications. ViewCallback aView2; SfxLokHelper::setView(nView1); @@ -1298,8 +1298,52 @@ void SdTiledRenderingTest::testCursorVisibility_MultiView() // We must be in text editing mode and have cursor visible. CPPUNIT_ASSERT(pViewShell->GetView()->IsTextEdit()); - CPPUNIT_ASSERT(aView1.m_bCursorVisible == true); - CPPUNIT_ASSERT(aView1.m_aViewCursorVisibilities[nView2] == false); + CPPUNIT_ASSERT(aView1.m_bCursorVisible); + CPPUNIT_ASSERT_EQUAL(false, aView1.m_aViewCursorVisibilities[nView2]); + + CPPUNIT_ASSERT_EQUAL(false, aView2.m_bCursorVisible); + CPPUNIT_ASSERT_EQUAL(false, aView2.m_aViewCursorVisibilities[nView1]); + CPPUNIT_ASSERT_EQUAL(false, aView2.m_aViewCursorVisibilities[nView2]); +} + +void SdTiledRenderingTest::testCursorVisibility_Escape() +{ + // Load doc. + SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); + ViewCallback aView1; + + // Begin text edit on the only object on the slide. + sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + SdPage* pActualPage = pViewShell->GetActualPage(); + SdrObject* pObject1 = pActualPage->GetObj(0); + CPPUNIT_ASSERT(pObject1 != nullptr); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt16>(OBJ_TITLETEXT), pObject1->GetObjIdentifier()); + SdrTextObj* pTextObject = static_cast<SdrTextObj*>(pObject1); + + // Click once on the text to start editing. + const ::tools::Rectangle aRect = pTextObject->GetCurrentBoundRect(); + const auto centerX = convertMm100ToTwip(aRect.getX() + (aRect.getWidth() / 2)); + const auto centerY = convertMm100ToTwip(aRect.getY() + (aRect.getHeight() / 2)); + pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN, + centerX, centerY, + 1, MOUSE_LEFT, 0); + pXImpressDocument->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP, + centerX, centerY, + 1, MOUSE_LEFT, 0); + Scheduler::ProcessEventsToIdle(); + + // We must be in text editing mode and have cursor visible. + CPPUNIT_ASSERT(pViewShell->GetView()->IsTextEdit()); + CPPUNIT_ASSERT(aView1.m_bCursorVisible); + + // End editing by pressing the escape key. + pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE); + pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE); + Scheduler::ProcessEventsToIdle(); + + // We must be in text editing mode and have cursor visible. + CPPUNIT_ASSERT(!pViewShell->GetView()->IsTextEdit()); + CPPUNIT_ASSERT_EQUAL(false, aView1.m_bCursorVisible); } void SdTiledRenderingTest::testViewLock() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits