diff options
author | Paul Trojahn <[email protected]> | 2017-05-27 22:38:15 +0200 |
---|---|---|
committer | Markus Mohrhard <[email protected]> | 2017-06-08 02:45:54 +0200 |
commit | f1454b474d9248d7ef2cb84f396a974184e5167e (patch) | |
tree | c9424982921a5b64b0f0dc5a449dd01f949f7118 | |
parent | a87b001abdfb21a88ed3919003831909fb2ad8eb (diff) |
tdf#45904 Move java XCellSeries test to c++
Change-Id: Iedc1023b67138727061c2da13bebdb75af370ec6
Reviewed-on: https://gerrit.libreoffice.org/38105
Tested-by: Jenkins <[email protected]>
Reviewed-by: Markus Mohrhard <[email protected]>
-rw-r--r-- | include/test/sheet/xcellseries.hxx | 30 | ||||
-rw-r--r-- | qadevOOo/Jar_OOoRunner.mk | 1 | ||||
-rw-r--r-- | qadevOOo/tests/java/ifc/sheet/_XCellSeries.java | 237 | ||||
-rw-r--r-- | sc/qa/extras/sctablesheetobj.cxx | 6 | ||||
-rw-r--r-- | sc/qa/extras/testdocuments/ScTableSheetObj.ods | bin | 8021 -> 8640 bytes | |||
-rw-r--r-- | test/Library_subsequenttest.mk | 1 | ||||
-rw-r--r-- | test/source/sheet/xcellseries.cxx | 74 |
7 files changed, 110 insertions, 239 deletions
diff --git a/include/test/sheet/xcellseries.hxx b/include/test/sheet/xcellseries.hxx new file mode 100644 index 000000000000..79fc4c7ea43d --- /dev/null +++ b/include/test/sheet/xcellseries.hxx @@ -0,0 +1,30 @@ +/* -*- 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/. + */ + +#ifndef INCLUDED_TEST_SHEET_XCELLSERIES_HXX +#define INCLUDED_TEST_SHEET_XCELLSERIES_HXX + +#include <com/sun/star/uno/XInterface.hpp> +#include <test/testdllapi.hxx> + +namespace apitest { + +class OOO_DLLPUBLIC_TEST XCellSeries +{ +public: + virtual css::uno::Reference< css::uno::XInterface > init() = 0; + virtual ~XCellSeries(){} + + void testFillAuto(); + void testFillSeries(); +}; + +} + +#endif // INCLUDED_TEST_SHEET_XCELLSERIES_HXX 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/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/qa/extras/sctablesheetobj.cxx b/sc/qa/extras/sctablesheetobj.cxx index f154240d7ee6..d5bcde236bf5 100644 --- a/sc/qa/extras/sctablesheetobj.cxx +++ b/sc/qa/extras/sctablesheetobj.cxx @@ -11,6 +11,7 @@ #include <test/util/xreplaceable.hxx> #include <test/util/xsearchable.hxx> #include <test/sheet/xprintareas.hxx> +#include <test/sheet/xcellseries.hxx> #include <com/sun/star/sheet/XSpreadsheetDocument.hpp> #include <com/sun/star/sheet/XSpreadsheet.hpp> @@ -21,7 +22,7 @@ using namespace css::uno; namespace sc_apitest { -class ScTableSheetObj : public CalcUnoApiTest, public apitest::XSearchable, public apitest::XReplaceable, public apitest::XPrintAreas +class ScTableSheetObj : public CalcUnoApiTest, public apitest::XSearchable, public apitest::XReplaceable, public apitest::XPrintAreas, public apitest::XCellSeries { public: ScTableSheetObj(); @@ -39,6 +40,9 @@ public: // XPrintAreas CPPUNIT_TEST(testSetAndGetPrintTitleColumns); CPPUNIT_TEST(testSetAndGetPrintTitleRows); + // XCellSeries + CPPUNIT_TEST(testFillAuto); + CPPUNIT_TEST(testFillSeries); CPPUNIT_TEST_SUITE_END(); private: diff --git a/sc/qa/extras/testdocuments/ScTableSheetObj.ods b/sc/qa/extras/testdocuments/ScTableSheetObj.ods Binary files differindex 86d027c437f8..a18b1e7d5a2e 100644 --- a/sc/qa/extras/testdocuments/ScTableSheetObj.ods +++ b/sc/qa/extras/testdocuments/ScTableSheetObj.ods diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk index 7ef8ca836e87..e5ab18b166f2 100644 --- a/test/Library_subsequenttest.mk +++ b/test/Library_subsequenttest.mk @@ -47,6 +47,7 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\ test/source/sheet/xcellrangedata \ test/source/sheet/xcellrangereferrer \ test/source/sheet/xcellrangesquery \ + test/source/sheet/xcellseries \ test/source/sheet/xgoalseek \ test/source/sheet/xdatabaserange \ test/source/sheet/xdatapilotdescriptor \ diff --git a/test/source/sheet/xcellseries.cxx b/test/source/sheet/xcellseries.cxx new file mode 100644 index 000000000000..a1ccd87c3235 --- /dev/null +++ b/test/source/sheet/xcellseries.cxx @@ -0,0 +1,74 @@ +/* -*- 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/sheet/xcellseries.hxx> + +#include <com/sun/star/sheet/XCellSeries.hpp> +#include <com/sun/star/table/XCellRange.hpp> + +#include "cppunit/extensions/HelperMacros.h" + +using namespace com::sun::star; +using namespace com::sun::star::uno; + +namespace apitest { + +void XCellSeries::testFillAuto() +{ + uno::Reference<table::XCellRange> xCellRange(init(), UNO_QUERY_THROW); + + uno::Reference<table::XCellRange> xCellRangeH(xCellRange->getCellRangeByPosition(1, 0, 4, 0), 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()); + + uno::Reference<table::XCellRange> xCellRangeV(xCellRange->getCellRangeByPosition(1, 0, 1, 3), 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()); +} + +void XCellSeries::testFillSeries() +{ + uno::Reference<table::XCellRange> xCellRange(init(), UNO_QUERY_THROW); + + uno::Reference<table::XCellRange> xCellRangeH(xCellRange->getCellRangeByPosition(1, 0, 4, 0), 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()); + + 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()); + + uno::Reference<table::XCellRange> xCellRangeV(xCellRange->getCellRangeByPosition(1, 0, 1, 3), 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()); + + 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()); +} + +} |