diff options
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/uitest/impress_tests/textColumnsDialog.py | 53 | ||||
-rw-r--r-- | sd/qa/unit/misc-tests.cxx | 49 |
2 files changed, 102 insertions, 0 deletions
diff --git a/sd/qa/uitest/impress_tests/textColumnsDialog.py b/sd/qa/uitest/impress_tests/textColumnsDialog.py new file mode 100644 index 000000000000..d6ae7d248000 --- /dev/null +++ b/sd/qa/uitest/impress_tests/textColumnsDialog.py @@ -0,0 +1,53 @@ +# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- +# +# This file is part of the LibreOffice project. +# +# 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.uihelper.common import get_state_as_dict +from libreoffice.uno.propertyvalue import mkPropertyValues +from uitest.uihelper.common import change_measurement_unit, select_pos +from uitest.framework import UITestCase +from uitest.uihelper import guarded + +class textColumnsDialog(UITestCase): + + def test_textColumnsDialog(self): + with guarded.create_doc_in_start_center(self, "impress") as document: + + xTemplateDlg = self.xUITest.getTopFocusWindow() + xCancelBtn = xTemplateDlg.getChild("close") + self.ui_test.close_dialog_through_button(xCancelBtn) + + change_measurement_unit(self, 'Centimeter') + + xImpressDoc = self.xUITest.getTopFocusWindow() + + xEditWin = xImpressDoc.getChild("impress_win") + xEditWin.executeAction("SELECT", mkPropertyValues({"OBJECT":"Unnamed Drawinglayer object 1"})) + self.assertEqual("com.sun.star.drawing.SvxShapeCollection", document.CurrentSelection.getImplementationName()) + + # Test defaults and set some values + with guarded.execute_dialog_through_command(self, ".uno:TextAttributes") as xDialog: + xTabs = xDialog.getChild("tabcontrol") + select_pos(xTabs, "2") + colNumber = xDialog.getChild('FLD_COL_NUMBER') + colSpacing = xDialog.getChild('MTR_FLD_COL_SPACING') + self.assertEqual('1', get_state_as_dict(colNumber)['Text']) + self.assertEqual('0.00 cm', get_state_as_dict(colSpacing)['Text']) + colNumber.executeAction("SET", mkPropertyValues({"TEXT": "3"})) + colSpacing.executeAction("SET", mkPropertyValues({"TEXT": "1.5"})) + + # Test that settings persist + with guarded.execute_dialog_through_command(self, ".uno:TextAttributes") as xDialog: + xTabs = xDialog.getChild("tabcontrol") + select_pos(xTabs, "2") + colNumber = xDialog.getChild('FLD_COL_NUMBER') + colSpacing = xDialog.getChild('MTR_FLD_COL_SPACING') + self.assertEqual('3', get_state_as_dict(colNumber)['Text']) + self.assertEqual('1.50 cm', get_state_as_dict(colSpacing)['Text']) + +# vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx index 031aeca1f817..254fc46f69bb 100644 --- a/sd/qa/unit/misc-tests.cxx +++ b/sd/qa/unit/misc-tests.cxx @@ -58,6 +58,8 @@ #include <tools/gen.hxx> #include <svx/view3d.hxx> #include <svx/scene3d.hxx> +#include <svx/sdmetitm.hxx> +#include <svx/unoapi.hxx> using namespace ::com::sun::star; @@ -80,6 +82,7 @@ public: void testTdf67248(); void testTdf119956(); void testTdf120527(); + void testTextColumns(); void testTdf98839_ShearVFlipH(); void testTdf130988(); void testTdf131033(); @@ -102,6 +105,7 @@ public: CPPUNIT_TEST(testTdf67248); CPPUNIT_TEST(testTdf119956); CPPUNIT_TEST(testTdf120527); + CPPUNIT_TEST(testTextColumns); CPPUNIT_TEST(testTdf98839_ShearVFlipH); CPPUNIT_TEST(testTdf130988); CPPUNIT_TEST(testTdf131033); @@ -472,6 +476,51 @@ void SdMiscTest::testTdf120527() xDocShRef->DoClose(); } +// Testing document model part of editengine-columns +void SdMiscTest::testTextColumns() +{ + ::sd::DrawDocShellRef xDocShRef + = new ::sd::DrawDocShell(SfxObjectCreateMode::EMBEDDED, false, DocumentType::Impress); + uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier = getDoc(xDocShRef); + uno::Reference<drawing::XDrawPages> xDrawPages = xDrawPagesSupplier->getDrawPages(); + // Insert a new page. + uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->insertNewByIndex(0), + uno::UNO_SET_THROW); + uno::Reference<drawing::XShapes> xShapes(xDrawPage, uno::UNO_QUERY_THROW); + uno::Reference<lang::XMultiServiceFactory> const xDoc(xDocShRef->GetDoc()->getUnoModel(), + uno::UNO_QUERY); + + { + // Create a text shape + uno::Reference<drawing::XShape> xShape( + xDoc->createInstance("com.sun.star.drawing.TextShape"), uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropSet(xShape, uno::UNO_QUERY_THROW); + + // Add the shape to the page. + xShapes->add(xShape); + + // Set up columns + auto pTextObj = dynamic_cast<SdrTextObj*>(GetSdrObjectFromXShape(xShape)); + CPPUNIT_ASSERT(pTextObj); + pTextObj->SetMergedItem(SfxInt16Item(SDRATTR_TEXTCOLUMNS_NUMBER, 2)); + pTextObj->SetMergedItem(SdrMetricItem(SDRATTR_TEXTCOLUMNS_SPACING, 1000)); + } + + { + // Retrieve the shape and check columns + uno::Reference<container::XIndexAccess> xIndexAccess(xDrawPage, uno::UNO_QUERY_THROW); + uno::Reference<drawing::XShape> xShape(xIndexAccess->getByIndex(0), uno::UNO_QUERY_THROW); + + auto pTextObj = dynamic_cast<SdrTextObj*>(GetSdrObjectFromXShape(xShape)); + CPPUNIT_ASSERT(pTextObj); + + CPPUNIT_ASSERT_EQUAL(sal_Int16(2), pTextObj->GetTextColumnsNumber()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1000), pTextObj->GetTextColumnsSpacing()); + } + + xDocShRef->DoClose(); +} + /// Draw miscellaneous tests. // Since LO 6.2 the visible/printable/locked information for layers is always |