summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorAhmed ElShreif <aelshreif7@gmail.com>2020-06-02 05:30:40 +0200
committerAhmed ElShreif <aelshreif7@gmail.com>2020-07-08 11:12:08 +0200
commit644a775833857955576b5284bf2f1b992d8f5b21 (patch)
treea74b67fe2999d9121d844d05224bb8f2418ae2ef /vcl/source
parentd3a98b87824f2e2248a45b97d7eef5e8ad596dd3 (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/source')
-rw-r--r--vcl/source/control/ivctrl.cxx6
-rw-r--r--vcl/source/uitest/uiobject.cxx52
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: */