[Libreoffice-commits] .: sc/CppunitTest_sc_datapilotfieldobj.mk sc/qa

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Wed Dec 7 19:23:47 PST 2011


 sc/CppunitTest_sc_datapilotfieldobj.mk   |    3 
 sc/qa/extras/xdatapilotfieldgrouping.cxx |  113 +++++++++++++++++++++++++++++++
 2 files changed, 115 insertions(+), 1 deletion(-)

New commits:
commit ec3aa099c4c5698ed3c67f60805cf71013655b36
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Thu Dec 8 02:12:09 2011 +0100

    add test for ScDataPilotFieldObj::XDataPilotFieldGrouping
    
    test XDataPilotFieldGrouping::createDateGrouping is broken

diff --git a/sc/CppunitTest_sc_datapilotfieldobj.mk b/sc/CppunitTest_sc_datapilotfieldobj.mk
index 51500f8..05eb85e 100644
--- a/sc/CppunitTest_sc_datapilotfieldobj.mk
+++ b/sc/CppunitTest_sc_datapilotfieldobj.mk
@@ -32,6 +32,7 @@ $(eval $(call gb_CppunitTest_CppunitTest,sc_datapilotfieldobj))
 
 $(eval $(call gb_CppunitTest_add_exception_objects,sc_datapilotfieldobj, \
     sc/qa/extras/datapilotfieldobj \
+    sc/qa/extras/xdatapilotfieldgrouping \
 ))
 
 $(eval $(call gb_CppunitTest_add_linked_libs,sc_datapilotfieldobj, \
@@ -128,7 +129,7 @@ $(eval $(call gb_CppunitTest_add_old_components,sc_datapilotfieldobj,\
 $(eval $(call gb_CppunitTest_set_args,sc_datapilotfieldobj,\
     --headless \
     --protector unoexceptionprotector$(gb_Library_DLLEXT) unoexceptionprotector \
-    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(SRCDIR)/sc/qa/unit/data/registry)" \
+    "-env:CONFIGURATION_LAYERS=xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry) module:$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/registry/spool) xcsxcu:$(call gb_CppunitTarget__make_url,$(OUTDIR)/unittest/registry)" \
 ))
     # .../spool is required for the (somewhat strange) filter configuration
 
diff --git a/sc/qa/extras/xdatapilotfieldgrouping.cxx b/sc/qa/extras/xdatapilotfieldgrouping.cxx
new file mode 100644
index 0000000..938f7f2
--- /dev/null
+++ b/sc/qa/extras/xdatapilotfieldgrouping.cxx
@@ -0,0 +1,113 @@
+/* -*- 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) 2011 Markus Mohrhard <markus.mohrhard at 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/unoapi_test.hxx>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
+#include <com/sun/star/sheet/XDataPilotTables.hpp>
+#include <com/sun/star/sheet/XDataPilotDescriptor.hpp>
+#include <com/sun/star/sheet/XDataPilotFieldGrouping.hpp>
+#include <com/sun/star/sheet/DataPilotFieldGroupBy.hpp>
+
+#include <rtl/oustringostreaminserter.hxx>
+
+namespace ScDataPilotFieldObj {
+
+class ScXDataPilotFieldGrouping : public UnoApiTest
+{
+    void testCreateNameGroup();
+    void testCreateDateGroup();
+
+    CPPUNIT_TEST_SUITE(ScXDataPilotFieldGrouping);
+    CPPUNIT_TEST(testCreateNameGroup);
+    //broken: fdo#43609
+    //CPPUNIT_TEST(testCreateDateGroup);
+    CPPUNIT_TEST_SUITE_END();
+
+    uno::Reference< sheet::XDataPilotFieldGrouping > init();
+};
+
+void ScXDataPilotFieldGrouping::testCreateNameGroup()
+{
+    uno::Reference< sheet::XDataPilotFieldGrouping > xDataPilotFieldGrouping = init();
+    uno::Reference< sheet::XDataPilotField > xDataPilotField( xDataPilotFieldGrouping, UNO_QUERY_THROW );
+    uno::Reference< container::XNameAccess > xNameAccess( xDataPilotField->getItems(), UNO_QUERY_THROW );
+    CPPUNIT_ASSERT(xNameAccess->hasElements());
+
+    uno::Sequence< rtl::OUString > aElements = xNameAccess->getElementNames();
+    xDataPilotFieldGrouping->createNameGroup( aElements );
+}
+
+void ScXDataPilotFieldGrouping::testCreateDateGroup()
+{
+    uno::Reference< sheet::XDataPilotFieldGrouping > xDataPilotFieldGrouping = init();
+    sheet::DataPilotFieldGroupInfo aGroupInfo;
+    aGroupInfo.GroupBy = sheet::DataPilotFieldGroupBy::MONTHS;
+    aGroupInfo.HasDateValues = true;
+    xDataPilotFieldGrouping->createDateGroup(aGroupInfo);
+}
+
+uno::Reference< sheet::XDataPilotFieldGrouping> ScXDataPilotFieldGrouping::init()
+{
+    rtl::OUString aFileURL;
+    const rtl::OUString aFileBase(RTL_CONSTASCII_USTRINGPARAM("scdatapilotfieldobj.ods"));
+    createFileURL(aFileBase, aFileURL);
+    std::cout << rtl::OUStringToOString(aFileURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl;
+    static uno::Reference< lang::XComponent > xComponent;
+    if( !xComponent.is())
+        xComponent = loadFromDesktop(aFileURL);
+    uno::Reference< sheet::XSpreadsheetDocument> xDoc (xComponent, UNO_QUERY_THROW);
+    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< sheet::XDataPilotTablesSupplier > xDPTS(xSheet, UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xDPTS.is());
+    uno::Reference< sheet::XDataPilotTables > xDPT = xDPTS->getDataPilotTables();
+    CPPUNIT_ASSERT(xDPT.is());
+    uno::Sequence<rtl::OUString> aElementNames = xDPT->getElementNames();
+    for (int i = 0; i < aElementNames.getLength(); ++i)
+    {
+        std::cout << "PivotTable: " << aElementNames[i] << std::endl;
+    }
+
+    uno::Reference< sheet::XDataPilotDescriptor > xDPDsc(xDPT->getByName(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataPilot1"))),UNO_QUERY_THROW);
+
+    CPPUNIT_ASSERT(xDPDsc.is());
+    uno::Reference< container::XIndexAccess > xIA( xDPDsc->getDataPilotFields(), UNO_QUERY_THROW);
+    uno::Reference< sheet::XDataPilotFieldGrouping > xReturnValue( xIA->getByIndex(0), UNO_QUERY_THROW);
+    CPPUNIT_ASSERT(xReturnValue.is());
+    return xReturnValue;
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ScXDataPilotFieldGrouping);
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list