[Libreoffice-commits] core.git: vcl/CppunitTest_vcl_lifecycle.mk vcl/qa

Michael Meeks michael.meeks at collabora.com
Tue Jul 7 00:29:17 PDT 2015


 vcl/CppunitTest_vcl_lifecycle.mk |    1 +
 vcl/qa/cppunit/lifecycle.cxx     |   26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+)

New commits:
commit 1aa73339103eb79f84d3a5ad958b44ab9460cf45
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Tue Jul 7 06:33:09 2015 +0100

    Add vcl lifecycle test for Toolkit / XWindow peers.
    
    Change-Id: I0114595dcecaddde343a16f096de16f53f9b7a5a

diff --git a/vcl/CppunitTest_vcl_lifecycle.mk b/vcl/CppunitTest_vcl_lifecycle.mk
index ca79b00..75b133e 100644
--- a/vcl/CppunitTest_vcl_lifecycle.mk
+++ b/vcl/CppunitTest_vcl_lifecycle.mk
@@ -27,6 +27,7 @@ $(eval $(call gb_CppunitTest_use_libraries,vcl_lifecycle, \
 	sal \
 	svt \
 	test \
+	tk \
 	tl \
 	unotest \
 	vcl \
diff --git a/vcl/qa/cppunit/lifecycle.cxx b/vcl/qa/cppunit/lifecycle.cxx
index 34a40a1..2222364 100644
--- a/vcl/qa/cppunit/lifecycle.cxx
+++ b/vcl/qa/cppunit/lifecycle.cxx
@@ -20,6 +20,8 @@
 #include <vcl/dialog.hxx>
 #include <vcl/layout.hxx>
 #include <vcl/svapp.hxx>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
 
 class LifecycleTest : public test::BootstrapFixture
 {
@@ -37,6 +39,7 @@ public:
     void testPostDispose();
     void testFocus();
     void testLeakage();
+    void testToolkit();
 
     CPPUNIT_TEST_SUITE(LifecycleTest);
     CPPUNIT_TEST(testCast);
@@ -48,6 +51,7 @@ public:
     CPPUNIT_TEST(testPostDispose);
     CPPUNIT_TEST(testFocus);
     CPPUNIT_TEST(testLeakage);
+    CPPUNIT_TEST(testToolkit);
     CPPUNIT_TEST_SUITE_END();
 };
 
@@ -289,6 +293,28 @@ void LifecycleTest::testLeakage()
         delete *i;
 }
 
+void LifecycleTest::testToolkit()
+{
+    LeakTestObject *pVclWin = LeakTestObject::Create<WorkWindow>(nullptr, WB_APP|WB_STDWORK);
+    css::uno::Reference<css::awt::XWindow> xWindow(pVclWin->getRef()->GetComponentInterface(), css::uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xWindow.is());
+
+    // test UNO dispose
+    css::uno::Reference<css::lang::XComponent> xWinComponent(xWindow, css::uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xWinComponent.is());
+    CPPUNIT_ASSERT(!pVclWin->getRef()->IsDisposed());
+    xWinComponent->dispose();
+    CPPUNIT_ASSERT(pVclWin->getRef()->IsDisposed());
+
+    // test UNO cleanup
+    xWinComponent.clear();
+    xWindow.clear();
+    pVclWin->disposeAndClear();
+    pVclWin->assertDeleted();
+
+    delete pVclWin;
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(LifecycleTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();


More information about the Libreoffice-commits mailing list