sc/qa/extras/sccellrangeobj.cxx | 28 +++++++ sc/qa/extras/testdocuments/xcellrangesquery.ods |binary test/Library_subsequenttest.mk | 1 test/Package_inc.mk | 1 test/inc/test/sheet/xcellrangedata.hxx | 48 ++++++++++++ test/source/sheet/xcellrangedata.cxx | 89 ++++++++++++++++++++++++ 6 files changed, 165 insertions(+), 2 deletions(-)
New commits: commit 7b91c6d1c0686b06de4d2e87b02df10aa9afbf4c Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Feb 17 01:59:32 2012 +0100 add test for ScCellRangeObj::setDataArray and getDataArray diff --git a/sc/qa/extras/sccellrangeobj.cxx b/sc/qa/extras/sccellrangeobj.cxx index 050724d..2152a2d 100644 --- a/sc/qa/extras/sccellrangeobj.cxx +++ b/sc/qa/extras/sccellrangeobj.cxx @@ -31,6 +31,7 @@ #include <test/sheet/cellproperties.hxx> #include <test/util/xreplaceable.hxx> #include <test/util/xsearchable.hxx> +#include <test/sheet/xcellrangedata.hxx> #include <com/sun/star/sheet/XSpreadsheetDocument.hpp> #include <com/sun/star/sheet/XSpreadsheet.hpp> @@ -38,10 +39,10 @@ namespace sc_apitest { -#define NUMBER_OF_TESTS 12 +#define NUMBER_OF_TESTS 14 class ScCellRangeObj : public UnoApiTest, apitest::XCellRangesQuery, apitest::CellProperties, - apitest::XSearchable, apitest::XReplaceable + apitest::XSearchable, apitest::XReplaceable, apitest::XCellRangeData { public: ScCellRangeObj(); @@ -49,6 +50,7 @@ public: virtual void setUp(); virtual void tearDown(); virtual uno::Reference< uno::XInterface > init(); + virtual uno::Reference< uno::XInterface > getXCellRangeData(); CPPUNIT_TEST_SUITE(ScCellRangeObj); CPPUNIT_TEST(testQueryColumnDifference); @@ -64,6 +66,8 @@ public: CPPUNIT_TEST(testFindFirst); CPPUNIT_TEST(testReplaceAll); CPPUNIT_TEST(testCreateReplaceDescriptor); + CPPUNIT_TEST(testGetDataArray); + CPPUNIT_TEST(testSetDataArray); CPPUNIT_TEST_SUITE_END(); private: @@ -101,6 +105,26 @@ uno::Reference< uno::XInterface > ScCellRangeObj::init() return xReturn; } +uno::Reference< uno::XInterface > ScCellRangeObj::getXCellRangeData() +{ + rtl::OUString aFileURL; + const rtl::OUString aFileBase(RTL_CONSTASCII_USTRINGPARAM("xcellrangesquery.ods")); + createFileURL(aFileBase, aFileURL); + std::cout << rtl::OUStringToOString(aFileURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl; + if( !mxComponent.is()) + mxComponent = loadFromDesktop(aFileURL); + uno::Reference< sheet::XSpreadsheetDocument> xDoc (mxComponent, UNO_QUERY_THROW); + uno::Reference< container::XIndexAccess > xIndex (xDoc->getSheets(), UNO_QUERY_THROW); + uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex(1), UNO_QUERY_THROW); + + CPPUNIT_ASSERT_MESSAGE("Could not create interface of type XSpreadsheet", xSheet.is()); + + uno::Reference<table::XCellRange> xReturn(xSheet->getCellRangeByPosition(0,0,3,3), UNO_QUERY_THROW); + + CPPUNIT_ASSERT_MESSAGE("Could not create object of type XCellRangesQuery", xReturn.is()); + return xReturn; +} + void ScCellRangeObj::setUp() { nTest++; diff --git a/sc/qa/extras/testdocuments/xcellrangesquery.ods b/sc/qa/extras/testdocuments/xcellrangesquery.ods index 562229c..ec7335f 100644 Binary files a/sc/qa/extras/testdocuments/xcellrangesquery.ods and b/sc/qa/extras/testdocuments/xcellrangesquery.ods differ commit 4e1e72dc346e732ff5693e5428e39710ca3b78a5 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Feb 17 01:41:04 2012 +0100 add test code for XCellRangeData diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk index 6c1556f..53cc8e4 100644 --- a/test/Library_subsequenttest.mk +++ b/test/Library_subsequenttest.mk @@ -69,6 +69,7 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\ test/source/container/xnamed \ test/source/sheet/cellproperties \ test/source/sheet/datapilotfield \ + test/source/sheet/xcellrangedata \ test/source/sheet/xcellrangesquery \ test/source/sheet/xdatabaserange \ test/source/sheet/xdatapilotdescriptor \ diff --git a/test/Package_inc.mk b/test/Package_inc.mk index 55a50af..768c6a8 100644 --- a/test/Package_inc.mk +++ b/test/Package_inc.mk @@ -40,6 +40,7 @@ $(eval $(call gb_Package_add_file,test_inc,inc/test/container/xindexaccess.hxx,t $(eval $(call gb_Package_add_file,test_inc,inc/test/container/xnamecontainer.hxx,test/container/xnamecontainer.hxx)) $(eval $(call gb_Package_add_file,test_inc,inc/test/container/xnamereplace.hxx,test/container/xnamereplace.hxx)) $(eval $(call gb_Package_add_file,test_inc,inc/test/sheet/cellproperties.hxx,test/sheet/cellproperties.hxx)) +$(eval $(call gb_Package_add_file,test_inc,inc/test/sheet/xcellrangedata.hxx,test/sheet/xcellrangedata.hxx)) $(eval $(call gb_Package_add_file,test_inc,inc/test/sheet/xdatapilottable.hxx,test/sheet/xdatapilottable.hxx)) $(eval $(call gb_Package_add_file,test_inc,inc/test/sheet/xdatapilottable2.hxx,test/sheet/xdatapilottable2.hxx)) $(eval $(call gb_Package_add_file,test_inc,inc/test/sheet/xdatapilotfieldgrouping.hxx,test/sheet/xdatapilotfieldgrouping.hxx)) diff --git a/test/inc/test/sheet/xcellrangedata.hxx b/test/inc/test/sheet/xcellrangedata.hxx new file mode 100644 index 0000000..013b01f --- /dev/null +++ b/test/inc/test/sheet/xcellrangedata.hxx @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2012 Markus Mohrhard <markus.mohrh...@googlemail.com> (initial developer) + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#include <com/sun/star/uno/Reference.hxx> +#include <test/testdllapi.hxx> + +using namespace com::sun::star; + +namespace apitest { + +class OOO_DLLPUBLIC_TEST XCellRangeData +{ +public: + + virtual uno::Reference< uno::XInterface > getXCellRangeData() = 0; + + void testGetDataArray(); + void testSetDataArray(); +}; + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/test/source/sheet/xcellrangedata.cxx b/test/source/sheet/xcellrangedata.cxx new file mode 100644 index 0000000..02f46df --- /dev/null +++ b/test/source/sheet/xcellrangedata.cxx @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2012 Markus Mohrhard <markus.mohrh...@googlemail.com> (initial developer) + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#include <test/sheet/xcellrangedata.hxx> +#include <com/sun/star/sheet/XCellRangeData.hpp> + +#include "cppunit/extensions/HelperMacros.h" + +using namespace com::sun::star::uno; + +namespace apitest { + +namespace { + +void setValues(uno::Sequence< uno::Sequence < Any > >& rColRow, double nOffset) +{ + for (sal_Int32 i = 0; i < 4; ++i) + { + rColRow[i].realloc(4); + for (sal_Int32 j = 0; j < 4; ++j) + { + Any& aAny = rColRow[i][j]; + double nValue = i + j + nOffset; + aAny <<= nValue; + } + } +} + +} + +void XCellRangeData::testSetDataArray() +{ + uno::Reference< sheet::XCellRangeData > xCellRangeData( getXCellRangeData(), UNO_QUERY_THROW); + + uno::Sequence< uno::Sequence < Any > > aColRow; + aColRow.realloc(4); + setValues(aColRow, 1); + xCellRangeData->setDataArray(aColRow); + // need to check here for correct values + + // set old values + setValues(aColRow, 0); + xCellRangeData->setDataArray(aColRow); +} + +void XCellRangeData::testGetDataArray() +{ + uno::Reference< sheet::XCellRangeData > xCellRangeData( getXCellRangeData(), UNO_QUERY_THROW); + uno::Sequence< uno::Sequence < Any > > aColRow = xCellRangeData->getDataArray(); + for ( sal_Int32 i = 0; i < aColRow.getLength(); ++i) + { + for ( sal_Int32 j = 0; j < aColRow[i].getLength(); ++j) + { + Any& aAny = aColRow[i][j]; + double nValue = 0.0; + CPPUNIT_ASSERT( aAny >>= nValue); + CPPUNIT_ASSERT_DOUBLES_EQUAL(static_cast<double>(i+j), nValue, 0.000001); + } + } +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits