[Libreoffice-commits] core.git: chart2/qa

Kohei Yoshida kohei.yoshida at collabora.com
Thu Jul 3 08:50:19 PDT 2014


 chart2/qa/extras/chart2import.cxx                               |   39 ++++++++++
 chart2/qa/extras/charttest.hxx                                  |    1 
 chart2/qa/extras/data/pptx/stacked-bar-chart-hidden-series.pptx |binary
 3 files changed, 40 insertions(+)

New commits:
commit d53a9dc1cc64d00b38884168b2003a7da29773e3
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Thu Jul 3 11:47:22 2014 -0400

    bnc#812796: Write test for this.
    
    Right now, we skip hidden data series when importing OOXML charts into
    our internal data table.  This of course means that if/when we add support
    for hidden columns in the internal data table, we may want to change this.
    
    Change-Id: Ida1b77821fbc2f8f937244576b52521b59d6ab89

diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index 41a9a2f..d83e8c2 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -34,6 +34,12 @@ public:
     void testDOCChartSeries();
     void testDOCXChartSeries();
     void testPPTXChartSeries();
+    /**
+     * Original data contains 3 series but 2 of them are hidden. For now, we
+     * detect and skip those hidden series on import (since we don't support
+     * hidden columns for internal data table yet).
+     */
+    void testPPTXHiddenDataSeries();
     void testPPTChartSeries();
     void testODPChartSeries();
     void testBnc864396();
@@ -62,6 +68,7 @@ public:
  */
     CPPUNIT_TEST(testPPTChartSeries);
     CPPUNIT_TEST(testPPTXChartSeries);
+    CPPUNIT_TEST(testPPTXHiddenDataSeries);
     CPPUNIT_TEST(testODPChartSeries);
     CPPUNIT_TEST(testBnc864396);
     CPPUNIT_TEST(testSimpleStrictXLSX);
@@ -324,6 +331,38 @@ void Chart2ImportTest::testPPTXChartSeries()
     CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), aLabels[2][0].get<OUString>());
 }
 
+void Chart2ImportTest::testPPTXHiddenDataSeries()
+{
+    load("/chart2/qa/extras/data/pptx/", "stacked-bar-chart-hidden-series.pptx");
+    Reference<chart2::XChartDocument> xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xChartDoc.is());
+
+    Reference<chart2::XChartType> xCT = getChartTypeFromDoc(xChartDoc, 0, 0);
+    CPPUNIT_ASSERT(xCT.is());
+
+    // There should be only one data series present.
+    std::vector<uno::Sequence<uno::Any> > aLabels = getDataSeriesLabelsFromChartType(xCT);
+    CPPUNIT_ASSERT_EQUAL(size_t(1), aLabels.size());
+    CPPUNIT_ASSERT_EQUAL(OUString("Series 3"), aLabels[0][0].get<OUString>());
+
+    // Test the internal data.
+    CPPUNIT_ASSERT(xChartDoc->hasInternalDataProvider());
+
+    Reference<chart2::XInternalDataProvider> xInternalProvider(xChartDoc->getDataProvider(), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xInternalProvider.is());
+
+    Reference<chart::XComplexDescriptionAccess> xDescAccess(xInternalProvider, uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xDescAccess.is());
+
+    // Get the category labels.
+    Sequence<Sequence<OUString> > aCategories = xDescAccess->getComplexRowDescriptions();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(4), aCategories.getLength());
+    CPPUNIT_ASSERT_EQUAL(OUString("Category 1"), aCategories[0][0]);
+    CPPUNIT_ASSERT_EQUAL(OUString("Category 2"), aCategories[1][0]);
+    CPPUNIT_ASSERT_EQUAL(OUString("Category 3"), aCategories[2][0]);
+    CPPUNIT_ASSERT_EQUAL(OUString("Category 4"), aCategories[3][0]);
+}
+
 void Chart2ImportTest::testODPChartSeries()
 {
     //test chart series names for odp
diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx
index 97284542..4ac6db3 100644
--- a/chart2/qa/extras/charttest.hxx
+++ b/chart2/qa/extras/charttest.hxx
@@ -44,6 +44,7 @@
 #include <com/sun/star/chart2/data/XLabeledDataSequence.hpp>
 #include <com/sun/star/chart2/data/XDataSource.hpp>
 #include <com/sun/star/chart/XChartDataArray.hpp>
+#include <com/sun/star/chart/XComplexDescriptionAccess.hpp>
 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
 #include <com/sun/star/chart/XChartDocument.hpp>
 #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
diff --git a/chart2/qa/extras/data/pptx/stacked-bar-chart-hidden-series.pptx b/chart2/qa/extras/data/pptx/stacked-bar-chart-hidden-series.pptx
new file mode 100755
index 0000000..20ba89a
Binary files /dev/null and b/chart2/qa/extras/data/pptx/stacked-bar-chart-hidden-series.pptx differ


More information about the Libreoffice-commits mailing list