# -*- 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/. #
# tests for tracked changes ; tdf912270
from uitest.framework import UITestCase from libreoffice.calc.document import get_cell_by_position from libreoffice.uno.propertyvalue import mkPropertyValues from uitest.uihelper.calc import enter_text_to_cell from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file import datetime
class CalcTrackedChanges(UITestCase):
def test_tdf131907(self): with self.ui_test.load_file(get_url_for_data_file("tdf131907.ods")): with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptChanges", close_button="close") as xTrackDlg:
with self.ui_test.create_doc_in_start_center("calc") as document:
self.ui_test.wait_until_child_is_available("grid_window")
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window") #track changes; enter text to cell
self.xUITest.executeCommand(".uno:TraceChangeMode")
enter_text_to_cell(gridwin, "A1", "Hello")
enter_text_to_cell(gridwin, "A1", "There")
with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptChanges", close_button="close") as xTrackDlg:
with self.ui_test.create_doc_in_start_center("calc"):
self.ui_test.wait_until_child_is_available("grid_window")
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window") #track changes; enter text to cell
self.xUITest.executeCommand(".uno:TraceChangeMode")
enter_text_to_cell(gridwin, "A1", "Hello")
# Without the fix in place, this test would have failed here
self.assertTrue(get_state_as_dict(xChild)["Text"].startswith(textStart))
self.assertTrue(get_state_as_dict(xChild)["Text"].endswith(textEnd))
xChild.executeAction("EXPAND", tuple())
self.assertEqual(1, len(xChild.getChildren()))
textStartChild1 = "Changed contents\t(Sheet1.A1)\tUnknown Author\t" + datetime.datetime.now().strftime("%m/%d/%Y")
textEndChild1 = "(Cell (A1) changed from '' to 'Hello')"
with self.ui_test.create_doc_in_start_center("calc") as document:
self.ui_test.wait_until_child_is_available("grid_window")
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window") #track changes; enter text to cell
self.xUITest.executeCommand(".uno:TraceChangeMode")
enter_text_to_cell(gridwin, "A1", "Test LibreOffice")
enter_text_to_cell(gridwin, "A2", "Test LibreOffice") #accept tracked changes with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptChanges", close_button="close") as xTrackDlg:
with self.ui_test.create_doc_in_start_center("calc") as document:
self.ui_test.wait_until_child_is_available("grid_window")
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window") #track changes; enter text to cell
self.xUITest.executeCommand(".uno:TraceChangeMode")
enter_text_to_cell(gridwin, "A1", "Test LibreOffice")
enter_text_to_cell(gridwin, "A2", "Test LibreOffice") #accept All tracked changes with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptChanges", close_button="close") as xTrackDlg:
with self.ui_test.create_doc_in_start_center("calc") as document:
self.ui_test.wait_until_child_is_available("grid_window")
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window") #track changes; enter text to cell
self.xUITest.executeCommand(".uno:TraceChangeMode")
enter_text_to_cell(gridwin, "A1", "Test LibreOffice")
enter_text_to_cell(gridwin, "A2", "Test LibreOffice") #accept tracked changes with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptChanges", close_button="close") as xTrackDlg:
with self.ui_test.create_doc_in_start_center("calc") as document:
self.ui_test.wait_until_child_is_available("grid_window")
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window") #track changes; enter text to cell
self.xUITest.executeCommand(".uno:TraceChangeMode")
enter_text_to_cell(gridwin, "A1", "Test LibreOffice")
enter_text_to_cell(gridwin, "A2", "Test LibreOffice") #accept tracked changes with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptChanges", close_button="close") as xTrackDlg:
# Without the fix in place, it would have failed with # AssertionError: 'R~eject All' != 'R~eject All/Clear formatting'
self.assertEqual('R~eject All', get_state_as_dict(xRejectAllBtn)['Text'])
self.assertEqual('~Reject', get_state_as_dict(xRejectBtn)['Text'])
self.assertEqual('A~ccept All', get_state_as_dict(xAcceptAllBtn)['Text'])
self.assertEqual('~Accept', get_state_as_dict(xAcceptBtn)['Text'])
def test_tdf85353(self): with self.ui_test.create_doc_in_start_center("calc"):
xCalcDoc = self.xUITest.getTopFocusWindow()
gridwin = xCalcDoc.getChild("grid_window")
with self.ui_test.execute_dialog_through_command(".uno:CompareDocuments", close_button="") as xOpenDialog:
xFileName = xOpenDialog.getChild("file_name")
xFileName.executeAction("TYPE", mkPropertyValues({"TEXT": get_url_for_data_file("tdf85353.ods")}))
xOpenBtn = xOpenDialog.getChild("open")
with self.ui_test.execute_dialog_through_action(xOpenBtn, 'CLICK', close_button="close") as xTrackDlg:
changesList = xTrackDlg.getChild("calcchanges")
# Without the fix in place, this test would have failed with # AssertionError: 1 != 0
self.assertEqual(1, len(changesList.getChildren()))
self.assertTrue(get_state_as_dict(changesList.getChild('0'))['Text'].startswith("Changed contents\tSheet1.E1"))
self.assertTrue(get_state_as_dict(changesList.getChild('0'))['Text'].endswith("(Cell E1 changed from '5' to '0')"))
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.