diff options
Diffstat (limited to 'uitest/libreoffice/calc')
-rw-r--r-- | uitest/libreoffice/calc/conditional_format.py | 17 | ||||
-rw-r--r-- | uitest/libreoffice/calc/csv_dialog.py | 52 | ||||
-rw-r--r-- | uitest/libreoffice/calc/document.py | 63 |
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: |