[Libreoffice-commits] core.git: Branch 'private/EL-SHREIF/ui_logger' - uitest/ui_logger_dsl vcl/source

Ahmed ElShreif (via logerrit) logerrit at kemper.freedesktop.org
Sat Jul 6 03:28:14 UTC 2019


 uitest/ui_logger_dsl/UI_Object_commands.tx |    6 -
 uitest/ui_logger_dsl/dsl_core.py           |  161 ++++++++++++++++++++++++++++-
 vcl/source/uitest/uiobject.cxx             |    3 
 3 files changed, 165 insertions(+), 5 deletions(-)

New commits:
commit 58eabef2d605984d2e13c1d7faeb6ea9faaf7466
Author:     Ahmed ElShreif <aelshreif7 at gmail.com>
AuthorDate: Sat Jul 6 05:23:08 2019 +0200
Commit:     Ahmed ElShreif <aelshreif7 at gmail.com>
CommitDate: Sat Jul 6 05:23:08 2019 +0200

    This Commit is implementation of the Compiler of these items:
    
                    1) ButtonUIObject
                    2) CheckBoxUIObject
                    3) TabControlUIObject
                    4) ComboBoxUIObject
                    5) RadioButtonUIObject
                    6) ListBoxUIObject
                    7) SpinFieldUIObject
                    8) EditUIObject
    
    Change-Id: Ic81c2a0511351cf91f4514316b9c5854a64a4b05

diff --git a/uitest/ui_logger_dsl/UI_Object_commands.tx b/uitest/ui_logger_dsl/UI_Object_commands.tx
index 58339e6c752f..03bb0f78ded1 100644
--- a/uitest/ui_logger_dsl/UI_Object_commands.tx
+++ b/uitest/ui_logger_dsl/UI_Object_commands.tx
@@ -31,7 +31,7 @@ ComboBoxUIObject:
    'Select in' Combo_box_id=STRING 'ComboBox' 'item number' item_num=INT 'from' parent_id=ID  
 ;
 TabControlUIObject:
-   'Choose Tab number' tab_page_number=INT 'from' parent_id=ID 
+   'Choose Tab number' tab_page_number=INT 'in' tab_id=STRING 'from' parent_id=ID 
 ;
 
 EditUIObject:
@@ -41,7 +41,7 @@ SpinFieldUIObject:
    change=increase_or_ecrease Spin_id=STRING 'from' parent_id=ID 
 ;
 ListBoxUIObject:
-   'Select element with position ' POS=INT 'in' list=STRING 'from' parent_id=ID 
+   'Select element with position ' POS=INT 'in' list_id=STRING 'from' parent_id=ID 
 ;
 //==========================================
 SpinUIObject:
@@ -59,7 +59,7 @@ Type_action:
 ;
 SELECT:
   'Select in ' edit_button=STRING
-  '{"FROM": "' from=INT '", "' To=INT '": "0"}'
+  '{"FROM": "' from_pos=INT '" , "TO" : "'to_pos=INT '"}'
 ;
 Clear:
   'Clear' edit_button=STRING
diff --git a/uitest/ui_logger_dsl/dsl_core.py b/uitest/ui_logger_dsl/dsl_core.py
index 94dc4c8b716e..6f04762cc96e 100644
--- a/uitest/ui_logger_dsl/dsl_core.py
+++ b/uitest/ui_logger_dsl/dsl_core.py
@@ -24,6 +24,7 @@ def parse_args():
 
 class ul_Compiler:
     variables=[]
+    objects = dict()
     def __init__(self , input_address , output_address):
         self.ui_dsl_mm = metamodel_from_file('ui_logger_dsl_grammar.tx')
         self.output_stream=self.initiate_test_generation(output_address)
@@ -65,6 +66,14 @@ class ul_Compiler:
             'CloseDialog': self.handle_Dialog,
             'OpenModelessDialog': self.handle_Dialog,
             'OpenModalDialog':self.handle_Dialog,
+            'ButtonUIObject':self.handle_button,
+            'CheckBoxUIObject':self.handle_check_box,
+            'TabControlUIObject':self.handle_tab,
+            'ComboBoxUIObject':self.handle_Combo_box,
+            'RadioButtonUIObject':self.handle_Radio_button,
+            'ListBoxUIObject':self.handle_List_box,
+            'SpinFieldUIObject':self.handle_spin_field,
+            'EditUIObject':self.handle_Edit_uiObject,
             })
 
         self.log_lines=self.get_log_file(self.input_address)
@@ -119,6 +128,156 @@ class ul_Compiler:
 
         self.variables.append(line)
 
