diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2021-11-12 11:55:07 +0100 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2021-11-12 14:58:32 +0100 |
commit | e410094c1c0565cbff335c71cc5ebb2ea4e706e2 (patch) | |
tree | 113bbacab26cdec8f578466c7a672f6d8ff19197 /sd | |
parent | 4141c13da8245b5ed46be3b7034d014d75f433f9 (diff) |
tdf#126605: sd: move UItest to CppUnittest
Change-Id: I6c7da3f903199027cd7cb446bdc559fcc27b3828
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125096
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/uitest/impress_tests/tdf126605.py | 27 | ||||
-rw-r--r-- | sd/qa/unit/uiimpress.cxx | 64 |
2 files changed, 57 insertions, 34 deletions
diff --git a/sd/qa/uitest/impress_tests/tdf126605.py b/sd/qa/uitest/impress_tests/tdf126605.py deleted file mode 100644 index ba277f726951..000000000000 --- a/sd/qa/uitest/impress_tests/tdf126605.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -from uitest.framework import UITestCase -from libreoffice.uno.propertyvalue import mkPropertyValues - -class tdf126605(UITestCase): - - def test_run(self): - with self.ui_test.create_doc_in_start_center("impress"): - xTemplateDlg = self.xUITest.getTopFocusWindow() - xCancelBtn = xTemplateDlg.getChild("close") - self.ui_test.close_dialog_through_button(xCancelBtn) - - xDoc = self.xUITest.getTopFocusWindow() - xEdit = xDoc.getChild("impress_win") - xEdit.executeAction("TYPE", mkPropertyValues({"TEXT":"test"})) - - # Without the accompanying fix in place, it would crash at this point - self.xUITest.executeCommand(".uno:ParaRightToLeft") - self.xUITest.executeCommand(".uno:ParaLeftToRight") - - -# vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx index 3368a45c3b61..68786fac3698 100644 --- a/sd/qa/unit/uiimpress.cxx +++ b/sd/qa/unit/uiimpress.cxx @@ -18,6 +18,7 @@ #include <com/sun/star/drawing/XDrawView.hpp> #include <com/sun/star/frame/DispatchHelper.hpp> #include <com/sun/star/table/XMergeableCell.hpp> +#include <com/sun/star/text/WritingMode2.hpp> #include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> @@ -64,7 +65,7 @@ public: virtual void tearDown() override; void checkCurrentPageNumber(sal_uInt16 nNum); - void insertStringToObject(sal_uInt16 nObj, const std::string& rStr); + void insertStringToObject(sal_uInt16 nObj, const std::string& rStr, bool bUseEscape); sd::slidesorter::SlideSorterViewShell* getSlideSorterViewShell(); }; @@ -95,7 +96,8 @@ void SdUiImpressTest::checkCurrentPageNumber(sal_uInt16 nNum) CPPUNIT_ASSERT_EQUAL(nNum, nPageNumber); } -void SdUiImpressTest::insertStringToObject(sal_uInt16 nObj, const std::string& rStr) +void SdUiImpressTest::insertStringToObject(sal_uInt16 nObj, const std::string& rStr, + bool bUseEscape) { auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); @@ -116,11 +118,14 @@ void SdUiImpressTest::insertStringToObject(sal_uInt16 nObj, const std::string& r CPPUNIT_ASSERT(pView->IsTextEdit()); - pImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE); - pImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE); - Scheduler::ProcessEventsToIdle(); + if (bUseEscape) + { + pImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::ESCAPE); + pImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::ESCAPE); + Scheduler::ProcessEventsToIdle(); - CPPUNIT_ASSERT(!pView->IsTextEdit()); + CPPUNIT_ASSERT(!pView->IsTextEdit()); + } } sd::slidesorter::SlideSorterViewShell* SdUiImpressTest::getSlideSorterViewShell() @@ -373,6 +378,51 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf128651) CPPUNIT_ASSERT_EQUAL_MESSAGE("Redo changes width", nUndoWidth, nRedoWidth); } +CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf126605) +{ + mxComponent = loadFromDesktop("private:factory/simpress", + "com.sun.star.presentation.PresentationDocument"); + + dispatchCommand(mxComponent, ".uno:InsertPage", {}); + Scheduler::ProcessEventsToIdle(); + + insertStringToObject(0, "Test", /*bUseEscape*/ false); + + uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(1), + uno::UNO_QUERY); + + uno::Reference<beans::XPropertySet> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY); + + uno::Reference<text::XText> xText + = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY_THROW)->getText(); + CPPUNIT_ASSERT_MESSAGE("Not a text shape", xText.is()); + + uno::Reference<container::XEnumerationAccess> paraEnumAccess(xText, uno::UNO_QUERY); + uno::Reference<container::XEnumeration> paraEnum(paraEnumAccess->createEnumeration()); + + // Get first paragraph + uno::Reference<text::XTextRange> xParagraph(paraEnum->nextElement(), uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropSet(xParagraph, uno::UNO_QUERY_THROW); + + sal_Int16 nWritingMode = 0; + xPropSet->getPropertyValue("WritingMode") >>= nWritingMode; + CPPUNIT_ASSERT_EQUAL(text::WritingMode2::LR_TB, nWritingMode); + + // 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); +} + CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf100950) { mxComponent = loadFromDesktop("private:factory/simpress", @@ -384,7 +434,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf100950) dispatchCommand(mxComponent, ".uno:InsertPage", {}); Scheduler::ProcessEventsToIdle(); - insertStringToObject(0, "Test"); + insertStringToObject(0, "Test", /*bUseEscape*/ true); dispatchCommand(mxComponent, ".uno:Undo", {}); Scheduler::ProcessEventsToIdle(); |