summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-02-27 04:04:26 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-02-27 09:43:45 +0000
commitaa10a19c8e56a51654bcb26f718f6e7187159c72 (patch)
tree4b9940918dbdc052cd2fa045404a1a2a0ebfffa3
parent2a285790535c0ae4c2d791c8f8c44038203d82b7 (diff)
uitest: add a specific method for executing dialogs
This allows us to split the parts that need to run async and the ones that can run synchronous. This will reduce the number of signals that we need. Change-Id: I9c9f3df3422cc66d28d66e0638e212b39c743e33 Reviewed-on: https://gerrit.libreoffice.org/34669 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r--include/vcl/uitest/uitest.hxx2
-rw-r--r--offapi/com/sun/star/ui/test/XUITest.idl2
-rw-r--r--vcl/source/uitest/uitest.cxx10
-rw-r--r--vcl/source/uitest/uno/uitest_uno.cxx8
4 files changed, 22 insertions, 0 deletions
diff --git a/include/vcl/uitest/uitest.hxx b/include/vcl/uitest/uitest.hxx
index 9f226b8bf581..53a049069a14 100644
--- a/include/vcl/uitest/uitest.hxx
+++ b/include/vcl/uitest/uitest.hxx
@@ -21,6 +21,8 @@ public:
static void executeCommand(const OUString& rCommand);
+ static void executeDialog(const OUString& rCommand);
+
static std::unique_ptr<UIObject> getFocusTopWindow();
};
diff --git a/offapi/com/sun/star/ui/test/XUITest.idl b/offapi/com/sun/star/ui/test/XUITest.idl
index 87a091202ffd..89da44c7d6e7 100644
--- a/offapi/com/sun/star/ui/test/XUITest.idl
+++ b/offapi/com/sun/star/ui/test/XUITest.idl
@@ -18,6 +18,8 @@ interface XUITest
{
void executeCommand([in] string command);
+ void executeDialog([in] string command);
+
XUIObject getTopFocusWindow();
};
diff --git a/vcl/source/uitest/uitest.cxx b/vcl/source/uitest/uitest.cxx
index d8764790f9e6..4484975c44f9 100644
--- a/vcl/source/uitest/uitest.cxx
+++ b/vcl/source/uitest/uitest.cxx
@@ -26,6 +26,16 @@ void UITest::executeCommand(const OUString& rCommand)
SAL_WARN_IF(!bSuccess, "vcl.uitest", "failed to execute command: " << rCommand);
}
+void UITest::executeDialog(const OUString& rCommand)
+{
+ bool bSuccess = comphelper::dispatchCommand(
+ rCommand,
+ {{"SynchronMode", -1, css::uno::Any(false),
+ css::beans::PropertyState_DIRECT_VALUE}});
+
+ SAL_WARN_IF(!bSuccess, "vcl.uitest", "failed to execute dialog command: " << rCommand);
+}
+
std::unique_ptr<UIObject> UITest::getFocusTopWindow()
{
ImplSVData* pSVData = ImplGetSVData();
diff --git a/vcl/source/uitest/uno/uitest_uno.cxx b/vcl/source/uitest/uno/uitest_uno.cxx
index aad296e9b604..c5a15a4f52ee 100644
--- a/vcl/source/uitest/uno/uitest_uno.cxx
+++ b/vcl/source/uitest/uno/uitest_uno.cxx
@@ -40,6 +40,8 @@ public:
void SAL_CALL executeCommand(const OUString& rCommand) override;
+ void SAL_CALL executeDialog(const OUString& rCommand) override;
+
css::uno::Reference<css::ui::test::XUIObject> SAL_CALL getTopFocusWindow() override;
OUString SAL_CALL getImplementationName() override;
@@ -61,6 +63,12 @@ void SAL_CALL UITestUnoObj::executeCommand(const OUString& rCommand)
UITest::executeCommand(rCommand);
}
+void SAL_CALL UITestUnoObj::executeDialog(const OUString& rCommand)
+{
+ SolarMutexGuard aGuard;
+ UITest::executeDialog(rCommand);
+}
+
css::uno::Reference<css::ui::test::XUIObject> SAL_CALL UITestUnoObj::getTopFocusWindow()
{
SolarMutexGuard aGuard;