+    def handle_button(self, ButtonUIObject):
+
+        if ButtonUIObject.ui_button in self.objects:
+            self.objects[ButtonUIObject.ui_button]+=1
+        else:
+            self.objects[ButtonUIObject.ui_button]=1
+            line="\t\t"+ButtonUIObject.ui_button+" = "+ButtonUIObject.parent_id+\
+                ".getChild(\""+ButtonUIObject.ui_button+"\")\n"
+            self.variables.append(line)
+
+        line="\t\t"+ButtonUIObject.ui_button+".executeAction(\"CLICK\",tuple())\n"
+        self.variables.append(line)
+
+    def handle_check_box(self, CheckBoxUIObject):
+
+        if CheckBoxUIObject.Check_box_id in self.objects:
+            self.objects[CheckBoxUIObject.Check_box_id]+=1
+        else:
+            self.objects[CheckBoxUIObject.Check_box_id]=1
+            line="\t\t"+CheckBoxUIObject.Check_box_id+" = "+CheckBoxUIObject.parent_id+\
+                ".getChild(\""+CheckBoxUIObject.Check_box_id+"\")\n"
+            self.variables.append(line)
+
+        line="\t\t"+CheckBoxUIObject.Check_box_id+".executeAction(\"CLICK\",tuple())\n"
+        self.variables.append(line)
+
+    def handle_tab(self, TabControlUIObject):
+
+        if TabControlUIObject.tab_id in self.objects:
+            self.objects[TabControlUIObject.tab_id]+=1
+        else:
+            self.objects[TabControlUIObject.tab_id]=1
+            line="\t\t"+TabControlUIObject.tab_id+" = "+TabControlUIObject.parent_id+\
+                ".getChild(\""+TabControlUIObject.tab_id+"\")\n"
+            self.variables.append(line)
+
+        line="\t\t"+TabControlUIObject.tab_id+\
+            ".executeAction(\"SELECT\", mkPropertyValues({\"POS\": \""+\
+            str(TabControlUIObject.tab_page_number)+"\"}))\n"
+        self.variables.append(line)
+
+    def handle_Combo_box(self, ComboBoxUIObject):
+
+        if ComboBoxUIObject.Combo_box_id in self.objects:
+            self.objects[ComboBoxUIObject.Combo_box_id]+=1
+        else:
+            self.objects[ComboBoxUIObject.Combo_box_id]=1
+            line="\t\t"+ComboBoxUIObject.Combo_box_id+" = "+ComboBoxUIObject.parent_id+\
+                ".getChild(\""+ComboBoxUIObject.Combo_box_id+"\")\n"
+            self.variables.append(line)
+
+        line="\t\t"+ComboBoxUIObject.Combo_box_id+\
+            ".executeAction(\"SELECT\", mkPropertyValues({\"POS\": \""+\
+            str(ComboBoxUIObject.item_num)+"\"}))\n"
+        self.variables.append(line)
+
+    def handle_Radio_button(self,RadioButtonUIObject):
+
+        if RadioButtonUIObject.Radio_button_id in self.objects:
+            self.objects[RadioButtonUIObject.Radio_button_id]+=1
+        else:
+            self.objects[RadioButtonUIObject.Radio_button_id]=1
+            line="\t\t"+RadioButtonUIObject.Radio_button_id+" = "+RadioButtonUIObject.parent_id+\
+                ".getChild(\""+RadioButtonUIObject.Radio_button_id+"\")\n"
+            self.variables.append(line)
+
+        line="\t\t"+RadioButtonUIObject.Radio_button_id+".executeAction(\"CLICK\",tuple())\n"
+        self.variables.append(line)
+
+    def handle_List_box(self, ListBoxUIObject):
+
+        if ListBoxUIObject.list_id in self.objects:
+            self.objects[ListBoxUIObject.list_id]+=1
+        else:
+            self.objects[ListBoxUIObject.list_id]=1
+            line="\t\t"+ListBoxUIObject.list_id+" = "+ListBoxUIObject.parent_id+\
+                ".getChild(\""+ListBoxUIObject.list_id+"\")\n"
+            self.variables.append(line)
+
+        line="\t\t"+ListBoxUIObject.list_id+\
+            ".executeAction(\"SELECT\", mkPropertyValues({\"POS\": \""+\
+            str(ListBoxUIObject.POS)+"\"}))\n"
+        self.variables.append(line)
+
+    def handle_spin_field(self,SpinFieldUIObject):
+
+        if SpinFieldUIObject.Spin_id in self.objects:
+            self.objects[SpinFieldUIObject.Spin_id]+=1
+        else:
+            self.objects[SpinFieldUIObject.Spin_id]=1
+            line="\t\t"+SpinFieldUIObject.Spin_id+" = "+SpinFieldUIObject.parent_id+\
+                ".getChild(\""+SpinFieldUIObject.Spin_id+"\")\n"
+            self.variables.append(line)
+
+        if(SpinFieldUIObject.change=="Increase"):
+            line="\t\t"+SpinFieldUIObject.Spin_id+".executeAction(\"UP\",tuple())\n"
+        elif(SpinFieldUIObject.change=="Decrease"):
+            line="\t\t"+SpinFieldUIObject.Spin_id+".executeAction(\"DOWN\",tuple())\n"
+        self.variables.append(line)
+
+    def handle_Edit_uiObject(self,EditUIObject):
+
+        if(EditUIObject.action.__class__.__name__ =="Type_action"):
+            if EditUIObject.action.edit_button in self.objects:
+                self.objects[EditUIObject.action.edit_button]+=1
+            else:
+                self.objects[EditUIObject.action.edit_button]=1
+                line="\t\t"+EditUIObject.action.edit_button+" = "+EditUIObject.parent_id+\
+                ".getChild(\""+EditUIObject.action.edit_button+"\")\n"
+                self.variables.append(line)
+
+            if(EditUIObject.action.what_to_type.__class__.__name__=="char"):
+                line="\t\t"+EditUIObject.action.edit_button+\
+                ".executeAction(\"TYPE\", mkPropertyValues({\"TEXT\": \""+\
+                EditUIObject.action.what_to_type.input_char+"\"}))\n"
+
+            elif(EditUIObject.action.what_to_type.__class__.__name__=="KeyCode"):
+                line="\t\t"+EditUIObject.action.edit_button+\
+                ".executeAction(\"TYPE\", mkPropertyValues({\"KEYCODE\":"+\
+                EditUIObject.action.what_to_type.input_key_code+"\"}))\n"
+            self.variables.append(line)
+
+        if(EditUIObject.action.__class__.__name__ =="SELECT"):
+            if EditUIObject.action.edit_button in self.objects:
+                self.objects[EditUIObject.action.edit_button]+=1
+            else:
+                self.objects[EditUIObject.action.edit_button]=1
+                line="\t\t"+EditUIObject.action.edit_button+" = "+EditUIObject.parent_id+\
+                ".getChild(\""+EditUIObject.action.edit_button+"\")\n"
+                self.variables.append(line)
+
+            line="\t\t"+EditUIObject.action.edit_button+\
+                ".executeAction(\"SELECT\", mkPropertyValues({\"from\": \""+\
+                str(EditUIObject.action.from_pos )+"\", \"TO\": \""+\
+                str(EditUIObject.action.to_pos)+"\"}))\n"
+            self.variables.append(line)
+
+        if(EditUIObject.action.__class__.__name__ =="Clear"):
+            if EditUIObject.action.edit_button in self.objects:
+                self.objects[EditUIObject.action.edit_button]+=1
+            else:
+                self.objects[EditUIObject.action.edit_button]=1
+                line="\t\t"+EditUIObject.action.edit_button+" = "+EditUIObject.parent_id+\
+                ".getChild(\""+EditUIObject.action.edit_button+"\")\n"
+                self.variables.append(line)
+
+            line="\t\t"+EditUIObject.action.edit_button+\
+                ".executeAction(\"CLEAR\",tuple())\n"
+            self.variables.append(line)
+
     def Generate_UI_test(self):
         line="\t\tself.ui_test.close_doc()"
         self.variables.append(line)
@@ -139,4 +298,4 @@ def main():
     del ui_logger
 
 if __name__ == '__main__':
-    main()
+    main()
\ No newline at end of file
diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx
index 52fcfbc855c1..159a3066aa68 100644
--- a/vcl/source/uitest/uiobject.cxx
+++ b/vcl/source/uitest/uiobject.cxx
@@ -1270,7 +1270,8 @@ OUString TabControlUIObject::get_action(VclEventId nEvent) const
     {
         sal_Int32 nPageId = mxTabControl->GetCurPageId();
         return "Choose Tab number " + OUString::number(mxTabControl->GetPagePos(nPageId)) +
-                " from '" + mxTabControl->get_id() + "'" ;
+                " in '" + mxTabControl->get_id()+
+                "' from " + get_top_parent(mxTabControl)->get_id() ;
     }
     else
         return WindowUIObject::get_action(nEvent);


More information about the Libreoffice-commits mailing list