diff options
author | Saurav Chirania <saurav.chir@gmail.com> | 2018-05-23 19:46:56 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2018-06-03 17:09:16 +0200 |
commit | 1a91d1a5956e16080af3f64c1597387dd57b9570 (patch) | |
tree | 7e18cc73b4da6296656043d0771c53c301440412 /vcl | |
parent | 565340d457f41197474a75ba1b036bdc3d569041 (diff) |
uitest logger: support for buttons, dialog, command and key logging
This patch adds logging faclity for radiobuttons, checkboxes
and button clicks. It modifies the logging for UNO commands
and dialogs execution for consistency with other log
statements. It also makes key logging more informative
by printing the details of the object on which the user is
typing.
Change-Id: I911d0dfb64dacfde64193f0aea21f7d837dbf9da
Reviewed-on: https://gerrit.libreoffice.org/54745
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/uitest/logger.cxx | 5 | ||||
-rw-r--r-- | vcl/source/uitest/uiobject.cxx | 33 | ||||
-rw-r--r-- | vcl/source/window/dialog.cxx | 4 |
3 files changed, 39 insertions, 3 deletions
diff --git a/vcl/source/uitest/logger.cxx b/vcl/source/uitest/logger.cxx index 4f07f6994529..e9a18df9b400 100644 --- a/vcl/source/uitest/logger.cxx +++ b/vcl/source/uitest/logger.cxx @@ -157,7 +157,10 @@ void UITestLogger::logKeyInput(VclPtr<vcl::Window> const & xUIElement, const Key aKeyCode = "{\"TEXT\": \"" + OUStringLiteral1(nChar) + "\"}"; } - OUString aContent = "Action on element: " + rID + " with action: TYPE and content: " + aKeyCode; + std::unique_ptr<UIObject> pUIObject = xUIElement->GetUITestFactory()(xUIElement.get()); + + OUString aContent = pUIObject->get_type() + " Action:TYPE Id:" + + rID + " Parent: UNKNOWN "+ aKeyCode; maStream.WriteLine(OUStringToOString(aContent, RTL_TEXTENCODING_UTF8)); } diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index ff117e34c6f1..2f4604d9f882 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -563,6 +563,17 @@ OUString ButtonUIObject::get_name() const return OUString("ButtonUIObject"); } +OUString ButtonUIObject::get_action(VclEventId nEvent) const +{ + if (nEvent == VclEventId::ButtonClick) + { + return this->get_type() + " Action:CLICK Id:" + mxButton->get_id() + " Parent:" + + get_top_parent(mxButton)->get_id(); + } + else + return WindowUIObject::get_action(nEvent); +} + std::unique_ptr<UIObject> ButtonUIObject::create(vcl::Window* pWindow) { Button* pButton = dynamic_cast<Button*>(pWindow); @@ -773,6 +784,17 @@ OUString CheckBoxUIObject::get_name() const return OUString("CheckBoxUIObject"); } +OUString CheckBoxUIObject::get_action(VclEventId nEvent) const +{ + if (nEvent == VclEventId::CheckboxToggle) + { + return this->get_type() + " Action:CLICK Id:" + mxCheckBox->get_id() + " Parent:" + + get_top_parent(mxCheckBox)->get_id(); + } + else + return WindowUIObject::get_action(nEvent); +} + std::unique_ptr<UIObject> CheckBoxUIObject::create(vcl::Window* pWindow) { CheckBox* pCheckBox = dynamic_cast<CheckBox*>(pWindow); @@ -812,6 +834,17 @@ OUString RadioButtonUIObject::get_name() const return OUString("RadioButtonUIObject"); } +OUString RadioButtonUIObject::get_action(VclEventId nEvent) const +{ + if (nEvent == VclEventId::RadiobuttonToggle) + { + return this->get_type() + " Action:CLICK Id:" + mxRadioButton->get_id() + " Parent:" + + get_top_parent(mxRadioButton)->get_id(); + } + else + return WindowUIObject::get_action(nEvent); +} + std::unique_ptr<UIObject> RadioButtonUIObject::create(vcl::Window* pWindow) { RadioButton* pRadioButton = dynamic_cast<RadioButton*>(pWindow); diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index 00040af4aeb9..b7c1a3392a73 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -905,7 +905,7 @@ bool Dialog::ImplStartExecuteModal() css::document::DocumentEvent aObject; aObject.EventName = "DialogExecute"; xEventBroadcaster->documentEventOccured(aObject); - UITestLogger::getInstance().log("DialogExecute"); + UITestLogger::getInstance().log("ModalDialogExecuted Id:" + get_id()); if (comphelper::LibreOfficeKit::isActive()) { @@ -1444,6 +1444,7 @@ VclBuilderContainer::~VclBuilderContainer() ModelessDialog::ModelessDialog(vcl::Window* pParent, const OUString& rID, const OUString& rUIXMLDescription, InitFlag eFlag) : Dialog(pParent, rID, rUIXMLDescription, WindowType::MODELESSDIALOG, eFlag) { + UITestLogger::getInstance().log("ModelessDialogConstructed Id:" + get_id()); } ModalDialog::ModalDialog( vcl::Window* pParent, const OUString& rID, const OUString& rUIXMLDescription, bool bBorder ) : @@ -1459,7 +1460,6 @@ void ModelessDialog::Activate() css::document::DocumentEvent aObject; aObject.EventName = "ModelessDialogVisible"; xEventBroadcaster->documentEventOccured(aObject); - UITestLogger::getInstance().log("Modeless Dialog Visible"); Dialog::Activate(); } |