diff options
Diffstat (limited to 'sc/qa/uitest/calc_tests2/consolidate.py')
-rw-r--r-- | sc/qa/uitest/calc_tests2/consolidate.py | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/sc/qa/uitest/calc_tests2/consolidate.py b/sc/qa/uitest/calc_tests2/consolidate.py new file mode 100644 index 0000000000..19da793c08 --- /dev/null +++ b/sc/qa/uitest/calc_tests2/consolidate.py @@ -0,0 +1,106 @@ +# -*- 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.framework import UITestCase +from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file +from uitest.uihelper.common import select_by_text +from libreoffice.calc.document import get_cell_by_position +from libreoffice.uno.propertyvalue import mkPropertyValues + +class consolidate(UITestCase): + def test_consolidate(self): + with self.ui_test.load_file(get_url_for_data_file("consolidate.ods")) as calc_doc: + with self.ui_test.execute_modeless_dialog_through_command(".uno:DataConsolidate") as xDialog: + xfunc = xDialog.getChild("func") + xlbdataarea = xDialog.getChild("lbdataarea") + xadd = xDialog.getChild("add") + xbyrow = xDialog.getChild("byrow") + xbycol = xDialog.getChild("bycol") + xeddestarea = xDialog.getChild("eddestarea") + + select_by_text(xfunc, "Sum") + + select_by_text(xlbdataarea, "range1") + xadd.executeAction("CLICK", tuple()) + select_by_text(xlbdataarea, "range2") + xadd.executeAction("CLICK", tuple()) + propsC = {"TEXT": "range3"} + actionPropsC = mkPropertyValues(propsC) + xlbdataarea.executeAction("SELECT", actionPropsC) + xadd.executeAction("CLICK", tuple()) + xbyrow.executeAction("CLICK", tuple()) + xbycol.executeAction("CLICK", tuple()) + xeddestarea.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"})) + xeddestarea.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"})) + xeddestarea.executeAction("TYPE", mkPropertyValues({"TEXT":"$Total.$A$2"})) + + #verify + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 2).getValue(), 300) + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 3).getValue(), 303) + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 4).getValue(), 306) + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 5).getValue(), 309) + + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 2).getValue(), 303) + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 3).getValue(), 306) + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 4).getValue(), 309) + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 5).getValue(), 312) + + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 2).getValue(), 306) + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 3).getValue(), 309) + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 4).getValue(), 312) + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 5).getValue(), 315) + + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 2).getValue(), 309) + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 3).getValue(), 312) + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 4).getValue(), 315) + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 5).getValue(), 318) + #verify dialog + with self.ui_test.execute_modeless_dialog_through_command(".uno:DataConsolidate") as xDialog: + xfunc = xDialog.getChild("func") + xlbdataarea = xDialog.getChild("lbdataarea") + xdelete = xDialog.getChild("delete") + xbyrow = xDialog.getChild("byrow") + xbycol = xDialog.getChild("bycol") + xeddestarea = xDialog.getChild("eddestarea") + xconsareas = xDialog.getChild("consareas") + self.assertEqual(get_state_as_dict(xfunc)["SelectEntryText"], "Sum") + self.assertEqual(get_state_as_dict(xconsareas)["Children"], "3") + self.assertEqual(get_state_as_dict(xeddestarea)["Text"], "$Total.$A$2") + self.assertEqual(get_state_as_dict(xbyrow)["Selected"], "true") + self.assertEqual(get_state_as_dict(xbycol)["Selected"], "true") + #delete first range + xFirstEntry = xconsareas.getChild("0") + xFirstEntry.executeAction("SELECT", tuple()) + xdelete.executeAction("CLICK", tuple()) + self.assertEqual(get_state_as_dict(xconsareas)["Children"], "2") + + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 2).getValue(), 200) + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 3).getValue(), 202) + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 4).getValue(), 204) + self.assertEqual(get_cell_by_position(calc_doc, 0, 1, 5).getValue(), 206) + + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 2).getValue(), 202) + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 3).getValue(), 204) + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 4).getValue(), 206) + self.assertEqual(get_cell_by_position(calc_doc, 0, 2, 5).getValue(), 208) + + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 2).getValue(), 204) + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 3).getValue(), 206) + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 4).getValue(), 208) + self.assertEqual(get_cell_by_position(calc_doc, 0, 3, 5).getValue(), 210) + + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 2).getValue(), 206) + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 3).getValue(), 208) + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 4).getValue(), 210) + self.assertEqual(get_cell_by_position(calc_doc, 0, 4, 5).getValue(), 212) + + # test cancel button + with self.ui_test.execute_modeless_dialog_through_command(".uno:DataConsolidate", close_button="cancel"): + pass + +# vim: set shiftwidth=4 softtabstop=4 expandtab: |