[Libreoffice-commits] core.git: include/test qadevOOo/Jar_OOoRunner.mk qadevOOo/objdsc qadevOOo/tests sc/CppunitTest_sc_cellcursorobj.mk sc/Module_sc.mk sc/qa test/source
Paul Trojahn
paul.trojahn at gmail.com
Tue Jun 20 17:52:33 UTC 2017
include/test/sheet/xcellseries.hxx | 8
qadevOOo/Jar_OOoRunner.mk | 1
qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellCursorObj.csv | 2
qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangeObj.csv | 2
qadevOOo/tests/java/ifc/sheet/_XCellSeries.java | 237 ----------
sc/CppunitTest_sc_cellcursorobj.mk | 105 ++++
sc/Module_sc.mk | 1
sc/qa/extras/sccellcursorobj.cxx | 92 +++
sc/qa/extras/sccellrangeobj.cxx | 13
sc/qa/extras/sctablesheetobj.cxx | 26 -
sc/qa/extras/testdocuments/ScCellCursorObj.ods |binary
sc/qa/extras/testdocuments/xcellrangesquery.ods |binary
test/source/sheet/xcellrangesquery.cxx | 26 -
test/source/sheet/xcellseries.cxx | 84 ++-
14 files changed, 312 insertions(+), 285 deletions(-)
New commits:
commit 2516285d2a9b6b992f24867d39402ca5c29cd71d
Author: Paul Trojahn <paul.trojahn at gmail.com>
Date: Thu Jun 8 16:30:08 2017 +0200
tdf#45904 Move remaining XCellSeries test code to C++
Change-Id: Ie4ee1e52157dd38ac0defee2e9d5cfa822763183
Reviewed-on: https://gerrit.libreoffice.org/38807
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
diff --git a/include/test/sheet/xcellseries.hxx b/include/test/sheet/xcellseries.hxx
index 79fc4c7ea43d..d51d6d9e30b6 100644
--- a/include/test/sheet/xcellseries.hxx
+++ b/include/test/sheet/xcellseries.hxx
@@ -18,13 +18,21 @@ namespace apitest {
class OOO_DLLPUBLIC_TEST XCellSeries
{
public:
+ XCellSeries(sal_Int32 aStartX, sal_Int32 aStartY) : maStartX(aStartX), maStartY(aStartY){}
virtual css::uno::Reference< css::uno::XInterface > init() = 0;
virtual ~XCellSeries(){}
void testFillAuto();
void testFillSeries();
+
+private:
+ sal_Int32 maStartX;
+ sal_Int32 maStartY;
};
}
#endif // INCLUDED_TEST_SHEET_XCELLSERIES_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+
diff --git a/qadevOOo/Jar_OOoRunner.mk b/qadevOOo/Jar_OOoRunner.mk
index 869d17a9a1d5..da5822fcd1bd 100644
--- a/qadevOOo/Jar_OOoRunner.mk
+++ b/qadevOOo/Jar_OOoRunner.mk
@@ -600,7 +600,6 @@ $(eval $(call gb_Jar_add_sourcefiles,OOoRunner,\
qadevOOo/tests/java/ifc/sheet/_XCellRangeMovement \
qadevOOo/tests/java/ifc/sheet/_XCellRangeReferrer \
qadevOOo/tests/java/ifc/sheet/_XCellRangesQuery \
- qadevOOo/tests/java/ifc/sheet/_XCellSeries \
qadevOOo/tests/java/ifc/sheet/_XConsolidatable \
qadevOOo/tests/java/ifc/sheet/_XConsolidationDescriptor \
qadevOOo/tests/java/ifc/sheet/_XDatabaseRange \
diff --git a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellCursorObj.csv b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellCursorObj.csv
index ab228661b347..475086fddb03 100644
--- a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellCursorObj.csv
+++ b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellCursorObj.csv
@@ -222,8 +222,6 @@
"ScCellCursorObj";"com::sun::star::chart::XChartDataArray";"setRowDescriptions()"
"ScCellCursorObj";"com::sun::star::chart::XChartDataArray";"getColumnDescriptions()"
"ScCellCursorObj";"com::sun::star::chart::XChartDataArray";"setColumnDescriptions()"
-"ScCellCursorObj";"com::sun::star::sheet::XCellSeries";"fillSeries()"
-"ScCellCursorObj";"com::sun::star::sheet::XCellSeries";"fillAuto()"
"ScCellCursorObj";"com::sun::star::sheet::XCellFormatRangesSupplier";"getCellFormatRanges()"
"ScCellCursorObj";"com::sun::star::sheet::XSheetCellCursor";"collapseToCurrentRegion()"
"ScCellCursorObj";"com::sun::star::sheet::XSheetCellCursor";"collapseToCurrentArray()"
diff --git a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangeObj.csv b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangeObj.csv
index ee4353710eb2..a07777d2ecb8 100644
--- a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangeObj.csv
+++ b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangeObj.csv
@@ -215,8 +215,6 @@
"ScCellRangeObj";"com::sun::star::chart::XChartDataArray";"setRowDescriptions()"
"ScCellRangeObj";"com::sun::star::chart::XChartDataArray";"getColumnDescriptions()"
"ScCellRangeObj";"com::sun::star::chart::XChartDataArray";"setColumnDescriptions()"
-"ScCellRangeObj";"com::sun::star::sheet::XCellSeries";"fillSeries()"
-"ScCellRangeObj";"com::sun::star::sheet::XCellSeries";"fillAuto()"
"ScCellRangeObj";"com::sun::star::sheet::XCellFormatRangesSupplier";"getCellFormatRanges()"
"ScCellRangeObj";"com::sun::star::util::XModifyBroadcaster#optional";"addModifyListener()"
"ScCellRangeObj";"com::sun::star::util::XModifyBroadcaster#optional";"removeModifyListener()"
diff --git a/qadevOOo/tests/java/ifc/sheet/_XCellSeries.java b/qadevOOo/tests/java/ifc/sheet/_XCellSeries.java
deleted file mode 100644
index 72e078e9c0cb..000000000000
--- a/qadevOOo/tests/java/ifc/sheet/_XCellSeries.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-package ifc.sheet;
-
-import helper.LoggingThread;
-import lib.MultiMethodTest;
-import lib.Status;
-import lib.StatusException;
-
-import com.sun.star.sheet.XCellSeries;
-import com.sun.star.sheet.XSpreadsheet;
-import com.sun.star.uno.UnoRuntime;
-import share.LogWriter;
-
-
-public class _XCellSeries extends MultiMethodTest {
- public XCellSeries oObj = null;
- protected XSpreadsheet oSheet = null;
- protected boolean isSpreadSheet = false;
- protected boolean fillAuto = true;
- protected boolean forceFillAuto = false;
-
-
- @Override
- protected void before() {
- oSheet = (XSpreadsheet) tEnv.getObjRelation("SHEET");
-
- if (oSheet == null) {
- log.println("Object relation oSheet is missing");
- log.println("Trying to query the needed Interface");
- oSheet = UnoRuntime.queryInterface(
- XSpreadsheet.class, tEnv.getTestObject());
-
- if (oSheet == null) {
- throw new StatusException(Status.failed(
- "Object relation oSheet is missing"));
- } else {
- isSpreadSheet = true;
- }
- }
-
- Boolean myFillAuto = (Boolean) tEnv.getObjRelation("XCELLSERIES_FILLAUTO");
-
- if (myFillAuto != null) fillAuto = myFillAuto.booleanValue();
-
- if (tParam.containsKey("force_fillauto")){
- fillAuto = tParam.getBool("force_fillauto");
- forceFillAuto = tParam.getBool("force_fillauto");
- }
- }
-
- public void _fillAuto() {
-
- if ((isSpreadSheet && !forceFillAuto) || !fillAuto) {
- log.println("This method consumes to much time for a complete SpreadSheet");
- log.println("Please use parameter '-force_fillauto true' to force this test");
- tRes.tested("fillAuto()",Status.skipped(true));
- return;
- }
-
- boolean res = true;
-
- try {
- oSheet.getCellByPosition(0, 0).setValue(2);
-
- log.println(
- "calling oObj.fillAuto(com.sun.star.sheet.FillDirection.TO_RIGHT, 1)");
- oObj.fillAuto(com.sun.star.sheet.FillDirection.TO_RIGHT, 1);
- oSheet.getCellByPosition(0, 4).setFormula("=sum(A1:D1)");
-
- double getting = oSheet.getCellByPosition(0, 4).getValue();
- boolean locres = (getting == 14);
-
- if (!locres) {
- log.println("Operation failed");
- } else {
- log.println("Successful");
- }
-
- res &= locres;
-
- log.println(
- "calling oObj.fillAuto(com.sun.star.sheet.FillDirection.TO_BOTTOM, 1)");
- oObj.fillAuto(com.sun.star.sheet.FillDirection.TO_BOTTOM, 1);
- oSheet.getCellByPosition(4, 0).setFormula("=sum(A1:A4)");
- getting = oSheet.getCellByPosition(4, 0).getValue();
- locres = (getting == 14);
-
- if (!locres) {
- log.println("Operation failed");
- } else {
- log.println("Successful");
- }
-
- res &= locres;
- } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- log.println("Couldn't set initial version to cell");
- res = false;
- }
-
- tRes.tested("fillAuto()", res);
- }
-
- public void _fillSeries() {
-
- if (isSpreadSheet) {
- log.println("This method consumes to much time for a complete SpreadSheet");
- tRes.tested("fillSeries()",Status.skipped(true));
- return;
- }
-
- boolean res = true;
-
- try {
- oSheet.getCellByPosition(0, 0).setValue(2);
-
- LoggingThread logger = new LoggingThread((LogWriter)log, tParam);
- logger.start();
-
- log.println(
- "calling oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_RIGHT, com.sun.star.sheet.FillMode.LINEAR, com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2, 8)");
- oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_RIGHT,
- com.sun.star.sheet.FillMode.LINEAR,
- com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2, 8);
- oSheet.getCellByPosition(0, 4).setFormula("=sum(A1:D1)");
-
- double getting = oSheet.getCellByPosition(0, 4).getValue();
- boolean locres = (getting == 20);
-
- logger.finish();
-
- if (!locres) {
- log.println("Operation failed");
- } else {
- log.println("Successful");
- }
-
- res &= locres;
-
- logger = new LoggingThread((LogWriter)log, tParam);
- logger.start();
-
- log.println(
- "calling oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_RIGHT, com.sun.star.sheet.FillMode.GROWTH, com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2, 16)");
- oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_RIGHT,
- com.sun.star.sheet.FillMode.GROWTH,
- com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2,
- 16);
- oSheet.getCellByPosition(0, 4).setFormula("=sum(A1:D1)");
- getting = oSheet.getCellByPosition(0, 4).getValue();
- locres = (getting == 30);
-
- logger.finish();
-
- if (!locres) {
- log.println("Operation failed");
- } else {
- log.println("Successful");
- }
-
- res &= locres;
-
- logger = new LoggingThread((LogWriter)log, tParam);
- logger.start();
-
- log.println(
- "calling oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM, com.sun.star.sheet.FillMode.LINEAR, com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2, 8)");
- oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM,
- com.sun.star.sheet.FillMode.LINEAR,
- com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2, 8);
- oSheet.getCellByPosition(4, 0).setFormula("=sum(A1:A4)");
- getting = oSheet.getCellByPosition(4, 0).getValue();
- locres = (getting == 20);
-
- logger.finish();
-
- if (!locres) {
- log.println("Operation failed");
- } else {
- log.println("Successful");
- }
-
- res &= locres;
-
- logger = new LoggingThread((LogWriter)log, tParam);
- logger.start();
-
- log.println(
- "calling oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM, com.sun.star.sheet.FillMode.GROWTH, com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2, 16)");
- oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM,
- com.sun.star.sheet.FillMode.GROWTH,
- com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, 2,
- 16);
- oSheet.getCellByPosition(4, 0).setFormula("=sum(A1:A4)");
- getting = oSheet.getCellByPosition(4, 0).getValue();
- locres = (getting == 30);
-
- logger.finish();
-
- if (!locres) {
- log.println("Operation failed");
- } else {
- log.println("Successful");
- }
-
- res &= locres;
- } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
- log.println("Couldn't set initial version to cell");
- res = false;
- }
-
- tRes.tested("fillSeries()", res);
- }
-
- /**
- * Forces environment recreation.
- */
- @Override
- public void after() {
- disposeEnvironment();
- }
-}
\ No newline at end of file
diff --git a/sc/CppunitTest_sc_cellcursorobj.mk b/sc/CppunitTest_sc_cellcursorobj.mk
new file mode 100644
index 000000000000..fd2a0e874d5f
--- /dev/null
+++ b/sc/CppunitTest_sc_cellcursorobj.mk
@@ -0,0 +1,105 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sc_cellcursorobj))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sc_cellcursorobj, \
+ sc/qa/extras/sccellcursorobj \
+))
+
+$(eval $(call gb_CppunitTest_use_external,sc_cellcursorobj,boost_headers))
+
+$(eval $(call gb_CppunitTest_use_libraries,sc_cellcursorobj, \
+ basegfx \
+ comphelper \
+ cppu \
+ cppuhelper \
+ drawinglayer \
+ editeng \
+ for \
+ forui \
+ i18nlangtag \
+ msfilter \
+ oox \
+ sal \
+ salhelper \
+ sax \
+ sb \
+ sc \
+ sfx \
+ sot \
+ subsequenttest \
+ svl \
+ svt \
+ svx \
+ svxcore \
+ test \
+ tk \
+ tl \
+ ucbhelper \
+ unotest \
+ utl \
+ vbahelper \
+ vcl \
+ xo \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sc_cellcursorobj,\
+ -I$(SRCDIR)/sc/source/ui/inc \
+ -I$(SRCDIR)/sc/inc \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,sc_cellcursorobj))
+
+$(eval $(call gb_CppunitTest_use_ure,sc_cellcursorobj))
+$(eval $(call gb_CppunitTest_use_vcl,sc_cellcursorobj))
+
+$(eval $(call gb_CppunitTest_use_components,sc_cellcursorobj,\
+ basic/util/sb \
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ dbaccess/util/dba \
+ filter/source/config/cache/filterconfig1 \
+ filter/source/storagefilterdetect/storagefd \
+ forms/util/frm \
+ framework/util/fwk \
+ i18npool/util/i18npool \
+ linguistic/source/lng \
+ oox/util/oox \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ scripting/source/basprov/basprov \
+ scripting/util/scriptframe \
+ sc/util/sc \
+ sc/util/scd \
+ sc/util/scfilt \
+ $(call gb_Helper_optional,SCRIPTING, \
+ sc/util/vbaobj) \
+ sfx2/util/sfx \
+ sot/util/sot \
+ svl/source/fsstor/fsstorage \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/file/ucpfile1 \
+ ucb/source/ucp/tdoc/ucptdoc1 \
+ unotools/util/utl \
+ unoxml/source/rdf/unordf \
+ unoxml/source/service/unoxml \
+ uui/util/uui \
+ xmloff/util/xo \
+ svtools/util/svt \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sc_cellcursorobj))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 2f5cd5dd317b..e19747e05b3b 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -120,6 +120,7 @@ $(eval $(call gb_Module_add_subsequentcheck_targets,sc,\
CppunitTest_sc_check_data_pilot_field \
CppunitTest_sc_check_data_pilot_table \
CppunitTest_sc_viewpaneobj \
+ CppunitTest_sc_cellcursorobj \
))
$(eval $(call gb_Module_add_perfcheck_targets,sc,\
diff --git a/sc/qa/extras/sccellcursorobj.cxx b/sc/qa/extras/sccellcursorobj.cxx
new file mode 100644
index 000000000000..eedec6e58a97
--- /dev/null
+++ b/sc/qa/extras/sccellcursorobj.cxx
@@ -0,0 +1,92 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/calc_unoapi_test.hxx>
+#include <test/sheet/xcellseries.hxx>
+
+#include <com/sun/star/table/XCellCursor.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+
+using namespace css;
+using namespace css::uno;
+
+namespace sc_apitest {
+
+#define NUMBER_OF_TESTS 2
+
+class ScCellCursorObj : public CalcUnoApiTest, apitest::XCellSeries
+{
+public:
+ ScCellCursorObj();
+
+ virtual void setUp() override;
+ virtual void tearDown() override;
+ virtual uno::Reference< uno::XInterface > init() override;
+
+ CPPUNIT_TEST_SUITE(ScCellCursorObj);
+ CPPUNIT_TEST(testFillAuto);
+ CPPUNIT_TEST(testFillSeries);
+ CPPUNIT_TEST_SUITE_END();
+
+private:
+ static sal_Int32 nTest;
+ static uno::Reference< lang::XComponent > mxComponent;
+};
+
+sal_Int32 ScCellCursorObj::nTest = 0;
+uno::Reference< lang::XComponent > ScCellCursorObj::mxComponent;
+
+ScCellCursorObj::ScCellCursorObj():
+ CalcUnoApiTest("/sc/qa/extras/testdocuments"),
+ apitest::XCellSeries(0, 0)
+{
+}
+
+uno::Reference< uno::XInterface > ScCellCursorObj::init()
+{
+ OUString aFileURL;
+ createFileURL("ScCellCursorObj.ods", aFileURL);
+ if(!mxComponent.is())
+ mxComponent = loadFromDesktop(aFileURL, "com.sun.star.sheet.SpreadsheetDocument");
+ CPPUNIT_ASSERT(mxComponent.is());
+
+ 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(0), UNO_QUERY_THROW);
+ uno::Reference< table::XCellCursor > xCellCursor( xSheet->createCursor(), UNO_QUERY_THROW);
+
+ return xCellCursor;
+}
+
+void ScCellCursorObj::setUp()
+{
+ nTest++;
+ CPPUNIT_ASSERT(nTest <= NUMBER_OF_TESTS);
+ CalcUnoApiTest::setUp();
+}
+
+void ScCellCursorObj::tearDown()
+{
+ if (nTest == NUMBER_OF_TESTS)
+ {
+ closeDocument(mxComponent);
+ mxComponent.clear();
+ }
+
+ CalcUnoApiTest::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ScCellCursorObj);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/extras/sccellrangeobj.cxx b/sc/qa/extras/sccellrangeobj.cxx
index e66882f40305..65c9c697ba07 100644
--- a/sc/qa/extras/sccellrangeobj.cxx
+++ b/sc/qa/extras/sccellrangeobj.cxx
@@ -13,6 +13,7 @@
#include <test/util/xreplaceable.hxx>
#include <test/util/xsearchable.hxx>
#include <test/sheet/xcellrangedata.hxx>
+#include <test/sheet/xcellseries.hxx>
#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
#include <com/sun/star/sheet/XSpreadsheet.hpp>
@@ -26,10 +27,11 @@ using namespace css::uno;
namespace sc_apitest {
-#define NUMBER_OF_TESTS 15
+#define NUMBER_OF_TESTS 17
class ScCellRangeObj : public CalcUnoApiTest, public apitest::XCellRangesQuery, public apitest::CellProperties,
- public apitest::XSearchable, public apitest::XReplaceable, public apitest::XCellRangeData
+ public apitest::XSearchable, public apitest::XReplaceable, public apitest::XCellRangeData,
+ public apitest::XCellSeries
{
public:
ScCellRangeObj();
@@ -58,6 +60,8 @@ public:
CPPUNIT_TEST(testGetDataArray);
CPPUNIT_TEST(testSetDataArray);
CPPUNIT_TEST(testSortOOB);
+ CPPUNIT_TEST(testFillAuto);
+ CPPUNIT_TEST(testFillSeries);
CPPUNIT_TEST_SUITE_END();
private:
@@ -71,7 +75,8 @@ uno::Reference< lang::XComponent > ScCellRangeObj::mxComponent;
ScCellRangeObj::ScCellRangeObj():
CalcUnoApiTest("/sc/qa/extras/testdocuments"),
apitest::XSearchable("15", 1),
- apitest::XReplaceable("15", "35")
+ apitest::XReplaceable("15", "35"),
+ apitest::XCellSeries(2, 1)
{
}
@@ -89,7 +94,7 @@ uno::Reference< uno::XInterface > ScCellRangeObj::init()
CPPUNIT_ASSERT_MESSAGE("Could not create interface of type XSpreadsheet", xSheet.is());
- uno::Reference<table::XCellRange> xReturn(xSheet->getCellRangeByPosition(0,0,3,4), UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> xReturn(xSheet->getCellRangeByPosition(0,0,4,4), UNO_QUERY_THROW);
CPPUNIT_ASSERT_MESSAGE("Could not create object of type XCellRangesQuery", xReturn.is());
return xReturn;
diff --git a/sc/qa/extras/sctablesheetobj.cxx b/sc/qa/extras/sctablesheetobj.cxx
index d5bcde236bf5..fabe8b7b0d76 100644
--- a/sc/qa/extras/sctablesheetobj.cxx
+++ b/sc/qa/extras/sctablesheetobj.cxx
@@ -22,11 +22,14 @@ using namespace css::uno;
namespace sc_apitest
{
+#define NUMBER_OF_TESTS 9
+
class ScTableSheetObj : public CalcUnoApiTest, public apitest::XSearchable, public apitest::XReplaceable, public apitest::XPrintAreas, public apitest::XCellSeries
{
public:
ScTableSheetObj();
+ virtual void setUp() override;
virtual void tearDown() override;
virtual uno::Reference< uno::XInterface > init() override;
@@ -46,13 +49,18 @@ public:
CPPUNIT_TEST_SUITE_END();
private:
- uno::Reference< lang::XComponent > mxComponent;
+ static sal_Int32 nTest;
+ static uno::Reference< lang::XComponent > mxComponent;
};
+sal_Int32 ScTableSheetObj::nTest = 0;
+uno::Reference< lang::XComponent > ScTableSheetObj::mxComponent;
+
ScTableSheetObj::ScTableSheetObj():
CalcUnoApiTest("/sc/qa/extras/testdocuments"),
apitest::XSearchable("test", 4),
- apitest::XReplaceable("searchReplaceString", "replaceReplaceString")
+ apitest::XReplaceable("searchReplaceString", "replaceReplaceString"),
+ apitest::XCellSeries(1, 0)
{
}
@@ -71,10 +79,20 @@ uno::Reference< uno::XInterface > ScTableSheetObj::init()
return xSheet;
}
+void ScTableSheetObj::setUp()
+{
+ nTest++;
+ CPPUNIT_ASSERT(nTest <= NUMBER_OF_TESTS);
+ CalcUnoApiTest::setUp();
+}
+
void ScTableSheetObj::tearDown()
{
- closeDocument(mxComponent);
- mxComponent.clear();
+ if (nTest == NUMBER_OF_TESTS)
+ {
+ closeDocument(mxComponent);
+ mxComponent.clear();
+ }
CalcUnoApiTest::tearDown();
}
diff --git a/sc/qa/extras/testdocuments/ScCellCursorObj.ods b/sc/qa/extras/testdocuments/ScCellCursorObj.ods
new file mode 100644
index 000000000000..fbb054f59f2e
Binary files /dev/null and b/sc/qa/extras/testdocuments/ScCellCursorObj.ods differ
diff --git a/sc/qa/extras/testdocuments/xcellrangesquery.ods b/sc/qa/extras/testdocuments/xcellrangesquery.ods
index ec7335fb09d2..494d79d369fe 100644
Binary files a/sc/qa/extras/testdocuments/xcellrangesquery.ods and b/sc/qa/extras/testdocuments/xcellrangesquery.ods differ
diff --git a/test/source/sheet/xcellrangesquery.cxx b/test/source/sheet/xcellrangesquery.cxx
index 16ca44f94b8a..4838c65746de 100644
--- a/test/source/sheet/xcellrangesquery.cxx
+++ b/test/source/sheet/xcellrangesquery.cxx
@@ -29,67 +29,67 @@ void XCellRangesQuery::testQueryColumnDifference()
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryColumnDifferences(table::CellAddress(0, 1, 1));
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryColumnDifference: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryColumnDifference", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryColumnDifference", aExpected, aResult);
}
void XCellRangesQuery::testQueryContentDifference()
{
- OUString aExpected( "Sheet1.B2:B3" );
+ OUString aExpected( "Sheet1.B3,Sheet1.C2" );
uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(init(),UNO_QUERY_THROW);
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryContentCells(sheet::CellFlags::VALUE);
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryContentDifference: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryContentDifference", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryContentDifference", aExpected, aResult);
}
void XCellRangesQuery::testQueryEmptyCells()
{
- OUString aExpected( "Sheet1.A1:A5,Sheet1.B1:C1,Sheet1.B5,Sheet1.C3:C5,Sheet1.D1:D5" );
+ OUString aExpected( "Sheet1.A1:A5,Sheet1.B1:C1,Sheet1.B5,Sheet1.C3:C5,Sheet1.D1:E5" );
uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(init(),UNO_QUERY_THROW);
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryEmptyCells();
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryEmptyCells: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryEmptyCells", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryEmptyCells", aExpected, aResult);
}
void XCellRangesQuery::testQueryFormulaCells()
{
- OUString aExpected( "Sheet1.C2" );
+ OUString aExpected( "Sheet1.B2" );
uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(init(),UNO_QUERY_THROW);
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryFormulaCells(sheet::CellFlags::FORMULA);
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryFormulaCells: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryFormulaCells", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryFormulaCells", aExpected, aResult);
}
void XCellRangesQuery::testQueryIntersection()
{
- OUString aExpected( "Sheet1.D4:D5" );
+ OUString aExpected( "Sheet1.D4:E5" );
uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(init(),UNO_QUERY_THROW);
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryIntersection(table::CellRangeAddress(0,3,3,7,7));
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryIntersection: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryIntersection", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryIntersection", aExpected, aResult);
}
void XCellRangesQuery::testQueryRowDifference()
{
- OUString aExpected( "Sheet1.A2:A4,Sheet1.C2:D4" );
+ OUString aExpected( "Sheet1.A2:A4,Sheet1.C2:E4" );
uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(init(),UNO_QUERY_THROW);
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryRowDifferences(table::CellAddress(0,1,1));
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryRowDifference: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryRowDifference", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryRowDifference", aExpected, aResult);
}
void XCellRangesQuery::testQueryVisibleCells()
{
- OUString aExpected( "Sheet1.A1:D5" );
+ OUString aExpected( "Sheet1.A1:E5" );
uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(init(),UNO_QUERY_THROW);
uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryVisibleCells();
OUString aResult = xRanges->getRangeAddressesAsString();
std::cout << "testQueryVisibleCells: Result: " << aResult << std::endl;
- CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryVisibleCells", aResult, aExpected);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testQueryVisibleCells", aExpected, aResult);
}
}
diff --git a/test/source/sheet/xcellseries.cxx b/test/source/sheet/xcellseries.cxx
index a1ccd87c3235..61dbcecdc751 100644
--- a/test/source/sheet/xcellseries.cxx
+++ b/test/source/sheet/xcellseries.cxx
@@ -22,53 +22,93 @@ namespace apitest {
void XCellSeries::testFillAuto()
{
uno::Reference<table::XCellRange> xCellRange(init(), UNO_QUERY_THROW);
+ sal_Int32 maValue = xCellRange->getCellByPosition(maStartX, maStartY)->getValue();
- uno::Reference<table::XCellRange> xCellRangeH(xCellRange->getCellRangeByPosition(1, 0, 4, 0), UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> xCellRangeH(xCellRange->getCellRangeByPosition(maStartX, maStartY, maStartX + 2, maStartY), UNO_QUERY_THROW);
uno::Reference<sheet::XCellSeries> xCellSeriesH(xCellRangeH, UNO_QUERY_THROW);
xCellSeriesH->fillAuto(sheet::FillDirection_TO_RIGHT, 1);
- uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(5, 0), UNO_QUERY_THROW);
- xCellResultH->setFormula("=SUM(B1:E1)");
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillAuto with TO_RIGHT", 14., xCellResultH->getValue());
+ sal_Int32 sumH = 0;
+ for(sal_Int32 i = 0; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(maStartX + i, maStartY), UNO_QUERY_THROW);
+ sumH += xCellResultH->getValue();
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillAuto with TO_RIGHT", maValue * 3 + 3, sumH);
- uno::Reference<table::XCellRange> xCellRangeV(xCellRange->getCellRangeByPosition(1, 0, 1, 3), UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> xCellRangeV(xCellRange->getCellRangeByPosition(maStartX, maStartY, maStartX, maStartY + 2), UNO_QUERY_THROW);
uno::Reference<sheet::XCellSeries> xCellSeriesV(xCellRangeV, UNO_QUERY_THROW);
xCellSeriesV->fillAuto(sheet::FillDirection_TO_BOTTOM, 1);
- uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(1, 4), UNO_QUERY_THROW);
- xCellResultV->setFormula("=SUM(B1:B4)");
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillAuto with TO_BOTTOM", 14., xCellResultV->getValue());
+ sal_Int32 sumV = 0;
+ for(sal_Int32 i = 0; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(maStartX, maStartY + i), UNO_QUERY_THROW);
+ sumV += xCellResultV->getValue();
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillAuto with TO_BOTTOM", maValue * 3 + 3, sumV);
+
+ for(sal_Int32 i = 1; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(maStartX + i, maStartY), UNO_QUERY_THROW);
+ xCellResultH->setFormula("");
+ uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(maStartX, maStartY + i), UNO_QUERY_THROW);
+ xCellResultV->setFormula("");
+ }
}
void XCellSeries::testFillSeries()
{
uno::Reference<table::XCellRange> xCellRange(init(), UNO_QUERY_THROW);
+ sal_Int32 maValue = xCellRange->getCellByPosition(maStartX, maStartY)->getValue();
- uno::Reference<table::XCellRange> xCellRangeH(xCellRange->getCellRangeByPosition(1, 0, 4, 0), UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> xCellRangeH(xCellRange->getCellRangeByPosition(maStartX, maStartY, maStartX + 2, maStartY), UNO_QUERY_THROW);
uno::Reference<sheet::XCellSeries> xCellSeriesH(xCellRangeH, UNO_QUERY_THROW);
xCellSeriesH->fillSeries(sheet::FillDirection_TO_RIGHT,
sheet::FillMode_LINEAR,
- sheet::FillDateMode_FILL_DATE_DAY, 2, 8);
- uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(5, 0), UNO_QUERY_THROW);
- xCellResultH->setFormula("=SUM(B1:E1)");
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_RIGHT and LINEAR", 20., xCellResultH->getValue());
+ sheet::FillDateMode_FILL_DATE_DAY, 2, 1000);
+ sal_Int32 sumH = 0;
+ for(sal_Int32 i = 0; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(maStartX + i, maStartY), UNO_QUERY_THROW);
+ sumH += xCellResultH->getValue();
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_RIGHT and LINEAR", maValue * 3 + 6, sumH);
xCellSeriesH->fillSeries(sheet::FillDirection_TO_RIGHT,
sheet::FillMode_GROWTH,
- sheet::FillDateMode_FILL_DATE_DAY, 2, 16);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_RIGHT and GROWTH", 30., xCellResultH->getValue());
+ sheet::FillDateMode_FILL_DATE_DAY, 2, 1000);
+ sumH = 0;
+ for(sal_Int32 i = 0; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(maStartX + i, maStartY), UNO_QUERY_THROW);
+ sumH += xCellResultH->getValue();
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_RIGHT and GROWTH", maValue + maValue * 2 + maValue * 4, sumH);
- uno::Reference<table::XCellRange> xCellRangeV(xCellRange->getCellRangeByPosition(1, 0, 1, 3), UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> xCellRangeV(xCellRange->getCellRangeByPosition(maStartX, maStartY, maStartX, maStartY + 2), UNO_QUERY_THROW);
uno::Reference<sheet::XCellSeries> xCellSeriesV(xCellRangeV, UNO_QUERY_THROW);
xCellSeriesV->fillSeries(sheet::FillDirection_TO_BOTTOM,
sheet::FillMode_LINEAR,
- sheet::FillDateMode_FILL_DATE_DAY, 2, 8);
- uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(1, 4), UNO_QUERY_THROW);
- xCellResultV->setFormula("=SUM(B1:B4)");
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_BOTTOM and LINEAR", 20., xCellResultV->getValue());
+ sheet::FillDateMode_FILL_DATE_DAY, 2, 1000);
+ sal_Int32 sumV = 0;
+ for(sal_Int32 i = 0; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(maStartX, maStartY + i), UNO_QUERY_THROW);
+ sumV += xCellResultV->getValue();
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_BOTTOM and LINEAR", maValue * 3 + 6, sumV);
xCellSeriesV->fillSeries(sheet::FillDirection_TO_BOTTOM,
sheet::FillMode_GROWTH,
- sheet::FillDateMode_FILL_DATE_DAY, 2, 16);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_BOTTOM and GROWTH", 30., xCellResultV->getValue());
+ sheet::FillDateMode_FILL_DATE_DAY, 2, 1000);
+ sumV = 0;
+ for(sal_Int32 i = 0; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(maStartX, maStartY + i), UNO_QUERY_THROW);
+ sumV += xCellResultV->getValue();
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong result for fillSeries with TO_BOTTOM and GROWTH", maValue + maValue * 2 + maValue * 4, sumV);
+
+ for(sal_Int32 i = 1; i < 3; i++) {
+ uno::Reference<table::XCell> xCellResultH(xCellRange->getCellByPosition(maStartX + i, maStartY), UNO_QUERY_THROW);
+ xCellResultH->setFormula("");
+ uno::Reference<table::XCell> xCellResultV(xCellRange->getCellByPosition(maStartX, maStartY + i), UNO_QUERY_THROW);
+ xCellResultV->setFormula("");
+ }
}
}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list