[Libreoffice-commits] core.git: include/test sc/CppunitTest_sc_check_data_pilot_field.mk sc/CppunitTest_sc_check_data_pilot_table.mk sc/JunitTest_sc_complex.mk sc/Module_sc.mk sc/qa test/source

kadertarlan kadertarlan1 at gmail.com
Sun Mar 20 00:00:58 UTC 2016


 include/test/beans/xpropertyset.hxx         |    2 
 sc/CppunitTest_sc_check_data_pilot_field.mk |  103 +++++++++
 sc/CppunitTest_sc_check_data_pilot_table.mk |  103 +++++++++
 sc/JunitTest_sc_complex.mk                  |    2 
 sc/Module_sc.mk                             |    2 
 sc/qa/complex/dataPilot/CheckDataPilot.java |  315 ----------------------------
 sc/qa/extras/check_data_pilot_field.cxx     |  195 +++++++++++++++++
 sc/qa/extras/check_data_pilot_table.cxx     |  193 +++++++++++++++++
 test/source/beans/xpropertyset.cxx          |   11 
 test/source/sheet/xdatapilotdescriptor.cxx  |    1 
 10 files changed, 609 insertions(+), 318 deletions(-)

New commits:
commit 1d5767c6e464b914812867aac5c3ccd0745dd1ea
Author: kadertarlan <kadertarlan1 at gmail.com>
Date:   Mon Feb 22 02:08:55 2016 +0200

    tdf#45904 move java based api tests to c++
    
    Change-Id: Ibd9411e844c8e42fe625ffd979e936f827099ee9
    Reviewed-on: https://gerrit.libreoffice.org/22604
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/include/test/beans/xpropertyset.hxx b/include/test/beans/xpropertyset.hxx
index e53cee2..3b110a5 100644
--- a/include/test/beans/xpropertyset.hxx
+++ b/include/test/beans/xpropertyset.hxx
@@ -34,6 +34,8 @@ public:
 protected:
     bool isPropertyValueChangeable(const OUString& rName);
 
+    virtual bool isPropertyIgnored(const OUString& rName);
+
 private:
     void fillPropsToTest(const css::uno::Reference<css::beans::XPropertySetInfo>& xPropInfo);
     static bool getSinglePropertyValue(
diff --git a/sc/CppunitTest_sc_check_data_pilot_field.mk b/sc/CppunitTest_sc_check_data_pilot_field.mk
new file mode 100644
index 0000000..06db60a
--- /dev/null
+++ b/sc/CppunitTest_sc_check_data_pilot_field.mk
@@ -0,0 +1,103 @@
+# -*- 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_check_data_pilot_field))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sc_check_data_pilot_field, \
+        sc/qa/extras/check_data_pilot_field \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sc_check_data_pilot_field, \
+        basegfx \
+        comphelper \
+        cppu \
+        cppuhelper \
+        drawinglayer \
+        editeng \
+        for \
+        forui \
+        i18nlangtag \
+        msfilter \
+        oox \
+        sal \
+        salhelper \
+        sax \
+        sb \
+        sc \
+        scqahelper \
+        sfx \
+        sot \
+        subsequenttest \
+        svl \
+        svt \
+        svx \
+        svxcore \
+        test \
+        tk \
+        tl \
+        ucbhelper \
+        unotest \
+        utl \
+        vbahelper \
+        vcl \
+        xo \
+        $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sc_check_data_pilot_field,\
+        -I$(SRCDIR)/sc/source/ui/inc \
+        -I$(SRCDIR)/sc/inc \
+        $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sc_check_data_pilot_field,\
+        offapi \
+        udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sc_check_data_pilot_field))
+$(eval $(call gb_CppunitTest_use_vcl,sc_check_data_pilot_field))
+
+$(eval $(call gb_CppunitTest_use_components,sc_check_data_pilot_field,\
+    basic/util/sb \
+    comphelper/util/comphelp \
+    configmgr/source/configmgr \
+    dbaccess/util/dba \
+    filter/source/config/cache/filterconfig1 \
+    forms/util/frm \
+    framework/util/fwk \
+    i18npool/util/i18npool \
+    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 \
+        svtools/util/svt \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sc_check_data_pilot_field))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sc/CppunitTest_sc_check_data_pilot_table.mk b/sc/CppunitTest_sc_check_data_pilot_table.mk
new file mode 100644
index 0000000..fe6d588
--- /dev/null
+++ b/sc/CppunitTest_sc_check_data_pilot_table.mk
@@ -0,0 +1,103 @@
+# -*- 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_check_data_pilot_table))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sc_check_data_pilot_table, \
+        sc/qa/extras/check_data_pilot_table \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sc_check_data_pilot_table, \
+        basegfx \
+        comphelper \
+        cppu \
+        cppuhelper \
+        drawinglayer \
+        editeng \
+        for \
+        forui \
+        i18nlangtag \
+        msfilter \
+        oox \
+        sal \
+        salhelper \
+        sax \
+        sb \
+        sc \
+        scqahelper \
+        sfx \
+        sot \
+        subsequenttest \
+        svl \
+        svt \
+        svx \
+        svxcore \
+        test \
+        tk \
+        tl \
+        ucbhelper \
+        unotest \
+        utl \
+        vbahelper \
+        vcl \
+        xo \
+        $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sc_check_data_pilot_table,\
+        -I$(SRCDIR)/sc/source/ui/inc \
+        -I$(SRCDIR)/sc/inc \
+        $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sc_check_data_pilot_table,\
+        offapi \
+        udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sc_check_data_pilot_table))
+$(eval $(call gb_CppunitTest_use_vcl,sc_check_data_pilot_table))
+
+$(eval $(call gb_CppunitTest_use_components,sc_check_data_pilot_table,\
+    basic/util/sb \
+    comphelper/util/comphelp \
+    configmgr/source/configmgr \
+    dbaccess/util/dba \
+    filter/source/config/cache/filterconfig1 \
+    forms/util/frm \
+    framework/util/fwk \
+    i18npool/util/i18npool \
+    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 \
+        svtools/util/svt \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sc_check_data_pilot_table))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sc/JunitTest_sc_complex.mk b/sc/JunitTest_sc_complex.mk
index 6e446e8..77dc636 100644
--- a/sc/JunitTest_sc_complex.mk
+++ b/sc/JunitTest_sc_complex.mk
@@ -13,7 +13,6 @@ $(eval $(call gb_JunitTest_JunitTest,sc_complex))
 # any key after resizing" etc.)
 
 $(eval $(call gb_JunitTest_add_classes,sc_complex, \
-    complex.dataPilot.CheckDataPilot \
     complex.sc.CalcRTL \
 ))
 
