1
0
Fork 0
libreoffice/sc/qa/uitest/calc_tests8/navigator.py
Daniel Baumann 8e63e14cf6
Adding upstream version 4:25.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:20:04 +02:00

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: