summaryrefslogtreecommitdiff
path: root/sc/qa
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-01-17 12:37:57 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-01-18 18:12:11 +0100
commitc0e1ef3bcb6fa15b0b9aa75565b6e43df62c9ad8 (patch)
tree80a0c5e8ccc48a90936bad2f019b726d5d05914e /sc/qa
parent7fb6d6250792311d1a55d7435569c0b89efecba6 (diff)
terminate xcellrangesquery correctly
Diffstat (limited to 'sc/qa')
-rw-r--r--sc/qa/extras/xcellrangesquery.cxx42
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();