# -*- 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')"))
# vim: set shiftwidth=4 softtabstop=4 expandtab:
Messung V0.5
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet)
¤
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.