summaryrefslogtreecommitdiffstats
path: root/uitest/libreoffice/calc
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/libreoffice/calc')
-rw-r--r--uitest/libreoffice/calc/conditional_format.py17
-rw-r--r--uitest/libreoffice/calc/csv_dialog.py52
-rw-r--r--uitest/libreoffice/calc/document.py63
3 files changed, 132 insertions, 0 deletions
diff --git a/uitest/libreoffice/calc/conditional_format.py b/uitest/libreoffice/calc/conditional_format.py
new file mode 100644
index 000000000..40e766943
--- /dev/null
+++ b/uitest/libreoffice/calc/conditional_format.py
@@ -0,0 +1,17 @@
+# -*- 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/.
+#
+
+# this file provides methods to interact with the new conditional format API
+
+def get_conditional_format_from_sheet(sheet):
+ """ Returns a conditional format object belonging to a sheet
+
+ Keyword arguments:
+ sheet -- a XSheet object"""
+ return sheet.getPropertyValue("ConditionalFormats")
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/uitest/libreoffice/calc/csv_dialog.py b/uitest/libreoffice/calc/csv_dialog.py
new file mode 100644
index 000000000..e15eea1a7
--- /dev/null
+++ b/uitest/libreoffice/calc/csv_dialog.py
@@ -0,0 +1,52 @@
+# -*- 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.uihelper.common import get_state_as_dict, get_url_for_data_file
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from contextlib import contextmanager
+
+@contextmanager
+def load_csv_file(UITestCase, fileName, bUseDefaultOptions):
+ with UITestCase.ui_test.execute_dialog_through_command(".uno:Open", close_button="open") as xOpenDialog:
+
+ xFileName = xOpenDialog.getChild("file_name")
+ xFileName.executeAction("TYPE", mkPropertyValues({"TEXT": get_url_for_data_file(fileName)}))
+
+ xDialog = UITestCase.ui_test.wait_for_top_focus_window('TextImportCsvDialog')
+
+ try:
+ if bUseDefaultOptions:
+ xSeparatedBy = xDialog.getChild("toseparatedby")
+ xSeparatedBy.executeAction("CLICK", tuple())
+
+ xTextDelimiter = xDialog.getChild("textdelimiter")
+ xTextDelimiter.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
+ xTextDelimiter.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+ xTextDelimiter.executeAction("TYPE", mkPropertyValues({"TEXT": "\""}))
+
+ setToTrue = ['tab', 'comma', 'semicolon']
+ for childName in setToTrue:
+ xChild = xDialog.getChild(childName)
+ if get_state_as_dict(xChild)['Selected'] == 'false':
+ xChild.executeAction("CLICK", tuple())
+ UITestCase.assertEqual('true', get_state_as_dict(xChild)['Selected'])
+
+ setToFalse = ['space', 'other', 'removespace', 'mergedelimiters',
+ 'evaluateformulas', 'quotedfieldastext', 'detectspecialnumbers']
+ for childName in setToFalse:
+ xChild = xDialog.getChild(childName)
+ if get_state_as_dict(xChild)['Selected'] == 'true':
+ xChild.executeAction("CLICK", tuple())
+ UITestCase.assertEqual('false', get_state_as_dict(xChild)['Selected'])
+
+ UITestCase.assertEqual('1', get_state_as_dict(xDialog.getChild("fromrow"))['Text'])
+
+ yield xDialog
+ finally:
+ xOK = xDialog.getChild('ok')
+ with UITestCase.ui_test.wait_until_component_loaded():
+ UITestCase.ui_test.close_dialog_through_button(xOK)
diff --git a/uitest/libreoffice/calc/document.py b/uitest/libreoffice/calc/document.py
new file mode 100644
index 000000000..40a2ec635
--- /dev/null
+++ b/uitest/libreoffice/calc/document.py
@@ -0,0 +1,63 @@
+# -*- 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/.
+#
+
+def get_sheet_from_doc(document, index=None, name=None):
+ """ Returns a sheet object for a Spreadsheet document
+
+ Keyword arguments:
+ index -- the 0-based index of the sheet (may not be used together with name)
+ name -- the name of the sheet (may not be used together with index)
+ """
+ return document.getSheets().getByIndex(index)
+
+def get_cell_by_position(document, tab, column, row):
+ """ Get the cell object through its position in a document
+
+ Keyword arguments:
+ document -- The document that should be used
+ tab -- The 0-based sheet number
+ column -- The 0-based column number
+ row -- The 0-based row number
+ """
+ sheet = get_sheet_from_doc(document, tab)
+ return sheet.getCellByPosition(column, row)
+
+def get_column(document, column, tab = 0):
+ """ Get the column object through the column index
+
+ Keyword arguments:
+ document -- The document that should be used
+ tab -- The 0-based sheet number
+ column -- The 0-based column number
+ """
+ sheet = get_sheet_from_doc(document, tab)
+ return sheet.getColumns().getByIndex(column)
+
+def get_row(document, row, tab = 0):
+ """ Get the row object through the row index
+
+ Keyword arguments:
+ document -- The document that should be used
+ tab -- The 0-based sheet number
+ column -- The 0-based row number
+ """
+ sheet = get_sheet_from_doc(document, tab)
+ return sheet.getRows().getByIndex(row)
+
+def is_row_hidden(document, row, tab = 0):
+ """ Check whether a row object is hidden
+
+ Keyword arguments:
+ document -- The document that should be used
+ tab -- The 0-based sheet number
+ column -- The 0-based row number
+ """
+ xRow = get_row(document, row, tab)
+ bVisible = xRow.getPropertyValue("IsVisible")
+ return not bVisible
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab: