sw/qa/uitest/navigator/tdf134960.py |   68 ++++++++++++++++++++++++++++--------
 1 file changed, 53 insertions(+), 15 deletions(-)

New commits:
commit 45dee329c30f5548b0ba57cc1457c73f2fc870a3
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Jan 13 19:03:24 2022 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Thu Jan 13 21:33:02 2022 +0100

    tdf#134960: sw: Add test for multi-page view
    
    Change-Id: Id3292de4eca6ab72d5116b967a619f78ab96082b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128391
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/qa/uitest/navigator/tdf134960.py 
b/sw/qa/uitest/navigator/tdf134960.py
index 7d349fa03ed2..de5da775986c 100644
--- a/sw/qa/uitest/navigator/tdf134960.py
+++ b/sw/qa/uitest/navigator/tdf134960.py
@@ -12,32 +12,70 @@ from uitest.uihelper.common import get_state_as_dict, 
get_url_for_data_file
 
 class tdf134960_hyperlinks(UITestCase):
 
+    def launch_sidebar(self, xWriterEdit):
+
+        self.xUITest.executeCommand(".uno:Sidebar")
+
+        xWriterEdit.executeAction("SIDEBAR", mkPropertyValues({"PANEL": 
"SwNavigatorPanel"}))
+
+        # wait until the navigator panel is available
+        xNavigatorPanel = 
self.ui_test.wait_until_child_is_available('NavigatorPanel')
+
+        xContentTree = xNavigatorPanel.getChild("contenttree")
+        xHyperlinks = xContentTree.getChild('7')
+        self.assertEqual('Hyperlinks', get_state_as_dict(xHyperlinks)['Text'])
+
+        xHyperlinks.executeAction("EXPAND", tuple())
+
+        expectedHyperlinksOrder = [1, 2, 8, 9, 7, 10, 11, 3, 12, 4, 5, 6]
+        for i in range(12):
+            self.assertEqual('Hyperlink ' + str(expectedHyperlinksOrder[i]), 
get_state_as_dict(xHyperlinks.getChild(str(i)))['Text'])
+
+        xHyperlinks.executeAction("COLLAPSE", tuple())
+
+        self.xUITest.executeCommand(".uno:Sidebar")
+
     def test_tdf134960_hyperlinks(self):
 
         with self.ui_test.load_file(get_url_for_data_file("tdf134960.odt")) as 
writer_doc:
+            xWriterDoc = self.xUITest.getTopFocusWindow()
+            xWriterEdit = xWriterDoc.getChild("writer_edit")
 
-            xMainWindow = self.xUITest.getTopFocusWindow()
-            xWriterEdit = xMainWindow.getChild("writer_edit")
+            # Without the fix in place, this test would have failed with
+            # AssertionError: 'Hyperlink 2' != 'Hyperlink 6'
+            self.launch_sidebar(xWriterEdit)
 
-            self.xUITest.executeCommand(".uno:Sidebar")
+    def test_tdf134960_hyperlinks_with_multiple_pages(self):
 
-            xWriterEdit.executeAction("SIDEBAR", mkPropertyValues({"PANEL": 
"SwNavigatorPanel"}))
+        with self.ui_test.load_file(get_url_for_data_file("tdf134960.odt")) as 
writer_doc:
+            xWriterDoc = self.xUITest.getTopFocusWindow()
+            xWriterEdit = xWriterDoc.getChild("writer_edit")
 
-            # wait until the navigator panel is available
-            xNavigatorPanel = 
self.ui_test.wait_until_child_is_available('NavigatorPanel')
+            # Insert a page break so we have different links in different pages
+            xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": 
"DOWN"}))
+            self.xUITest.executeCommand(".uno:InsertPagebreak")
+            self.assertEqual("3", get_state_as_dict(xWriterEdit)["Pages"])
 
-            xContentTree = xNavigatorPanel.getChild("contenttree")
-            xHyperlinks = xContentTree.getChild('7')
-            self.assertEqual('Hyperlinks', 
get_state_as_dict(xHyperlinks)['Text'])
+            # Change view to 20% and 2 columns
+            with self.ui_test.execute_dialog_through_command(".uno:Zoom") as 
xDialog:
+                variable = xDialog.getChild("variable")
+                variable.executeAction("CLICK", tuple())
 
-            xHyperlinks.executeAction("EXPAND", tuple())
+                zoomsb = xDialog.getChild("zoomsb")
+                zoomsb.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"CTRL+A"}))
+                zoomsb.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+                zoomsb.executeAction("TYPE", mkPropertyValues({"TEXT":"20"}))
 
-            expectedHyperlinksOrder = [1, 2, 8, 9, 7, 10, 11, 3, 12, 4, 5, 6]
-            for i in range(12):
-                self.assertEqual('Hyperlink ' + 
str(expectedHyperlinksOrder[i]), 
get_state_as_dict(xHyperlinks.getChild(str(i)))['Text'])
+                columns = xDialog.getChild("columns")
+                columns.executeAction("CLICK", tuple())
 
-            xHyperlinks.executeAction("COLLAPSE", tuple())
+                columnssb = xDialog.getChild("columnssb")
+                columnssb.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"CTRL+A"}))
+                columnssb.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+                columnssb.executeAction("TYPE", mkPropertyValues({"TEXT":"3"}))
 
-            self.xUITest.executeCommand(".uno:Sidebar")
+            # Without the fix in place, this test would have failed with
+            # AssertionError: 'Hyperlink 2' != 'Hyperlink 8'
+            self.launch_sidebar(xWriterEdit)
 
 # vim: set shiftwidth=4 softtabstop=4 expandtab:

Reply via email to