diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2021-11-15 21:07:01 +0100 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2021-11-15 22:32:54 +0100 |
commit | 35d9d085436e159bdeb6cba9c94865d6346af530 (patch) | |
tree | 0aa24e70b0eda6512d1bbacec98a5bed50b6e804 /sc | |
parent | d405d73c60d9a86631f592ba4b4cc97ee43fec38 (diff) |
uitest: sc: add support for pivot table popup
Change-Id: Id990178051e81a81bf6f6a0fb920473d3ee21fff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125259
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/qa/uitest/calc_tests9/pivotTable.py | 35 | ||||
-rw-r--r-- | sc/qa/uitest/data/pivotTable.ods | bin | 0 -> 9815 bytes | |||
-rw-r--r-- | sc/source/ui/uitest/uiobject.cxx | 19 |
3 files changed, 53 insertions, 1 deletions
diff --git a/sc/qa/uitest/calc_tests9/pivotTable.py b/sc/qa/uitest/calc_tests9/pivotTable.py index b7a4fd328b2a..559073ab0507 100644 --- a/sc/qa/uitest/calc_tests9/pivotTable.py +++ b/sc/qa/uitest/calc_tests9/pivotTable.py @@ -7,10 +7,11 @@ from uitest.framework import UITestCase from libreoffice.uno.propertyvalue import mkPropertyValues from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file +from libreoffice.calc.document import get_cell_by_position class pivotTable(UITestCase): - def test_cancelButton(self): + def test_cancelButton(self): # This is basically a test for cf93998eb5abc193d95ae5433bf4dfd11a9d62d8 # Without the fix in place, this test would have crashed @@ -60,4 +61,36 @@ class pivotTable(UITestCase): self.assertEqual('true', get_state_as_dict(xEmptyLine)['Selected']) + def test_popup(self): + with self.ui_test.load_file(get_url_for_data_file("pivotTable.ods")) as calc_doc: + + xCalcDoc = self.xUITest.getTopFocusWindow() + gridwin = xCalcDoc.getChild("grid_window") + + self.assertEqual("a", get_cell_by_position(calc_doc, 0, 3, 1).getString()) + self.assertEqual("b", get_cell_by_position(calc_doc, 0, 3, 2).getString()) + self.assertEqual("m", get_cell_by_position(calc_doc, 0, 4, 1).getString()) + self.assertEqual("n", get_cell_by_position(calc_doc, 0, 4, 2).getString()) + self.assertEqual("1", get_cell_by_position(calc_doc, 0, 5, 1).getString()) + self.assertEqual("1", get_cell_by_position(calc_doc, 0, 5, 2).getString()) + + gridwin.executeAction("LAUNCH", mkPropertyValues({"PIVOTTABLE": "", "COL": "3", "ROW": "0"})) + xFloatWindow = self.xUITest.getFloatWindow() + xCheckListMenu = xFloatWindow.getChild("check_list_menu") + + xTreeList = xCheckListMenu.getChild("check_list_box") + xFirstEntry = xTreeList.getChild("0") + + xFirstEntry.executeAction("CLICK", tuple()) + + xOkBtn = xFloatWindow.getChild("ok") + xOkBtn.executeAction("CLICK", tuple()) + + self.assertEqual("b", get_cell_by_position(calc_doc, 0, 3, 1).getString()) + self.assertEqual("Total Result", get_cell_by_position(calc_doc, 0, 3, 2).getString()) + self.assertEqual("n", get_cell_by_position(calc_doc, 0, 4, 1).getString()) + self.assertEqual("", get_cell_by_position(calc_doc, 0, 4, 2).getString()) + self.assertEqual("1", get_cell_by_position(calc_doc, 0, 5, 1).getString()) + self.assertEqual("1", get_cell_by_position(calc_doc, 0, 5, 2).getString()) + # vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sc/qa/uitest/data/pivotTable.ods b/sc/qa/uitest/data/pivotTable.ods Binary files differnew file mode 100644 index 000000000000..cbb773857605 --- /dev/null +++ b/sc/qa/uitest/data/pivotTable.ods diff --git a/sc/source/ui/uitest/uiobject.cxx b/sc/source/ui/uitest/uiobject.cxx index d93da2619a77..14e464c0bf20 100644 --- a/sc/source/ui/uitest/uiobject.cxx +++ b/sc/source/ui/uitest/uiobject.cxx @@ -234,6 +234,25 @@ void ScGridWinUIObject::execute(const OUString& rAction, SCCOL nCol = itrCol->second.toUInt32(); mxGridWindow->LaunchAutoFilterMenu(nCol, nRow); } + else if ( rParameters.find("PIVOTTABLE") != rParameters.end()) + { + auto itrCol = rParameters.find("COL"); + if (itrCol == rParameters.end()) + { + SAL_WARN("sc.uitest", "missing COL parameter"); + return; + } + + auto itrRow = rParameters.find("ROW"); + if (itrRow == rParameters.end()) + { + SAL_WARN("sc.uitest", "missing ROW parameter"); + return; + } + SCROW nRow = itrRow->second.toUInt32(); + SCCOL nCol = itrCol->second.toUInt32(); + mxGridWindow->LaunchDPFieldMenu(nCol, nRow); + } else if ( rParameters.find("SELECTMENU") != rParameters.end()) { auto itrCol = rParameters.find("COL"); |