sw/qa/api/SwXTextField.cxx | 20 ++++++++++++++++---- sw/qa/api/SwXTextTable.cxx | 28 +++++++++++++++++++++++----- 2 files changed, 39 insertions(+), 9 deletions(-)
New commits: commit 20ed81fd42cf8079c11c2b18973b9504a679e49c Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Thu Mar 19 23:36:21 2020 +0100 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Fri Mar 20 07:37:13 2020 +0100 Make individual tests clean up after themselves ...instead of relying on the final SwXTextTable testDisposedByDesktopTerminate to dispose all opened documents Change-Id: Ia0f44ab96e8ee2ee8fc6479fa23403ab8abf52da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90768 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/sw/qa/api/SwXTextField.cxx b/sw/qa/api/SwXTextField.cxx index 1de775d1e3d7..8273795a16f7 100644 --- a/sw/qa/api/SwXTextField.cxx +++ b/sw/qa/api/SwXTextField.cxx @@ -40,6 +40,7 @@ struct SwXTextField final : public test::BootstrapFixture, public apitest::XComponent { virtual void setUp() override; + void tearDown() override; Reference<XInterface> init() override; void triggerDesktopTerminate() override; @@ -49,6 +50,9 @@ struct SwXTextField final : public test::BootstrapFixture, CPPUNIT_TEST(testRemoveEventListener); //CPPUNIT_TEST(testDisposedByDesktopTerminate); CPPUNIT_TEST_SUITE_END(); + +private: + css::uno::Reference<css::lang::XComponent> component_; }; void SwXTextField::setUp() @@ -58,14 +62,22 @@ void SwXTextField::setUp() frame::Desktop::create(comphelper::getComponentContext(getMultiServiceFactory()))); } +void SwXTextField::tearDown() +{ + if (component_.is()) + { + component_->dispose(); + } +} + void SwXTextField::triggerDesktopTerminate() { mxDesktop->terminate(); } Reference<XInterface> SwXTextField::init() { - auto xComponent = loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument"); - CPPUNIT_ASSERT(xComponent.is()); - Reference<text::XTextDocument> xTextDocument(xComponent, UNO_QUERY_THROW); - Reference<lang::XMultiServiceFactory> xMSF(xComponent, UNO_QUERY_THROW); + component_ = loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument"); + CPPUNIT_ASSERT(component_.is()); + Reference<text::XTextDocument> xTextDocument(component_, UNO_QUERY_THROW); + Reference<lang::XMultiServiceFactory> xMSF(component_, UNO_QUERY_THROW); Reference<XPropertySet> xFieldMaster( xMSF->createInstance("com.sun.star.text.FieldMaster.Database"), UNO_QUERY_THROW); diff --git a/sw/qa/api/SwXTextTable.cxx b/sw/qa/api/SwXTextTable.cxx index bc4e0271ccf4..ed1bc0670251 100644 --- a/sw/qa/api/SwXTextTable.cxx +++ b/sw/qa/api/SwXTextTable.cxx @@ -12,7 +12,7 @@ #include <unotest/macros_test.hxx> #include <com/sun/star/frame/Desktop.hpp> - +#include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/text/XTextDocument.hpp> @@ -36,6 +36,7 @@ struct SwXTextTable final : public test::BootstrapFixture, public apitest::XComponent { virtual void setUp() override; + void tearDown() override; Reference<XInterface> init() override; void triggerDesktopTerminate() override; @@ -45,6 +46,9 @@ struct SwXTextTable final : public test::BootstrapFixture, CPPUNIT_TEST(testRemoveEventListener); CPPUNIT_TEST(testDisposedByDesktopTerminate); CPPUNIT_TEST_SUITE_END(); + +private: + css::uno::Reference<css::lang::XComponent> component_; }; void SwXTextTable::setUp() @@ -54,14 +58,28 @@ void SwXTextTable::setUp() frame::Desktop::create(comphelper::getComponentContext(getMultiServiceFactory()))); } +void SwXTextTable::tearDown() +{ + if (component_.is()) + { + try + { + component_->dispose(); + } + catch (css::lang::DisposedException&) // thrown by testDisposedByDesktopTerminate + { + } + } +} + void SwXTextTable::triggerDesktopTerminate() { mxDesktop->terminate(); } Reference<XInterface> SwXTextTable::init() { - auto xComponent = loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument"); - CPPUNIT_ASSERT(xComponent.is()); - Reference<text::XTextDocument> xTextDocument(xComponent, UNO_QUERY_THROW); - Reference<lang::XMultiServiceFactory> xMSF(xComponent, UNO_QUERY_THROW); + component_ = loadFromDesktop("private:factory/swriter", "com.sun.star.text.TextDocument"); + CPPUNIT_ASSERT(component_.is()); + Reference<text::XTextDocument> xTextDocument(component_, UNO_QUERY_THROW); + Reference<lang::XMultiServiceFactory> xMSF(component_, UNO_QUERY_THROW); Reference<text::XText> xText = xTextDocument->getText(); Reference<text::XTextCursor> xCursor = xText->createTextCursor(); Reference<text::XTextTable> xTable(xMSF->createInstance("com.sun.star.text.TextTable"), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits