sw/qa/uitest/writer_tests2/fontworks.py |   36 ++++++++++++++------------------
 uitest/uitest/uihelper/guarded.py       |   10 ++++++++
 2 files changed, 26 insertions(+), 20 deletions(-)

New commits:
commit 7f49c4eea51c6c84ee7adacd5ba45e1e0fc4c1f7
Author:     Henry Castro <hcas...@collabora.com>
AuthorDate: Fri Apr 9 17:32:56 2021 -0400
Commit:     Henry Castro <hcas...@collabora.com>
CommitDate: Mon Jun 7 20:13:04 2021 +0200

    sw/qa/uitest: close the dialog if thrown an exception
    
    if a unit test opens a dialog and exception
    is thrown if does not exist a control, the
    terminate() method fails, the unit test will
    wait indefinitely for the subprocess to terminate.
    
    Change-Id: I6dc77b2db8ce042ead78d13ce57e91892cd2db90
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113896
    Tested-by: Jenkins
    Reviewed-by: Henry Castro <hcas...@collabora.com>

diff --git a/sw/qa/uitest/writer_tests2/fontworks.py 
b/sw/qa/uitest/writer_tests2/fontworks.py
index 4d4044ab2bd0..d9ef76c10602 100644
--- a/sw/qa/uitest/writer_tests2/fontworks.py
+++ b/sw/qa/uitest/writer_tests2/fontworks.py
@@ -10,6 +10,7 @@
 from uitest.framework import UITestCase
 from uitest.uihelper.common import get_state_as_dict
 from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper import guarded
 #test FontWorks dialog
 class fontWorksDialog(UITestCase):
 
@@ -18,26 +19,21 @@ class fontWorksDialog(UITestCase):
         xWriterDoc = self.xUITest.getTopFocusWindow()
         xWriterEdit = xWriterDoc.getChild("writer_edit")
 
-        
self.ui_test.execute_dialog_through_command(".uno:FontworkGalleryFloater")
-        xDialog = self.xUITest.getTopFocusWindow()
-
-        FontWorkSelector = xDialog.getChild("ctlFavoriteswin")
-        # Select element with id (3)
-        element3 = FontWorkSelector.getChild("2")
-        element3.executeAction("SELECT", mkPropertyValues({}))
-        print(get_state_as_dict(FontWorkSelector))
-        
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemPos"], "2")
-        
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemId"], "3")
-        self.assertEqual(get_state_as_dict(FontWorkSelector)["VisibleCount"], 
"36")
-
-        # Select element with id (7)
-        element7 = FontWorkSelector.getChild("6")
-        element7.executeAction("SELECT", mkPropertyValues({}))
-        
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemPos"], "6")
-        
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemId"], "7")
-
-        xCloseBtn = xDialog.getChild("cancel")
-        self.ui_test.close_dialog_through_button(xCloseBtn)
+        with guarded.execute_dialog_through_command(self, 
".uno:FontworkGalleryFloater", close_button="cancel") as xDialog:
+            FontWorkSelector = xDialog.getChild("ctlFavoriteswin")
+            # Select element with id (3)
+            element3 = FontWorkSelector.getChild("2")
+            element3.executeAction("SELECT", mkPropertyValues({}))
+            print(get_state_as_dict(FontWorkSelector))
+            
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemPos"], "2")
+            
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemId"], "3")
+            
self.assertEqual(get_state_as_dict(FontWorkSelector)["VisibleCount"], "36")
+
+            # Select element with id (7)
+            element7 = FontWorkSelector.getChild("6")
+            element7.executeAction("SELECT", mkPropertyValues({}))
+            
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemPos"], "6")
+            
self.assertEqual(get_state_as_dict(FontWorkSelector)["SelectedItemId"], "7")
 
         self.ui_test.close_doc()
 
diff --git a/uitest/uitest/uihelper/guarded.py 
b/uitest/uitest/uihelper/guarded.py
index b7e5ce099d1e..871fa697d584 100644
--- a/uitest/uitest/uihelper/guarded.py
+++ b/uitest/uitest/uihelper/guarded.py
@@ -28,4 +28,14 @@ def execute_dialog_through_action(testCase, ui_object, 
action, parameters = None
     finally:
         
testCase.ui_test.close_dialog_through_button(xDialog.getChild(close_button))
 
+# Calls UITest.close_dialog_through_button at exit
+@contextmanager
+def execute_dialog_through_command(testCase, unoCommand, close_button = "ok"):
+    testCase.ui_test.execute_dialog_through_command(unoCommand)
+    xDialog = testCase.xUITest.getTopFocusWindow()
+    try:
+        yield xDialog
+    finally:
+        
testCase.ui_test.close_dialog_through_button(xDialog.getChild(close_button))
+
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to