214 lines
10 KiB
Python
214 lines
10 KiB
Python
# -*- 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 libreoffice.uno.propertyvalue import mkPropertyValues
|
|
from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
|
|
from uitest.uihelper.calc import enter_text_to_cell
|
|
|
|
class navigator(UITestCase):
|
|
|
|
def test_rename_sheet(self):
|
|
with self.ui_test.load_file(get_url_for_data_file("navigator.ods")):
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xGridWin = xCalcDoc.getChild("grid_window")
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
xGridWin.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "ScNavigatorPanel"}))
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xContentBox = xNavigatorPanel.getChild('contentbox')
|
|
xSheets = xContentBox.getChild("0")
|
|
self.assertEqual(get_state_as_dict(xSheets)['Text'], 'Sheets')
|
|
self.assertEqual(len(xSheets.getChildren()), 2)
|
|
self.assertEqual(get_state_as_dict(xSheets.getChild('0'))['Text'], 'Sheet1')
|
|
self.assertEqual(get_state_as_dict(xSheets.getChild('1'))['Text'], 'S2')
|
|
xRangeNames = xContentBox.getChild("1")
|
|
self.assertEqual(get_state_as_dict(xRangeNames)['Text'], 'Range names')
|
|
self.assertEqual(len(xRangeNames.getChildren()), 2)
|
|
self.assertEqual(get_state_as_dict(xRangeNames.getChild('0'))['Text'], 'first (Sheet1)')
|
|
self.assertEqual(get_state_as_dict(xRangeNames.getChild('1'))['Text'], 'second (Sheet1)')
|
|
|
|
#The document has one comment too
|
|
xComments = xContentBox.getChild("6")
|
|
self.assertEqual(get_state_as_dict(xComments)['Text'], 'Comments')
|
|
self.assertEqual(len(xComments.getChildren()), 1)
|
|
self.assertEqual(get_state_as_dict(xComments.getChild('0'))['Text'], 'Test Comment')
|
|
|
|
with self.ui_test.execute_dialog_through_command(".uno:RenameTable") as xDialog:
|
|
xname_entry = xDialog.getChild("name_entry")
|
|
xname_entry.executeAction("TYPE", mkPropertyValues({"TEXT": "S1"}))
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xContentBox = xNavigatorPanel.getChild('contentbox')
|
|
xSheets = xContentBox.getChild("0")
|
|
self.assertEqual(get_state_as_dict(xSheets)['Text'], 'Sheets')
|
|
self.assertEqual(len(xSheets.getChildren()), 2)
|
|
self.assertEqual(get_state_as_dict(xSheets.getChild('0'))['Text'], 'S1')
|
|
self.assertEqual(get_state_as_dict(xSheets.getChild('1'))['Text'], 'S2')
|
|
xRangeNames = xContentBox.getChild("1")
|
|
self.assertEqual(get_state_as_dict(xRangeNames)['Text'], 'Range names')
|
|
self.assertEqual(len(xRangeNames.getChildren()), 2)
|
|
self.assertEqual(get_state_as_dict(xRangeNames.getChild('0'))['Text'], 'first (S1)')
|
|
self.assertEqual(get_state_as_dict(xRangeNames.getChild('1'))['Text'], 'second (S1)')
|
|
|
|
self.xUITest.executeCommand(".uno:Undo")
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xContentBox = xNavigatorPanel.getChild('contentbox')
|
|
xSheets = xContentBox.getChild("0")
|
|
self.assertEqual(get_state_as_dict(xSheets)['Text'], 'Sheets')
|
|
self.assertEqual(len(xSheets.getChildren()), 2)
|
|
self.assertEqual(get_state_as_dict(xSheets.getChild('0'))['Text'], 'Sheet1')
|
|
self.assertEqual(get_state_as_dict(xSheets.getChild('1'))['Text'], 'S2')
|
|
xRangeNames = xContentBox.getChild("1")
|
|
self.assertEqual(get_state_as_dict(xRangeNames)['Text'], 'Range names')
|
|
self.assertEqual(len(xRangeNames.getChildren()), 2)
|
|
#FIXME: tdf#133082
|
|
#self.assertEqual(get_state_as_dict(xRangeNames.getChild('0'))['Text'], 'first (Sheet1)')
|
|
#self.assertEqual(get_state_as_dict(xRangeNames.getChild('1'))['Text'], 'second (Sheet1)')
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
def test_tdf98493(self):
|
|
|
|
with self.ui_test.load_file(get_url_for_data_file("tdf98493.ods")):
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xGridWin = xCalcDoc.getChild("grid_window")
|
|
|
|
self.assertEqual(get_state_as_dict(xGridWin)["SelectedTable"], "2")
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
xGridWin.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "ScNavigatorPanel"}))
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xToolBar = xNavigatorPanel.getChild("toolbox2")
|
|
xToolBar.executeAction("CLICK", mkPropertyValues({"POS": "0"})) # 'toggle' button
|
|
|
|
xContentBox = xNavigatorPanel.getChild('contentbox')
|
|
|
|
# tdf#133079, without the fix in place, it would be 8
|
|
self.assertEqual(len(xContentBox.getChildren()), 1)
|
|
|
|
xSheets = xContentBox.getChild('0')
|
|
self.assertEqual(len(xSheets.getChildren()), 12)
|
|
|
|
#key=item position, value=sheet ( there are hidden sheets )
|
|
results = { '1': '0', '5': '4', '6': '4', '11': '10'}
|
|
|
|
for k, v in results.items():
|
|
xChild = xSheets.getChild(k)
|
|
xChild.executeAction("DOUBLECLICK", tuple())
|
|
|
|
self.assertEqual(get_state_as_dict(xGridWin)["SelectedTable"], v)
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
|
|
def test_tdf134390(self):
|
|
with self.ui_test.create_doc_in_start_center("calc"):
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xGridWin = xCalcDoc.getChild("grid_window")
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
xGridWin.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "ScNavigatorPanel"}))
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xToolBar = xNavigatorPanel.getChild("toolbox2")
|
|
xToolBar.executeAction("CLICK", mkPropertyValues({"POS": "0"})) # 'toggle' button
|
|
|
|
xRow = xNavigatorPanel.getChild('row')
|
|
xColumn = xNavigatorPanel.getChild('column')
|
|
|
|
self.assertEqual(get_state_as_dict(xColumn)['Value'], '1')
|
|
self.assertEqual(get_state_as_dict(xRow)['Value'], '1')
|
|
self.assertEqual(get_state_as_dict(xGridWin)["CurrentRow"], "0")
|
|
self.assertEqual(get_state_as_dict(xGridWin)["CurrentColumn"], "0")
|
|
|
|
xToolkit = self.xContext.ServiceManager.createInstance('com.sun.star.awt.Toolkit')
|
|
|
|
xColumn.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
|
|
xColumn.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
|
|
xColumn.executeAction("TYPE", mkPropertyValues({"TEXT":"B"}))
|
|
xColumn.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
|
|
xToolkit.processEventsToIdle()
|
|
# disable flakey UITest
|
|
# self.assertEqual(get_state_as_dict(xColumn)['Value'], '2')
|
|
|
|
xRow.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+A"}))
|
|
xRow.executeAction("TYPE", mkPropertyValues({"KEYCODE":"BACKSPACE"}))
|
|
xRow.executeAction("TYPE", mkPropertyValues({"TEXT":"2"}))
|
|
xRow.executeAction("TYPE", mkPropertyValues({"KEYCODE":"RETURN"}))
|
|
xToolkit.processEventsToIdle()
|
|
self.assertEqual(get_state_as_dict(xRow)['Value'], '2')
|
|
|
|
# Without the fix in place, this test would have failed with
|
|
# AssertionError: '0' != '1'
|
|
self.assertEqual(get_state_as_dict(xGridWin)["CurrentRow"], "1")
|
|
# disable flaky test
|
|
# self.assertEqual(get_state_as_dict(xGridWin)["CurrentColumn"], "1")
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
|
|
def test_tdf141973(self):
|
|
with self.ui_test.load_file(get_url_for_data_file("tdf141973.ods")):
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xGridWin = xCalcDoc.getChild("grid_window")
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
# Without the fix in place, this test would have crashed here
|
|
xGridWin.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "ScNavigatorPanel"}))
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xContentBox = xNavigatorPanel.getChild('contentbox')
|
|
xDrawings = xContentBox.getChild("7")
|
|
self.assertEqual('Drawing objects', get_state_as_dict(xDrawings)['Text'])
|
|
self.assertEqual(len(xDrawings.getChildren()), 1)
|
|
self.assertEqual('withname', get_state_as_dict(xDrawings.getChild('0'))['Text'])
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
|
|
def test_tdf158652(self):
|
|
with self.ui_test.create_doc_in_start_center("calc"):
|
|
xToolkit = self.xContext.ServiceManager.createInstance('com.sun.star.awt.Toolkit')
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xGridWin = xCalcDoc.getChild("grid_window")
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
xGridWin.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "ScNavigatorPanel"}))
|
|
|
|
xCalcDoc = self.xUITest.getTopFocusWindow()
|
|
xNavigatorPanel = xCalcDoc.getChild("NavigatorPanel")
|
|
xContentBox = xNavigatorPanel.getChild('contentbox')
|
|
enter_text_to_cell(xGridWin, "A1", "1")
|
|
|
|
commentText = mkPropertyValues({"Text":"CommentText"})
|
|
self.xUITest.executeCommandWithParameters(".uno:InsertAnnotation", commentText)
|
|
xToolkit.waitUntilAllIdlesDispatched()
|
|
xComments = xContentBox.getChild("6")
|
|
self.assertEqual(len(xComments.getChildren()), 1)
|
|
|
|
self.xUITest.executeCommand(".uno:DeleteNote")
|
|
xToolkit.waitUntilAllIdlesDispatched()
|
|
xComments = xContentBox.getChild("6")
|
|
self.assertEqual(len(xComments.getChildren()), 0)
|
|
|
|
self.xUITest.executeCommand(".uno:Sidebar")
|
|
|
|
# vim: set shiftwidth=4 softtabstop=4 expandtab:
|