[Libreoffice-commits] core.git: sw/CppunitTest_sw_dialogs_test_2.mk sw/qa

Stephan Bergmann sbergman at redhat.com
Wed Nov 23 14:04:56 UTC 2016


 sw/CppunitTest_sw_dialogs_test_2.mk |    1 +
 sw/qa/unit/sw-dialogs-test_2.cxx    |   26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

New commits:
commit 07b3ea269929148b3289582c9d1e6ac271e3bcc1
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Nov 23 15:02:35 2016 +0100

    Carry fix over to CppunitTest_sw_dialogs_test_2
    
    ...from 2ec76e5db5c194e133b6fee5c7f81c04357971f8 "Make sure swui's pSwResMgr is
    initialized in CppunitTest_sw_dialogs_test", across ignorant
    f888d17127557a8fd3867896dcfa1abbb9f6a53d "split sw screenshots test"
    
    Change-Id: I096e22433317186e1a78855532f2c67bd842f366

diff --git a/sw/CppunitTest_sw_dialogs_test_2.mk b/sw/CppunitTest_sw_dialogs_test_2.mk
index 7e6fb0b..12d34c4 100644
--- a/sw/CppunitTest_sw_dialogs_test_2.mk
+++ b/sw/CppunitTest_sw_dialogs_test_2.mk
@@ -20,6 +20,7 @@ $(eval $(call gb_CppunitTest_use_sdk_api,sw_dialogs_test2))
 $(eval $(call gb_CppunitTest_set_include,sw_dialogs_test2,\
     -I$(SRCDIR)/sw/source/ui/inc \
     -I$(SRCDIR)/sw/inc \
+    -I$(SRCDIR)/sw/source/uibase/inc \
     $$(INCLUDE) \
 ))
 
diff --git a/sw/qa/unit/sw-dialogs-test_2.cxx b/sw/qa/unit/sw-dialogs-test_2.cxx
index cf77589..5917506a 100644
--- a/sw/qa/unit/sw-dialogs-test_2.cxx
+++ b/sw/qa/unit/sw-dialogs-test_2.cxx
@@ -9,17 +9,25 @@
 
 #include <sal/config.h>
 #include <test/screenshot_test.hxx>
+#include <rtl/bootstrap.hxx>
 #include <rtl/strbuf.hxx>
 #include <osl/file.hxx>
 #include <sfx2/app.hxx>
 #include <vcl/abstdlg.hxx>
 
+#include <swabstdlg.hxx>
+
 using namespace ::com::sun::star;
 
+extern "C" { using Fn = SwAbstractDialogFactory * (*)(); }
+    // sw/source/ui/dialog/swuiexp.cxx
+
 /// Test opening a dialog in sw
 class SwDialogsTest2 : public ScreenshotTest
 {
 private:
+    osl::Module libSwui_;
+
     /// helper method to populate KnownDialogs, called in setUp(). Needs to be
     /// written and has to add entries to KnownDialogs
     virtual void registerKnownDialogsByID(mapType& rKnownDialogs) override;
@@ -32,6 +40,8 @@ public:
     SwDialogsTest2();
     virtual ~SwDialogsTest2() override;
 
+    void setUp() override;
+
     // try to open a dialog
     void openAnyDialog();
 
@@ -48,6 +58,22 @@ SwDialogsTest2::~SwDialogsTest2()
 {
 }
 
+void SwDialogsTest2::setUp()
+{
+    ScreenshotTest::setUp();
+    // Make sure the swui library's global pSwResMgr is initialized
+    // (alternatively to dynamically loading the library, SwCreateDialogFactory
+    // could be declared in an include file and this CppunitTest link against
+    // the swui library):
+    OUString url("${LO_LIB_DIR}/" SVLIBRARY("swui"));
+    rtl::Bootstrap::expandMacros(url); //TODO: detect failure
+    CPPUNIT_ASSERT(libSwui_.load(url, SAL_LOADMODULE_GLOBAL));
+    auto fn = reinterpret_cast<Fn>(
+        libSwui_.getFunctionSymbol("SwCreateDialogFactory"));
+    CPPUNIT_ASSERT(fn != nullptr);
+    (*fn)();
+}
+
 void SwDialogsTest2::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
 {
     // fill map of known dialogs


More information about the Libreoffice-commits mailing list