@@ -26,7 +25,6 @@ $(eval $(call gb_JunitTest_use_jars,sc_complex, \
 ))
 
 $(eval $(call gb_JunitTest_add_sourcefiles,sc_complex, \
-    sc/qa/complex/dataPilot/CheckDataPilot \
     sc/qa/complex/dataPilot/_XDataPilotDescriptor \
     sc/qa/complex/dataPilot/_XDataPilotTable \
     sc/qa/complex/dataPilot/_XNamed \
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 4e218b2..861532e 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -92,6 +92,8 @@ $(eval $(call gb_Module_add_subsequentcheck_targets,sc,\
 	CppunitTest_sc_editfieldobj_header \
 	CppunitTest_sc_modelobj \
 	CppunitTest_sc_check_xcell_ranges_query \
+	CppunitTest_sc_check_data_pilot_field \
+	CppunitTest_sc_check_data_pilot_table \
 ))
 
 $(eval $(call gb_Module_add_perfcheck_targets,sc,\
diff --git a/sc/qa/complex/dataPilot/CheckDataPilot.java b/sc/qa/complex/dataPilot/CheckDataPilot.java
deleted file mode 100644
index 7554d16..0000000
--- a/sc/qa/complex/dataPilot/CheckDataPilot.java
+++ /dev/null
@@ -1,315 +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 complex.dataPilot;
-
-import com.sun.star.beans.XPropertySet;
-import com.sun.star.container.XIndexAccess;
-import com.sun.star.container.XNamed;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.sheet.XDataPilotDescriptor;
-import com.sun.star.sheet.XDataPilotTable;
-import com.sun.star.sheet.XDataPilotTables;
-import com.sun.star.sheet.XDataPilotTablesSupplier;
-import com.sun.star.sheet.XSpreadsheet;
-import com.sun.star.sheet.XSpreadsheetDocument;
-import com.sun.star.sheet.XSpreadsheets;
-import com.sun.star.table.CellAddress;
-import com.sun.star.table.CellRangeAddress;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.uno.Type;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XInterface;
-import com.sun.star.util.XCloseable;
-import lib.TestParameters;
-import util.SOfficeFactory;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.openoffice.test.OfficeConnection;
-import static org.junit.Assert.*;
-
-
-/**
- * check the DataPilot of Calc.
- */
-public class CheckDataPilot {
-    /** The data pilot field object **/
-    private XInterface mDataPilotFieldObject = null;
-    /** The data pilot table object **/
-    private XInterface mDataPilotTableObject = null;
-
-
-    private XSpreadsheetDocument xSheetDoc = null;
-
-    /**
-     * A field is filled some values. This integer determines the size of the
-     * field in x and y direction.
-     */
-    private static final int mMaxFieldIndex = 6;
-
-    /**
-     * The test parameters
-     */
-    private static TestParameters param = null;
-
-    /**
-     * Get all test methods
-     * @return The test methods
-     */
-    public String[] getTestMethodNames() {
-        return new String[]{"testDataPilotTableObject",
-                            "testDataPilotFieldObject"};
-    }
-
-    /**
-     * Test the data pilot field object:
-     * simply execute the interface tests in a row
-     */
-    @Test public void testDataPilotFieldObject() {
-        System.out.println("Starting 'testDataPilotFieldObject'");
-        // _XNamed
-        XNamed xNamed = UnoRuntime.queryInterface(
-                                    XNamed.class, mDataPilotFieldObject);
-
-        _XNamed _xNamed = new _XNamed(xNamed/*, log*/, param);
-        assertTrue("_getName failed.",_xNamed._getName());
-        assertTrue("_setName failed.",_xNamed._setName());
-
-        // _XPropertySet
-        XPropertySet xProp = UnoRuntime.queryInterface(
-                                    XPropertySet.class, mDataPilotFieldObject);
-        _XPropertySet _xProp = new _XPropertySet(xProp/*, log*/, param);
-        assertTrue("_getPropertySetInfo failed.",_xProp._getPropertySetInfo());
-        assertTrue("_addPropertyChangeListener failed.",_xProp._addPropertyChangeListener());
-        assertTrue("_addVetoableChangeListener failed.",_xProp._addVetoableChangeListener());
-        assertTrue("_setPropertyValue failed.",_xProp._setPropertyValue());
-        assertTrue("_getPropertyValue failed.",_xProp._getPropertyValue());
-        assertTrue("_removePropertyChangeListener failed.",_xProp._removePropertyChangeListener());
-        assertTrue("_removeVetoableChangeListener failed.",_xProp._removeVetoableChangeListener());
-
-    }
-
-    /**
-     * Test the data pilot table object:
-     * simply execute the interface tests in a row
-     */
-    @Test public void testDataPilotTableObject() {
-        System.out.println("Starting 'testDataPilotTableObject'");
-        // _XNamed
-        XNamed xNamed = UnoRuntime.queryInterface(
-                                    XNamed.class, mDataPilotTableObject);
-        _XNamed _xNamed = new _XNamed(xNamed/*, log*/, param);
-        assertTrue("_getName failed.",_xNamed._getName());
-        assertTrue("_setName failed.",_xNamed._setName());
-
-        // _XDataPilotTable
-        XDataPilotTable xDataPilotTable =
-                    UnoRuntime.queryInterface(XDataPilotTable.class,
-                    mDataPilotTableObject);
-        _XDataPilotTable _xDataPilotTable =
-                    new _XDataPilotTable(xDataPilotTable/*, log*/, param);
-        assertTrue("before failed.", _xDataPilotTable.before());
-        assertTrue("_getOutputRange failed.", _xDataPilotTable._getOutputRange()) ;
-
-        // _XDataPilotDescriptor
-        XDataPilotDescriptor xDataPilotDescriptor =
-                    UnoRuntime.queryInterface(XDataPilotDescriptor.class,
-                    mDataPilotTableObject);
-        _XDataPilotDescriptor _xDataPilotDescriptor =
-                    new _XDataPilotDescriptor(xDataPilotDescriptor/*, log*/, param);
-        assertTrue("before failed.", _xDataPilotDescriptor.before());
-        assertTrue("_setTag failed.", _xDataPilotDescriptor._setTag()) ;
-        assertTrue("_getTag failed.", _xDataPilotDescriptor._getTag()) ;
-        assertTrue("_getFilterDescriptor failed.", _xDataPilotDescriptor._getFilterDescriptor()) ;
-        assertTrue("_getDataPilotFields failed.", _xDataPilotDescriptor._getDataPilotFields()) ;
-        assertTrue("_getColumnFields failed.", _xDataPilotDescriptor._getColumnFields()) ;
-        assertTrue("_getRowFields failed.", _xDataPilotDescriptor._getRowFields()) ;
-        assertTrue("_getDataFields failed.", _xDataPilotDescriptor._getDataFields()) ;
-        assertTrue("_getHiddenFields failed.", _xDataPilotDescriptor._getHiddenFields()) ;
-        assertTrue("_getPageFields failed.", _xDataPilotDescriptor._getPageFields()) ;
-        assertTrue("_setSourceRange failed.", _xDataPilotDescriptor._setSourceRange()) ;
-        assertTrue("_getSourceRange failed.", _xDataPilotDescriptor._getSourceRange()) ;
-    }
-
-    /**
-     * create an environment for the test
-     */
-    @Before public void before() throws Exception {
-
-        final XMultiServiceFactory xMsf = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
-        SOfficeFactory SOF = SOfficeFactory.getFactory(xMsf);
-
-        param = new TestParameters();
-        param.put("ServiceFactory", xMsf);
-
-        // the cell range
-        CellRangeAddress sCellRangeAdress = new CellRangeAddress();
-        sCellRangeAdress.Sheet = 0;
-        sCellRangeAdress.StartColumn = 1;
-        sCellRangeAdress.StartRow = 0;
-        sCellRangeAdress.EndColumn = mMaxFieldIndex-1;
-        sCellRangeAdress.EndRow = mMaxFieldIndex - 1;
-
-        // position of the data pilot table
-        CellAddress sCellAdress = new CellAddress();
-        sCellAdress.Sheet = 0;
-        sCellAdress.Column = 7;
-        sCellAdress.Row = 8;
-
-        System.out.println( "Creating a Spreadsheet document" );
-        xSheetDoc = SOF.createCalcDoc(null);
-
-        System.out.println("Getting a sheet");
-        XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
-        XSpreadsheet oSheet = null;
-        XSpreadsheet oSheet2 = null;
-        XIndexAccess oIndexAccess =
-            UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
-
-        // Per default there's now just one sheet, make sure we have at least two, then
-        xSpreadsheets.insertNewByName("Some Sheet", (short)0);
-
-        oSheet = (XSpreadsheet) AnyConverter.toObject(
-                new Type(XSpreadsheet.class),oIndexAccess.getByIndex(0));
-        oSheet2 = (XSpreadsheet) AnyConverter.toObject(
-                new Type(XSpreadsheet.class),oIndexAccess.getByIndex(1));
-
-        System.out.println("Filling a table");
-        for (int i = 1; i < mMaxFieldIndex; i++) {
-            oSheet.getCellByPosition(i, 0).setFormula("Col" + i);
-            oSheet.getCellByPosition(0, i).setFormula("Row" + i);
-            oSheet2.getCellByPosition(i, 0).setFormula("Col" + i);
-            oSheet2.getCellByPosition(0, i).setFormula("Row" + i);
-        }
-
-        for (int i = 1; i < mMaxFieldIndex; i++)
-        {
-            for (int j = 1; j < mMaxFieldIndex; j++)
-            {
-                oSheet.getCellByPosition(i, j).setValue(i * (j + 1));
-                oSheet2.getCellByPosition(i, j).setValue(i * (j + 2));
-            }
-        }
-
-        // change a value of a cell and check the change in the data pilot
-        // (for the XDataPilotTable.refresh() test)
-        Object oChangeCell = null;
-        Object oCheckCell = null;
-        Integer aChangeValue = null;
-        // cell of data
-        oChangeCell = oSheet.getCellByPosition(1, 5);
-        int x = sCellAdress.Column;
-        int y = sCellAdress.Row + 3;
-        // cell of the data pilot output
-        oCheckCell = oSheet.getCellByPosition(x, y);
-        aChangeValue = Integer.valueOf(27);
-
-
-        // create the test objects
-        System.out.println("Getting test objects") ;
-        XDataPilotTablesSupplier DPTS =
-            UnoRuntime.queryInterface(XDataPilotTablesSupplier.class, oSheet);
-        XDataPilotTables DPT = DPTS.getDataPilotTables();
-        XDataPilotDescriptor DPDsc = DPT.createDataPilotDescriptor();
-        DPDsc.setSourceRange(sCellRangeAdress);
-
-        XPropertySet fieldPropSet = null;
-        Object oDataPilotField = DPDsc.getDataPilotFields().getByIndex(0);
-        fieldPropSet =
-            UnoRuntime.queryInterface(XPropertySet.class, oDataPilotField);
-
-        fieldPropSet.setPropertyValue("Function",
-            com.sun.star.sheet.GeneralFunction.SUM);
-        fieldPropSet.setPropertyValue("Orientation",
-            com.sun.star.sheet.DataPilotFieldOrientation.DATA);
-
-        System.out.println("Insert the DataPilotTable");
-        if (DPT.hasByName("DataPilotTable")) {
-            DPT.removeByName("DataPilotTable");
-        }
-        DPT.insertNewByName("DataPilotTable", sCellAdress, DPDsc);
-        mDataPilotTableObject = (XInterface) AnyConverter.toObject(
-            new Type(XInterface.class),DPT.getByName(DPT.getElementNames()[0]));
-
-        XIndexAccess IA = DPDsc.getDataPilotFields();
-        mDataPilotFieldObject = (XInterface)AnyConverter.toObject(
-                            new Type(XInterface.class),IA.getByIndex(0));
-
-        // Other parameters required for interface tests
-        param.put("OUTPUTRANGE", sCellAdress);
-        param.put("CELLFORCHANGE", oChangeCell);
-        param.put("CELLFORCHECK", oCheckCell);
-        param.put("CHANGEVALUE", aChangeValue);
-        param.put("FIELDSAMOUNT", Integer.valueOf(5));
-
-    }
-
-        /*
-     * this method closes a calc document and resets the corresponding class variable xSheetDoc
-     */
-    protected boolean closeSpreadsheetDocument() {
-        boolean worked = true;
-
-        System.out.println("    disposing xSheetDoc ");
-
-        try {
-            XCloseable oCloser =  UnoRuntime.queryInterface(
-                                         XCloseable.class, xSheetDoc);
-            oCloser.close(true);
-        } catch (com.sun.star.util.CloseVetoException e) {
-            worked = false;
-            System.out.println("Couldn't close document");
-        } catch (com.sun.star.lang.DisposedException e) {
-            worked = false;
-            System.out.println("Document already disposed");
-        } catch (NullPointerException e) {
-            worked = false;
-            System.out.println("Couldn't get XCloseable");
-        }
-
-        xSheetDoc = null;
-
-        return worked;
-    }
-
-    @After public void after()
-        {
-            closeSpreadsheetDocument();
-        }
-
-
-    @BeforeClass public static void setUpConnection() throws Exception {
-        System.out.println("setUpConnection()");
-        connection.setUp();
-    }
-
-    @AfterClass public static void tearDownConnection()
-        throws InterruptedException, com.sun.star.uno.Exception
-    {
-        System.out.println("tearDownConnection()");
-        connection.tearDown();
-    }
-
-    private static final OfficeConnection connection = new OfficeConnection();
-
-
-}
diff --git a/sc/qa/extras/check_data_pilot_field.cxx b/sc/qa/extras/check_data_pilot_field.cxx
new file mode 100644
index 0000000..eb0b12a
--- /dev/null
+++ b/sc/qa/extras/check_data_pilot_field.cxx
@@ -0,0 +1,195 @@
+/* -*- 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 <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/sheet/XDataPilotTable.hpp>
+#include <com/sun/star/sheet/XDataPilotDescriptor.hpp>
+#include <com/sun/star/sheet/XDataPilotTables.hpp>
+#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheets.hpp>
+#include <com/sun/star/table/CellAddress.hpp>
+#include <com/sun/star/table/CellRangeAddress.hpp>
+#include <com/sun/star/sheet/GeneralFunction.hpp>
+#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
+#include <test/container/xnamed.hxx>
+#include <test/beans/xpropertyset.hxx>
+//check the DataPilot of Calc.
+
+using namespace css;
+using namespace css::lang;
+using namespace css::frame;
+
+namespace sc_apitest {
+
+class CheckDataPilotField : public CalcUnoApiTest, public apitest::XNamed, public apitest::XPropertySet
+{
+    public:
+    CheckDataPilotField();
+
+    virtual void setUp() override;
+    virtual void tearDown() override;
+
+    uno::Reference< uno::XInterface > init();
+    CPPUNIT_TEST_SUITE(CheckDataPilotField);
+
+    // _XNamed
+    CPPUNIT_TEST(testGetName);
+    CPPUNIT_TEST(testSetName);
+
+    // XPropertySet
+    CPPUNIT_TEST(testGetPropertySetInfo);
+    CPPUNIT_TEST(testSetPropertyValue);
+    CPPUNIT_TEST(testGetPropertyValue);
+
+    CPPUNIT_TEST_SUITE_END();
+
+protected:
+
+    virtual bool isPropertyIgnored(const OUString& rName) override;
+
+private:
+    uno::Reference<lang::XComponent> mxComponent;
+    uno::Reference<uno::XInterface> mxObject;
+    int mMaxFieldIndex = 6;
+};
+
+bool CheckDataPilotField::isPropertyIgnored(const OUString& rName)
+{
+    return rName == "Function"
+        || rName == "Subtotals";
+}
+
+CheckDataPilotField::CheckDataPilotField()
+     : CalcUnoApiTest("/sc/qa/extras/testdocuments"),
+       apitest::XNamed("Col1")
+{
+}
+
+uno::Reference< uno::XInterface > CheckDataPilotField::init()
+{
+    // create a calc document
+    if (!mxComponent.is())
+        // Load an empty document.
+        mxComponent = loadFromDesktop("private:factory/scalc");
+    else
+        return mxObject;
+
+    uno::Reference< sheet::XSpreadsheetDocument > xSheetDoc(mxComponent, uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_MESSAGE("no calc document!", xSheetDoc.is());
+
+    // the cell range
+    table::CellRangeAddress sCellRangeAdress;
+    sCellRangeAdress.Sheet = 0;
+    sCellRangeAdress.StartColumn = 1;
+    sCellRangeAdress.StartRow = 0;
+    sCellRangeAdress.EndColumn = mMaxFieldIndex-1;
+    sCellRangeAdress.EndRow = mMaxFieldIndex - 1;
+
+    // position of the data pilot table
+    table::CellAddress sCellAdress;
+    sCellAdress.Sheet = 0;
+    sCellAdress.Column = 7;
+    sCellAdress.Row = 8;
+    // Getting spreadsheet
+    uno::Reference< sheet::XSpreadsheets > xSpreadsheets = xSheetDoc->getSheets();
+    uno::Reference< container::XIndexAccess > oIndexAccess(xSpreadsheets, uno::UNO_QUERY_THROW);
+
+    // Per default there's now just one sheet, make sure we have at least two, then
+    xSpreadsheets->insertNewByName("Some Sheet", 0);
+    uno::Any aAny = oIndexAccess->getByIndex(0);
+    uno::Reference< sheet::XSpreadsheet > oSheet;
+    CPPUNIT_ASSERT(aAny >>= oSheet);
+
+    uno::Any aAny2 = oIndexAccess->getByIndex(1);
+    uno::Reference< sheet::XSpreadsheet > oSheet2;
+    CPPUNIT_ASSERT(aAny2 >>= oSheet2);
+
+    //Filling a table
+    for (int i = 1; i < mMaxFieldIndex; i++)
+    {
+        oSheet->getCellByPosition(i, 0)->setFormula(OUString("Col") + OUString::number(i));
+        oSheet->getCellByPosition(0, i)->setFormula(OUString("Row") + OUString::number(i));
+        oSheet2->getCellByPosition(i, 0)->setFormula(OUString("Col") + OUString::number(i));
+        oSheet2->getCellByPosition(0, i)->setFormula(OUString("Row") + OUString::number(i));
+    }
+
+    for (int i = 1; i < mMaxFieldIndex; i++)
+    {
+        for (int j = 1; j < mMaxFieldIndex; j++)
+        {
+            oSheet->getCellByPosition(i, j)->setValue(i * (j + 1));
+            oSheet2->getCellByPosition(i, j)->setValue(i * (j + 2));
+         }
+    }
+
+    // change a value of a cell and check the change in the data pilot
+    // cell of data
+    uno::Any oChangeCell;
+    oChangeCell<<= oSheet->getCellByPosition(1, 5);
+    int x = sCellAdress.Column;
+    int y = sCellAdress.Row + 3;
+    // cell of the data pilot output
+    uno::Any oCheckCell;
+    oCheckCell<<= oSheet->getCellByPosition(x, y);
+    // create the test objects
+    uno::Reference< sheet::XDataPilotTablesSupplier> DPTS(oSheet, uno::UNO_QUERY_THROW);
+    uno::Reference< sheet::XDataPilotTables> DPT = DPTS->getDataPilotTables();
+    uno::Reference< sheet::XDataPilotDescriptor> DPDsc = DPT->createDataPilotDescriptor();
+    DPDsc->setSourceRange(sCellRangeAdress);
+
+    uno::Any oDataPilotField = DPDsc->getDataPilotFields()->getByIndex(0);
+    uno::Reference<beans::XPropertySet> fieldPropSet(oDataPilotField,  uno::UNO_QUERY_THROW);
+
+    uno::Any sum;
+    sum<<= sheet::GeneralFunction_SUM;
+    fieldPropSet->setPropertyValue("Function", sum );
+
+    uno::Any data;
+    data<<= sheet::DataPilotFieldOrientation_DATA;
+    fieldPropSet->setPropertyValue("Orientation", data);
+
+    //Insert the DataPilotTable
+    if (DPT->hasByName("DataPilotField"))
+        DPT->removeByName("DataPilotField");
+    DPT->insertNewByName("DataPilotTField", sCellAdress, DPDsc);
+
+    uno::Reference< container::XIndexAccess > IA = DPDsc->getDataPilotFields();
+    uno::Reference<uno::XInterface> xDataPilotFieldObject;
+    uno::Any mAny = IA->getByIndex(0);
+    CPPUNIT_ASSERT(mAny >>= xDataPilotFieldObject);
+    mxObject = xDataPilotFieldObject;
+
+    return xDataPilotFieldObject;
+}
+
+
+void CheckDataPilotField::setUp()
+{
+    CalcUnoApiTest::setUp();
+    init();
+}
+
+void CheckDataPilotField::tearDown()
+{
+    closeDocument(mxComponent);
+    mxComponent.clear();
+    CalcUnoApiTest::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(CheckDataPilotField);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sc/qa/extras/check_data_pilot_table.cxx b/sc/qa/extras/check_data_pilot_table.cxx
new file mode 100644
index 0000000..70dbbbe
--- /dev/null
+++ b/sc/qa/extras/check_data_pilot_table.cxx
@@ -0,0 +1,193 @@
+/* -*- 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 <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/sheet/XDataPilotTable.hpp>
+#include <com/sun/star/sheet/XDataPilotDescriptor.hpp>
+#include <com/sun/star/sheet/XDataPilotTables.hpp>
+#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheets.hpp>
+#include <com/sun/star/table/CellAddress.hpp>
+#include <com/sun/star/table/CellRangeAddress.hpp>
+#include <com/sun/star/sheet/GeneralFunction.hpp>
+#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
+#include "test/container/xnamed.hxx"
+#include "test/sheet/xdatapilottable.hxx"
+#include "test/sheet/xdatapilotdescriptor.hxx"
+#include "test/beans/xpropertyset.hxx"
+//check the DataPilot of Calc.
+
+using namespace css;
+using namespace css::lang;
+using namespace css::frame;
+
+namespace sc_apitest {
+
+class CheckDataPilotTable : public CalcUnoApiTest, public apitest::XNamed, public apitest::XDataPilotTable, public apitest::XPropertySet, public apitest::XDataPilotDescriptor
+{
+public:
+    CheckDataPilotTable();
+
+    virtual void setUp() override;
+    virtual void tearDown() override;
+
+    uno::Reference< uno::XInterface > init();
+
+    CPPUNIT_TEST_SUITE(CheckDataPilotTable);
+    // _XNamed
+    CPPUNIT_TEST(testGetName);
+    CPPUNIT_TEST(testSetName);
+
+    // _XDataPilotTable
+    CPPUNIT_TEST(testGetOutputRange);
+
+    // _XDataPilotDescriptor
+    CPPUNIT_TEST(testTag);
+    CPPUNIT_TEST(testGetFilterDescriptor);
+    CPPUNIT_TEST(testGetDataPilotFields);
+    CPPUNIT_TEST(testGetColumnFields);
+    CPPUNIT_TEST(testGetRowFields);
+    // CPPUNIT_TEST(testGetDataFields);
+    // CPPUNIT_TEST(testGetHiddenFields);
+    CPPUNIT_TEST(testGetPageFields);
+
+    CPPUNIT_TEST_SUITE_END();
+
+private:
+    uno::Reference<lang::XComponent> mxComponent;
+    uno::Reference<uno::XInterface> mxObject;
+    int mMaxFieldIndex = 6;
+};
+
+CheckDataPilotTable::CheckDataPilotTable()
+     : CalcUnoApiTest("/sc/qa/extras/testdocuments"),
+       apitest::XNamed(OUString("DataPilotTable"))
+{
+}
+
+uno::Reference< uno::XInterface > CheckDataPilotTable::init()
+{
+    // create a calc document
+    if (!mxComponent.is())
+        // Load an empty document.
+        mxComponent = loadFromDesktop("private:factory/scalc");
+    else
+        return mxObject;
+
+    uno::Reference< sheet::XSpreadsheetDocument > xSheetDoc(mxComponent, uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_MESSAGE("no calc document!", xSheetDoc.is());
+
+    // the cell range
+    table::CellRangeAddress sCellRangeAdress;
+    sCellRangeAdress.Sheet = 0;
+    sCellRangeAdress.StartColumn = 1;
+    sCellRangeAdress.StartRow = 0;
+    sCellRangeAdress.EndColumn = mMaxFieldIndex-1;
+    sCellRangeAdress.EndRow = mMaxFieldIndex - 1;
+
+    // position of the data pilot table
+    table::CellAddress sCellAdress;
+    sCellAdress.Sheet = 0;
+    sCellAdress.Column = 7;
+    sCellAdress.Row = 8;
+    // Getting spreadsheet
+    uno::Reference< sheet::XSpreadsheets > xSpreadsheets = xSheetDoc->getSheets();
+    uno::Reference< container::XIndexAccess > oIndexAccess(xSpreadsheets, uno::UNO_QUERY_THROW);
+
+    // Per default there's now just one sheet, make sure we have at least two, then
+    xSpreadsheets->insertNewByName("Some Sheet", 0);
+    uno::Any aAny = oIndexAccess->getByIndex(0);
+    uno::Reference< sheet::XSpreadsheet > oSheet;
+    CPPUNIT_ASSERT(aAny >>= oSheet);
+
+    uno::Any aAny2 = oIndexAccess->getByIndex(1);
+    uno::Reference< sheet::XSpreadsheet > oSheet2;
+    CPPUNIT_ASSERT(aAny2 >>= oSheet2);
+
+    //Filling a table
+    for (int i = 1; i < mMaxFieldIndex; i++)
+    {
+        oSheet->getCellByPosition(i, 0)->setFormula(OUString("Col") + OUString::number(i));
+        oSheet->getCellByPosition(0, i)->setFormula(OUString("Row") + OUString::number(i));
+        oSheet2->getCellByPosition(i, 0)->setFormula(OUString("Col") + OUString::number(i));
+        oSheet2->getCellByPosition(0, i)->setFormula(OUString("Row") + OUString::number(i));
+    }
+
+    for (int i = 1; i < mMaxFieldIndex; i++)
+    {
+        for (int j = 1; j < mMaxFieldIndex; j++)
+        {
+            oSheet->getCellByPosition(i, j)->setValue(i * (j + 1));
+            oSheet2->getCellByPosition(i, j)->setValue(i * (j + 2));
+         }
+    }
+
+    // change a value of a cell and check the change in the data pilot
+    // cell of data
+    uno::Any oChangeCell;
+    oChangeCell<<= oSheet->getCellByPosition(1, 5);
+    int x = sCellAdress.Column;
+    int y = sCellAdress.Row + 3;
+    // cell of the data pilot output
+    uno::Any oCheckCell;
+    oCheckCell<<= oSheet->getCellByPosition(x, y);
+    // create the test objects
+    uno::Reference< sheet::XDataPilotTablesSupplier> DPTS(oSheet, uno::UNO_QUERY_THROW);
+    uno::Reference< sheet::XDataPilotTables> DPT = DPTS->getDataPilotTables();
+    uno::Reference< sheet::XDataPilotDescriptor> DPDsc = DPT->createDataPilotDescriptor();
+    DPDsc->setSourceRange(sCellRangeAdress);
+
+    uno::Any oDataPilotField = DPDsc->getDataPilotFields()->getByIndex(0);
+    uno::Reference<beans::XPropertySet> fieldPropSet(oDataPilotField,  uno::UNO_QUERY_THROW);
+
+    uno::Any sum;
+    sum<<= sheet::GeneralFunction_SUM;
+    fieldPropSet->setPropertyValue("Function", sum );
+
+    uno::Any data;
+    data<<= sheet::DataPilotFieldOrientation_DATA;
+    fieldPropSet->setPropertyValue("Orientation", data);
+
+    //Insert the DataPilotTable
+    if (DPT->hasByName("DataPilotTable"))
+        DPT->removeByName("DataPilotTable");
+    DPT->insertNewByName("DataPilotTable", sCellAdress, DPDsc);
+
+    uno::Reference<uno::XInterface> xDataPilotTableObject;
+    uno::Any mAny = DPT->getByName( DPT->getElementNames()[0] );
+    CPPUNIT_ASSERT(mAny >>= xDataPilotTableObject);
+    mxObject = xDataPilotTableObject;
+
+    return xDataPilotTableObject;
+}
+
+void CheckDataPilotTable::setUp()
+{
+    CalcUnoApiTest::setUp();
+    init();
+}
+
+void CheckDataPilotTable::tearDown()
+{
+    closeDocument(mxComponent);
+    mxComponent.clear();
+    CalcUnoApiTest::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(CheckDataPilotTable);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/test/source/beans/xpropertyset.cxx b/test/source/beans/xpropertyset.cxx
index 3161b87..c771042 100644
--- a/test/source/beans/xpropertyset.cxx
+++ b/test/source/beans/xpropertyset.cxx
@@ -141,6 +141,12 @@ bool XPropertySet::isPropertyValueChangeable(const OUString& rName)
         }
         else
         {
+            bool bIgnore = isPropertyIgnored(rName);
+            if (bIgnore)
+                return false;
+
+            std::cout << type.getTypeName() << std::endl;
+            std::cout << rName << std::endl;
             CPPUNIT_ASSERT_MESSAGE("XPropertySet::isChangeable: unknown type in Any tested.", false);
         }
 
@@ -216,6 +222,11 @@ bool XPropertySet::getSinglePropertyValue(
     return false;
 }
 
+bool XPropertySet::isPropertyIgnored(const OUString& /*rName*/)
+{
+    return false;
+}
+
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/sheet/xdatapilotdescriptor.cxx b/test/source/sheet/xdatapilotdescriptor.cxx
index 4def745..d8f409f 100644
--- a/test/source/sheet/xdatapilotdescriptor.cxx
+++ b/test/source/sheet/xdatapilotdescriptor.cxx
@@ -178,7 +178,6 @@ void XDataPilotDescriptor::testGetDataFields()
 
 void XDataPilotDescriptor::testGetHiddenFields()
 {
-    std::cout << "testGetHiddenFields" <<std::endl;
     uno::Reference< sheet::XDataPilotDescriptor > xDescr(init(),UNO_QUERY_THROW);
     testGetDataPilotFields_Impl( xDescr );
     uno::Reference< container::XIndexAccess > xIndex(xDescr->getHiddenFields(), UNO_QUERY_THROW);


More information about the Libreoffice-commits mailing list