summaryrefslogtreecommitdiff
path: root/chart2/qa/extras/chart2import.cxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-07-03 11:47:22 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-07-03 11:50:13 -0400
commitd53a9dc1cc64d00b38884168b2003a7da29773e3 (patch)
tree36f40a996f2b46059c184ecc4aa9e6870743021c /chart2/qa/extras/chart2import.cxx
parent4cf0e29ccf5191b7ba4ed84750108e5361bcde38 (diff)
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
Diffstat (limited to 'chart2/qa/extras/chart2import.cxx')
-rw-r--r--chart2/qa/extras/chart2import.cxx39
1 files changed, 39 insertions, 0 deletions
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index 41a9a2f61ed0..d83e8c270de6 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