summaryrefslogtreecommitdiff
path: root/sw/qa/uitest
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2023-04-01 21:40:49 +0200
committerLászló Németh <nemeth@numbertext.org>2023-04-02 22:54:14 +0200
commitc4a58634753a84b09f20f7271d6525a6656522d3 (patch)
tree490cb0341b1769c9d00f52120b20e85580d9a6e7 /sw/qa/uitest
parent89170bc27196f9b5a27de7bf42a43b71235676c2 (diff)
tdf#154545 sw Navigator: select & track nested bookmarks
After selecting a nested bookmark in the Navigator with double click or Enter, the selected item changed to the item of the main bookmark in the tree list. This jumping was very annoying especially with multiple nested bookmarks inside the same bookmark. Navigator didn't track nested bookmarks, i.e. it always showed the main bookmark instead of the actual nested one under the text cursor. Change-Id: Ic3f1e8321454d4ad892708e76c001da6eca30cf9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149915 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw/qa/uitest')
-rw-r--r--sw/qa/uitest/navigator/tdf154521.py10
-rw-r--r--sw/qa/uitest/navigator/tdf154545.py98
2 files changed, 102 insertions, 6 deletions
diff --git a/sw/qa/uitest/navigator/tdf154521.py b/sw/qa/uitest/navigator/tdf154521.py
index 0dca50379fab..ac3c21de3c56 100644
--- a/sw/qa/uitest/navigator/tdf154521.py
+++ b/sw/qa/uitest/navigator/tdf154521.py
@@ -38,12 +38,6 @@ class tdf154521(UITestCase):
global selectionChangedResult
with self.ui_test.create_doc_in_start_center("writer") as xDoc:
- # type "foo", and create a bookmark on it
-
- self.xUITest.executeCommand(".uno:Escape")
-
- # click on the bookmark name in the Navigator
-
xWriterDoc = self.xUITest.getTopFocusWindow()
xWriterEdit = xWriterDoc.getChild("writer_edit")
@@ -54,6 +48,10 @@ class tdf154521(UITestCase):
xToolBar = xNavigatorPanel.getChild("content5")
xToolBar.executeAction("CLICK", mkPropertyValues({"POS": "0"})) # 'root' button
+ # type "foo", and create a bookmark on it
+
+ self.xUITest.executeCommand(".uno:Escape")
+
xDoc.Text.insertString(xDoc.Text.getStart(), "foo", False)
self.xUITest.executeCommand(".uno:SelectAll")
diff --git a/sw/qa/uitest/navigator/tdf154545.py b/sw/qa/uitest/navigator/tdf154545.py
new file mode 100644
index 000000000000..718f6894a588
--- /dev/null
+++ b/sw/qa/uitest/navigator/tdf154545.py
@@ -0,0 +1,98 @@
+# -*- 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
+import unohelper
+
+class tdf154545(UITestCase):
+
+ def test_tdf154545(self):
+ global selectionChangedResult
+ with self.ui_test.create_doc_in_start_center("writer") as xDoc:
+
+ # click on the bookmark name in the Navigator
+
+ xWriterDoc = self.xUITest.getTopFocusWindow()
+ xWriterEdit = xWriterDoc.getChild("writer_edit")
+
+ self.xUITest.executeCommand(".uno:Sidebar")
+ xWriterEdit.executeAction("SIDEBAR", mkPropertyValues({"PANEL": "SwNavigatorPanel"}))
+
+ xNavigatorPanel = xWriterEdit.getChild("NavigatorPanel")
+ xToolBar = xNavigatorPanel.getChild("content5")
+ xToolBar.executeAction("CLICK", mkPropertyValues({"POS": "0"})) # 'root' button
+
+ # type "foo", and create a bookmark on it
+
+ xDoc.Text.insertString(xDoc.Text.getStart(), "foo", False)
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ with self.ui_test.execute_dialog_through_command(".uno:InsertBookmark", close_button="insert"):
+ pass
+
+ # check selected bookmark in Navigator
+
+ xWriterEdit.executeAction("FOCUS", tuple())
+
+ xContentTree = xNavigatorPanel.getChild("contenttree")
+
+ self.ui_test.wait_until_property_is_updated(xContentTree, "SelectEntryText", "Bookmark 1")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectEntryText"], "Bookmark 1")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectionCount"], "1")
+
+ self.xUITest.executeCommand(".uno:Escape")
+
+ # create a nested bookmark on the last "o"
+
+ cursor = xDoc.getCurrentController().getViewCursor()
+ cursor.goLeft(1, True)
+
+ with self.ui_test.execute_dialog_through_command(".uno:InsertBookmark", close_button="insert"):
+ pass
+
+ self.xUITest.executeCommand(".uno:Escape")
+
+ # check selected nested bookmark in Navigator
+
+ # This never occured: Navigator didn't track nested bookmarks
+ self.ui_test.wait_until_property_is_updated(xContentTree, "SelectEntryText", "Bookmark 2")
+ # This was Bookmark 1
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectEntryText"], "Bookmark 2")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectionCount"], "1")
+
+ # Select nested bookmark in Navigator
+
+ xContentTree.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"}))
+
+ # This jumped to Bookmark 1 after selection
+ self.ui_test.wait_until_property_is_updated(xContentTree, "SelectEntryText", "Bookmark 2")
+ # This was Bookmark 1
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectEntryText"], "Bookmark 2")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectionCount"], "1")
+
+ # Try the same selection with Bookmark 1
+ xContentTree.executeAction("TYPE", mkPropertyValues({"KEYCODE": "UP"}))
+ self.ui_test.wait_until_property_is_updated(xContentTree, "SelectEntryText", "Bookmark 1")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectEntryText"], "Bookmark 1")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectionCount"], "1")
+ xContentTree.executeAction("TYPE", mkPropertyValues({"KEYCODE": "RETURN"}))
+ self.ui_test.wait_until_property_is_updated(xContentTree, "SelectEntryText", "Bookmark 1")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectEntryText"], "Bookmark 1")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectionCount"], "1")
+
+ # go to the previous item
+ xContentTree.executeAction("TYPE", mkPropertyValues({"KEYCODE": "UP"}))
+ self.ui_test.wait_until_property_is_updated(xContentTree, "SelectEntryText", "Bookmarks")
+ self.assertEqual(get_state_as_dict(xContentTree)["SelectEntryText"], "Bookmarks")
+
+ self.xUITest.executeCommand(".uno:Sidebar")
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab: