diff options
author | Ahmed ElShreif <aelshreif7@gmail.com> | 2020-06-02 05:30:40 +0200 |
---|---|---|
committer | Ahmed ElShreif <aelshreif7@gmail.com> | 2020-07-08 11:12:08 +0200 |
commit | 644a775833857955576b5284bf2f1b992d8f5b21 (patch) | |
tree | a74b67fe2999d9121d844d05224bb8f2418ae2ef /vcl | |
parent | d3a98b87824f2e2248a45b97d7eef5e8ad596dd3 (diff) |
uitest: Add support for vertical TabControl Object
We need support for this Object as some dialogs use it like Hyperlink Dialog .
So now we can navigate in the dialog in the same way we navigate with the normal TabControl Objects .
You can use this lines in your test case that test a dialog that has vertical TabControl Object:
>> xtab=HyperlinkDialog.getChild("tabcontrol")
>> xtab.executeAction("SELECT", mkPropertyValues({"POS": "0"}))
Change-Id: Id1792f5cceb8b08e13cb8c0c5fbaf1ff29f996d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98135
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/control/ivctrl.cxx | 6 | ||||
-rw-r--r-- | vcl/source/uitest/uiobject.cxx | 52 |
2 files changed, 58 insertions, 0 deletions
diff --git a/vcl/source/control/ivctrl.cxx b/vcl/source/control/ivctrl.cxx index 82e2bbc0c08b..c0c78a986b0d 100644 --- a/vcl/source/control/ivctrl.cxx +++ b/vcl/source/control/ivctrl.cxx @@ -27,6 +27,7 @@ #include <vcl/settings.hxx> #include <vcl/tabctrl.hxx> #include <vcl/vclevent.hxx> +#include <vcl/uitest/uiobject.hxx> using namespace ::com::sun::star::accessibility; @@ -628,4 +629,9 @@ void VerticalTabControl::SetPageText(const OString& rPageId, const OUString& rTe pData->pEntry->SetText(rText); } +FactoryFunction VerticalTabControl::GetUITestFactory() const +{ + return VerticalTabControlUIObject::create; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index 29b3c296b8d2..fc32de562701 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -21,6 +21,7 @@ #include <vcl/toolkit/spin.hxx> #include <vcl/toolkit/fmtfield.hxx> #include <vcl/spinfld.hxx> +#include <vcl/ivctrl.hxx> #include <vcl/toolkit/button.hxx> #include <vcl/toolkit/dialog.hxx> #include <vcl/toolkit/field.hxx> @@ -1508,4 +1509,55 @@ std::unique_ptr<UIObject> RoadmapWizardUIObject::create(vcl::Window* pWindow) return std::unique_ptr<UIObject>(new RoadmapWizardUIObject(pRoadmapWizard)); } +VerticalTabControlUIObject::VerticalTabControlUIObject(const VclPtr<VerticalTabControl>& xTabControl): + WindowUIObject(xTabControl), + mxTabControl(xTabControl) +{ +} + +VerticalTabControlUIObject::~VerticalTabControlUIObject() +{ +} + +void VerticalTabControlUIObject::execute(const OUString& rAction, + const StringMap& rParameters) +{ + if (rAction == "SELECT") + { + if (rParameters.find("POS") != rParameters.end()) + { + auto itr = rParameters.find("POS"); + sal_uInt32 nPos = itr->second.toUInt32(); + OString xid = mxTabControl->GetPageId(nPos); + mxTabControl->SetCurPageId(xid); + } + } + else + WindowUIObject::execute(rAction, rParameters); +} + +StringMap VerticalTabControlUIObject::get_state() +{ + StringMap aMap = WindowUIObject::get_state(); + aMap["PageCount"] = OUString::number(mxTabControl->GetPageCount()); + + OString nPageId = mxTabControl->GetCurPageId(); + aMap["CurrPageTitel"] = mxTabControl->GetPageText(nPageId); + aMap["CurrPagePos"] = OUString::number(mxTabControl->GetPagePos(nPageId)); + + return aMap; +} + +OUString VerticalTabControlUIObject::get_name() const +{ + return "VerticalTabControlUIObject"; +} + +std::unique_ptr<UIObject> VerticalTabControlUIObject::create(vcl::Window* pWindow) +{ + VerticalTabControl* pTabControl = dynamic_cast<VerticalTabControl*>(pWindow); + assert(pTabControl); + return std::unique_ptr<UIObject>(new VerticalTabControlUIObject(pTabControl)); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |