summaryrefslogtreecommitdiff
path: root/sd/qa
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2021-11-12 11:55:07 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2021-11-12 14:58:32 +0100
commite410094c1c0565cbff335c71cc5ebb2ea4e706e2 (patch)
tree113bbacab26cdec8f578466c7a672f6d8ff19197 /sd/qa
parent4141c13da8245b5ed46be3b7034d014d75f433f9 (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/qa')
-rw-r--r--sd/qa/uitest/impress_tests/tdf126605.py27
-rw-r--r--sd/qa/unit/uiimpress.cxx64
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();