summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAhmed ElShreif <aelshreif7@gmail.com>2020-08-28 05:35:22 +0200
committerAhmed ElShreif <aelshreif7@gmail.com>2020-09-04 00:58:21 +0200
commitcdb9c24b45ce7c35cf507430bd5ee1d9c3d5ea72 (patch)
tree84ea10cf5952632356ecddfe389f1656db068173
parentb9e3341178ffe62ab0fc054e7046f124eb975c38 (diff)
uilogger : Add support in the Logger and DSL for MenuBtn
For example the DSL syntax will be: >>Open List From menugearbtn >>Select item no 6 From List of menugearbtn >>Close List From menugearbtn Change-Id: I767948d9bc124a119632825d437746ea38c40ad3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101514 Tested-by: Jenkins Reviewed-by: Ahmed ElShreif <aelshreif7@gmail.com>
-rw-r--r--uitest/ui_logger_dsl/UI_Object_commands.tx16
-rw-r--r--uitest/ui_logger_dsl/dsl_core.py60
-rw-r--r--vcl/source/control/menubtn.cxx21
-rw-r--r--vcl/source/uitest/logger.cxx11
4 files changed, 107 insertions, 1 deletions
diff --git a/uitest/ui_logger_dsl/UI_Object_commands.tx b/uitest/ui_logger_dsl/UI_Object_commands.tx
index 7770bc1ee581..04f975a39066 100644
--- a/uitest/ui_logger_dsl/UI_Object_commands.tx
+++ b/uitest/ui_logger_dsl/UI_Object_commands.tx
@@ -12,13 +12,14 @@ import type_options
8) TabControlUIObject ( Change tab event )
9) ToolBoxUIObject ( Click on item event )
10) ValueSetUIObject (Choose item)
+ 10) MenuBtnUIObject ( Select - Open - Close )
*/
UIObjectCommand:
ButtonUIObject | CheckBoxUIObject | EditUIObject |
RadioButtonUIObject | ListBoxUIObject | ComboBoxUIObject |
SpinFieldUIObject | TabControlUIObject | ToolBoxUIObject |
- ValueSetUIObject
+ ValueSetUIObject | MenuBtnUIObject
;
ButtonUIObject:
@@ -52,6 +53,19 @@ ValueSetUIObject:
'Choose element with position ' POS=INT 'in' value_set_id=STRING 'from' parent_id=STRING
;
//=============================================================
+MenuBtnUIObject:
+ MenuBtnUIObjectOpen | MenuBtnUIObjectSelect | MenuBtnUIObjectClose
+;
+MenuBtnUIObjectOpen:
+ 'Open List From' + MenuBtn_ID=ID
+;
+MenuBtnUIObjectClose:
+ 'Close List From' + MenuBtn_ID=ID
+;
+MenuBtnUIObjectSelect:
+ 'Select item no' + item_num=INT + 'From List of' + MenuBtn_ID=ID
+;
+//=============================================================
//helper grammar for EditUIObject
action_on_UIObject:
Type_action | SELECT | Clear
diff --git a/uitest/ui_logger_dsl/dsl_core.py b/uitest/ui_logger_dsl/dsl_core.py
index fa17391eafa7..95f41c27df46 100644
--- a/uitest/ui_logger_dsl/dsl_core.py
+++ b/uitest/ui_logger_dsl/dsl_core.py
@@ -105,6 +105,9 @@ class ul_Compiler:
"EditUIObject": self.handle_Edit_uiObject,
"ToolBoxUIObject": self.handle_ToolBox_uiObject,
"ValueSetUIObject": self.handle_ValueSet_uiObject,
+ "MenuBtnUIObjectOpen":self.handle_MenuBtnUIObjectOpen,
+ "MenuBtnUIObjectSelect":self.handle_MenuBtnUIObjectSelect,
+ "MenuBtnUIObjectClose":self.handle_MenuBtnUIObjectClose,
"writer_Type_command": self.handle_writer_type,
"writer_Select_command": self.handle_writer_select,
"writer_GOTO_command": self.handle_writer_goto,
@@ -667,6 +670,63 @@ class ul_Compiler:
self.prev_command = ValueSetUIObject
+ def handle_MenuBtnUIObjectOpen(self, MenuBtnUIObjectOpen):
+ name_of_obj = ""
+ if keyword.iskeyword(MenuBtnUIObjectOpen.MenuBtn_ID):
+ name_of_obj = "x" + MenuBtnUIObjectOpen.MenuBtn_ID
+ else:
+ name_of_obj = MenuBtnUIObjectOpen.MenuBtn_ID
+
+ self.init_Object(
+ name_of_obj,
+ MenuBtnUIObjectOpen.MenuBtn_ID,
+ self.last_parent[self.parent_hierarchy_count],
+ )
+
+ self.write_line_with_one_parameters(
+ name_of_obj, "OPENLIST", "", ""
+ )
+
+ self.prev_command = MenuBtnUIObjectOpen
+
+ def handle_MenuBtnUIObjectClose(self, MenuBtnUIObjectClose):
+ name_of_obj = ""
+ if keyword.iskeyword(MenuBtnUIObjectClose.MenuBtn_ID):
+ name_of_obj = "x" + MenuBtnUIObjectClose.MenuBtn_ID
+ else:
+ name_of_obj = MenuBtnUIObjectClose.MenuBtn_ID
+
+ self.init_Object(
+ name_of_obj,
+ MenuBtnUIObjectClose.MenuBtn_ID,
+ self.last_parent[self.parent_hierarchy_count],
+ )
+
+ self.write_line_with_one_parameters(
+ name_of_obj, "CLOSELIST", "", ""
+ )
+
+ self.prev_command = MenuBtnUIObjectClose
+
+ def handle_MenuBtnUIObjectSelect(self, MenuBtnUIObjectSelect):
+ name_of_obj = ""
+ if keyword.iskeyword(MenuBtnUIObjectSelect.MenuBtn_ID):
+ name_of_obj = "x" + MenuBtnUIObjectSelect.MenuBtn_ID
+ else:
+ name_of_obj = MenuBtnUIObjectSelect.MenuBtn_ID
+
+ self.init_Object(
+ name_of_obj,
+ MenuBtnUIObjectSelect.MenuBtn_ID,
+ self.last_parent[self.parent_hierarchy_count],
+ )
+
+ self.write_line_with_one_parameters(
+ name_of_obj, "OPENFROMLIST", "POS", MenuBtnUIObjectSelect.item_num[0]
+ )
+
+ self.prev_command = MenuBtnUIObjectSelect
+
def handle_writer_type(self, writer_Type_command):
self.init_app()
diff --git a/vcl/source/control/menubtn.cxx b/vcl/source/control/menubtn.cxx
index 4acf4ffddc82..f6d32d28db73 100644
--- a/vcl/source/control/menubtn.cxx
+++ b/vcl/source/control/menubtn.cxx
@@ -25,6 +25,22 @@
#include <vcl/menubtn.hxx>
#include <vcl/settings.hxx>
#include <vcl/uitest/uiobject.hxx>
+#include <vcl/uitest/logger.hxx>
+#include <vcl/uitest/eventdescription.hxx>
+
+namespace
+{
+void collectUIInformation( const OUString& aID, const OUString& aevent , const OUString& akey , const OUString& avalue)
+{
+ EventDescription aDescription;
+ aDescription.aID = aID;
+ aDescription.aParameters = {{ akey , avalue}};
+ aDescription.aAction = aevent;
+ aDescription.aParent = "MainWindow";
+ aDescription.aKeyWord = "MenuButton";
+ UITestLogger::getInstance().logEvent(aDescription);
+}
+}
void MenuButton::ImplInit( vcl::Window* pParent, WinBits nStyle )
{
@@ -85,6 +101,7 @@ void MenuButton::ExecuteMenu()
mnCurItemId = 0;
msCurItemIdent.clear();
}
+ collectUIInformation(get_id(),"OPENLIST","","");
}
void MenuButton::CancelMenu()
@@ -103,6 +120,7 @@ void MenuButton::CancelMenu()
else
vcl::Window::GetDockingManager()->EndPopupMode(mpFloatingWindow);
}
+ collectUIInformation(get_id(),"CLOSELIST","","");
}
bool MenuButton::InPopupMode() const
@@ -211,6 +229,9 @@ void MenuButton::Activate()
void MenuButton::Select()
{
+ if (mnCurItemId)
+ collectUIInformation(get_id(),"OPENFROMLIST","POS",OUString::number(mnCurItemId));
+
maSelectHdl.Call( this );
}
diff --git a/vcl/source/uitest/logger.cxx b/vcl/source/uitest/logger.cxx
index 5b3847a6cb3f..d67711422bb6 100644
--- a/vcl/source/uitest/logger.cxx
+++ b/vcl/source/uitest/logger.cxx
@@ -581,6 +581,17 @@ void UITestLogger::logEvent(const EventDescription& rDescription)
{
aLogLine = "Select element no " + rDescription.aID + " From " + rDescription.aParent;
}
+ else if(rDescription.aKeyWord == "MenuButton"){
+ if(rDescription.aAction == "OPENLIST"){
+ aLogLine = "Open List From " + rDescription.aID;
+ }
+ else if(rDescription.aAction == "CLOSELIST"){
+ aLogLine = "Close List From " + rDescription.aID;
+ }
+ else if(rDescription.aAction == "OPENFROMLIST"){
+ aLogLine = "Select item no "+ GetValueInMapWithIndex(rDescription.aParameters, 0) +" From List of "+ rDescription.aID;
+ }
+ }
else
{
aLogLine = rDescription.aKeyWord + " Action:" + rDescription.aAction + " Id:"