summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/uitest/uiobject.cxx27
1 files changed, 26 insertions, 1 deletions
diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx
index 94e3a7d2e65a..869f0474f64b 100644
--- a/vcl/source/uitest/uiobject.cxx
+++ b/vcl/source/uitest/uiobject.cxx
@@ -10,7 +10,10 @@
#include "uitest/uiobject_impl.hxx"
#include "uitest/factory.hxx"
+#include <vcl/event.hxx>
+
#include <iostream>
+#include <vector>
#define DUMP_UITEST(x) SAL_INFO("vcl.uitest", x)
@@ -241,6 +244,22 @@ EditUIObject::EditUIObject(VclPtr<Edit> xEdit):
{
}
+namespace {
+
+std::vector<KeyEvent> generate_key_events_from_text(const OUString& rStr)
+{
+ std::vector<KeyEvent> aEvents;
+ vcl::KeyCode aCode;
+ for (sal_Int32 i = 0, n = rStr.getLength();
+ i != n; ++i)
+ {
+ aEvents.push_back(KeyEvent(rStr[i], aCode));
+ }
+ return aEvents;
+}
+
+}
+
void EditUIObject::execute(const OUString& rAction,
const StringMap& rParameters)
{
@@ -249,7 +268,13 @@ void EditUIObject::execute(const OUString& rAction,
if (rParameters.find("TEXT") != rParameters.end())
{
assert(rParameters.size() == 1); // only the text
- mxEdit->SetText(rParameters.find("TEXT")->second);
+ const OUString& rText = rParameters.find("TEXT")->second;
+ auto aKeyEvents = generate_key_events_from_text(rText);
+ for (auto itr = aKeyEvents.begin(), itrEnd = aKeyEvents.end();
+ itr != itrEnd; ++itr)
+ {
+ mxEdit->KeyInput(*itr);
+ }
}
else if (rParameters.find("SELECTION") != rParameters.end())
{