diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-01-17 12:37:57 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-01-18 18:12:11 +0100 |
commit | c0e1ef3bcb6fa15b0b9aa75565b6e43df62c9ad8 (patch) | |
tree | 80a0c5e8ccc48a90936bad2f019b726d5d05914e /sc | |
parent | 7fb6d6250792311d1a55d7435569c0b89efecba6 (diff) |
terminate xcellrangesquery correctly
Diffstat (limited to 'sc')
-rw-r--r-- | sc/qa/extras/xcellrangesquery.cxx | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/sc/qa/extras/xcellrangesquery.cxx b/sc/qa/extras/xcellrangesquery.cxx index dc9b77777747..78654e37ef08 100644 --- a/sc/qa/extras/xcellrangesquery.cxx +++ b/sc/qa/extras/xcellrangesquery.cxx @@ -34,18 +34,21 @@ #include <com/sun/star/sheet/XSheetCellRanges.hpp> #include <com/sun/star/table/CellAddress.hpp> #include <com/sun/star/sheet/CellFlags.hpp> +#include <com/sun/star/util/XCloseable.hpp> using namespace com::sun::star; namespace ScCellRangeBase { +#define NUMBER_OF_TESTS 5 + class ScXCellRangesQuery : public UnoApiTest { public: - ScXCellRangesQuery(); - uno::Reference<sheet::XCellRangesQuery> init(); + virtual void setUp(); + virtual void tearDown(); //Testcases void testQueryColumnDifference(); @@ -66,12 +69,15 @@ public: CPPUNIT_TEST(testQueryRowDifference); CPPUNIT_TEST_SUITE_END(); -}; +private: + uno::Reference<sheet::XCellRangesQuery> init(); -ScXCellRangesQuery::ScXCellRangesQuery() -{ + static int nTest; + static uno::Reference< lang::XComponent > xComponent; +}; -} +int ScXCellRangesQuery::nTest = 0; +uno::Reference< lang::XComponent > ScXCellRangesQuery::xComponent; uno::Reference<sheet::XCellRangesQuery> ScXCellRangesQuery::init() { @@ -79,7 +85,6 @@ uno::Reference<sheet::XCellRangesQuery> ScXCellRangesQuery::init() const rtl::OUString aFileBase(RTL_CONSTASCII_USTRINGPARAM("xcellrangesquery.ods")); createFileURL(aFileBase, aFileURL); std::cout << rtl::OUStringToOString(aFileURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl; - static uno::Reference< lang::XComponent > xComponent; if( !xComponent.is()) xComponent = loadFromDesktop(aFileURL); uno::Reference< sheet::XSpreadsheetDocument> xDoc (xComponent, UNO_QUERY_THROW); @@ -164,6 +169,29 @@ void ScXCellRangesQuery::testQueryVisibleCells() CPPUNIT_ASSERT_MESSAGE("testQueryFormulaCells", aResult == aExpected); } +void ScXCellRangesQuery::setUp() +{ + nTest += 1; + UnoApiTest::setUp(); +} + +void ScXCellRangesQuery::tearDown() +{ + if (nTest == NUMBER_OF_TESTS) + { + uno::Reference< util::XCloseable > xCloseable(xComponent, UNO_QUERY_THROW); + xCloseable->close( false ); + } + + UnoApiTest::tearDown(); + + if (nTest == NUMBER_OF_TESTS) + { + mxDesktop->terminate(); + uno::Reference< lang::XComponent>(m_xContext, UNO_QUERY_THROW)->dispose(); + } +} + CPPUNIT_TEST_SUITE_REGISTRATION(ScXCellRangesQuery); CPPUNIT_PLUGIN_IMPLEMENT(); |