summaryrefslogtreecommitdiff
path: root/sw/qa/uitest/writer_tests7
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2022-08-18 12:00:32 +0200
committerLászló Németh <nemeth@numbertext.org>2022-08-19 08:39:15 +0200
commitf4668540ff7256bb0ddd382dfaf9f3499e99128a (patch)
tree26bce383a24f072e4482dbc04bd01a1b3731f8e1 /sw/qa/uitest/writer_tests7
parent5ac75131556b687a01517ce4520a05bb49c1d840 (diff)
tdf#150443 sw: fix crash of rejecting table row deletion
Joining "Delete" redlines of deleted table row with overlapping tracked formatting change with same time stamp resulted bad tree parent in Manage Changes dialog window (tracked formatting change instead of tracked deletion, see its pencil icon before this fix), crashing at its rejection. Regression from commit eebe4747d2d13545004937bb0267ccfc8ab9d63f "tdf#144270 sw: manage tracked table (row) deletion/insertion". Change-Id: Ia0f0b1fdff96f4acbe14025f8016e39ce95c7f09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138474 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw/qa/uitest/writer_tests7')
-rw-r--r--sw/qa/uitest/writer_tests7/tdf150443.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/sw/qa/uitest/writer_tests7/tdf150443.py b/sw/qa/uitest/writer_tests7/tdf150443.py
new file mode 100644
index 000000000000..8cca7c78e6c8
--- /dev/null
+++ b/sw/qa/uitest/writer_tests7/tdf150443.py
@@ -0,0 +1,46 @@
+# -*- 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 uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
+from libreoffice.uno.propertyvalue import mkPropertyValues
+
+class tdf150443(UITestCase):
+
+ def test_tdf150443(self):
+ with self.ui_test.load_file(get_url_for_data_file("tdf150443.docx")) as document:
+ xWriterDoc = self.xUITest.getTopFocusWindow()
+ xWriterEdit = xWriterDoc.getChild("writer_edit")
+ xToolkit = self.xContext.ServiceManager.createInstance('com.sun.star.awt.Toolkit')
+
+ # search term "Jump here!"
+ with self.ui_test.execute_modeless_dialog_through_command(".uno:SearchDialog", close_button="close") as xDialog:
+ searchterm = xDialog.getChild("searchterm")
+ searchterm.executeAction("TYPE", mkPropertyValues({"TEXT":"Jump here!"}))
+ xsearch = xDialog.getChild("search")
+ xsearch.executeAction("CLICK", tuple()) #first search
+ xToolkit.processEventsToIdle()
+ self.assertEqual(get_state_as_dict(xWriterEdit)["CurrentPage"], "4")
+
+ # reject the tracked table row in Manage Changes dialog window
+ with self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptTrackedChanges", close_button="close") as xTrackDlg:
+ changesList = xTrackDlg.getChild("writerchanges")
+
+ items = len(changesList.getChildren())
+
+ # select tree parent of the actual tracked row deletion in tree list
+ changesList.executeAction("TYPE", mkPropertyValues({"KEYCODE": "LEFT"}))
+ xToolkit.processEventsToIdle()
+
+ # Without the fix in place, it would have crashed here
+ xAccBtn = xTrackDlg.getChild("reject")
+ xAccBtn.executeAction("CLICK", tuple())
+ self.assertEqual(items - 1, len(changesList.getChildren()))
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab: