13 #include <com/sun/star/lang/XComponent.hpp>
14 #include <com/sun/star/lang/XEventListener.hpp>
16 #include <cppunit/TestAssert.h>
22 struct TestEventListener final : ::cppu::WeakImplHelper<lang::XEventListener>
24 bool m_hasDisposingCalled;
26 : m_hasDisposingCalled(false)
29 virtual void SAL_CALL disposing(
const lang::EventObject&)
override
31 m_hasDisposingCalled =
true;
38 void XComponent::testAddEventListener()
41 auto pListenerAdded(
new TestEventListener());
42 Reference<lang::XEventListener> xListenerAdded(pListenerAdded);
43 xComponent->addEventListener(xListenerAdded);
44 xComponent->dispose();
45 CPPUNIT_ASSERT_EQUAL(
true, pListenerAdded->m_hasDisposingCalled);
48 void XComponent::testRemoveEventListener()
51 auto pListenerAddedAndRemoved(
new TestEventListener());
52 Reference<lang::XEventListener> xListenerAddedAndRemoved(pListenerAddedAndRemoved);
53 xComponent->addEventListener(xListenerAddedAndRemoved);
54 xComponent->removeEventListener(xListenerAddedAndRemoved);
55 xComponent->dispose();
56 CPPUNIT_ASSERT_EQUAL(
false, pListenerAddedAndRemoved->m_hasDisposingCalled);
59 void XComponent::testDispose()
62 auto pListenerAdded(
new TestEventListener());
63 Reference<lang::XEventListener> xListenerAdded(pListenerAdded);
64 xComponent->addEventListener(xListenerAdded);
65 xComponent->dispose();
66 CPPUNIT_ASSERT_EQUAL(
true, pListenerAdded->m_hasDisposingCalled);
69 void XComponent::testDisposedByDesktopTerminate()
72 auto pListenerAdded(
new TestEventListener());
73 Reference<lang::XEventListener> xListenerAdded(pListenerAdded);
74 xComponent->addEventListener(xListenerAdded);
75 triggerDesktopTerminate();
76 CPPUNIT_ASSERT_EQUAL(
true, pListenerAdded->m_hasDisposingCalled);
FILE * init(int, char **)