chart2/CppunitTest_chart2_import.mk | 13 ++ chart2/qa/extras/chart2import.cxx | 149 +++++++++++++++++++++++++++++++++- chart2/qa/extras/charttest.hxx | 35 +++++++ chart2/qa/extras/data/doc/chart.doc |binary chart2/qa/extras/data/odp/chart.odp |binary chart2/qa/extras/data/ods/chart.ods |binary chart2/qa/extras/data/odt/chart.odt |binary chart2/qa/extras/data/ppt/chart.ppt |binary chart2/qa/extras/data/pptx/chart.pptx |binary chart2/qa/extras/data/xls/chart.xls |binary chart2/qa/extras/data/xlsx/chart.xlsx |binary 11 files changed, 190 insertions(+), 7 deletions(-)
New commits: commit ce85ba3e2e926f72084cef2f18343f5f09f03152 Author: Vinaya Mandke <vinaya.man...@synerzip.com> Date: Wed Oct 30 16:36:25 2013 +0530 Unit tests for Chart Series Name Added UTS to verify the series names (Labels) for chart series for following- * xls, xlsx, ods * odt Change-Id: I4575a2e7ada9d4cf8b3fa708bd313f9d16244f65 Change-Id: Id291b49bf7547ee7264eb7c0751e416d20ca1e54 Reviewed-on: https://gerrit.libreoffice.org/6383 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/chart2/CppunitTest_chart2_import.mk b/chart2/CppunitTest_chart2_import.mk index 4aa64c1..f702ea9 100644 --- a/chart2/CppunitTest_chart2_import.mk +++ b/chart2/CppunitTest_chart2_import.mk @@ -29,12 +29,15 @@ $(eval $(call gb_CppunitTest_use_libraries,chart2_import, \ forui \ i18nlangtag \ msfilter \ + vcl \ oox \ sal \ salhelper \ sax \ sb \ sc \ + sw \ + sd \ sfx \ sot \ svl \ @@ -48,7 +51,6 @@ $(eval $(call gb_CppunitTest_use_libraries,chart2_import, \ unotest \ utl \ vbahelper \ - vcl \ xo \ $(gb_UWINAPI) \ )) @@ -66,11 +68,12 @@ $(eval $(call gb_CppunitTest_use_ure,chart2_import)) $(eval $(call gb_CppunitTest_use_components,chart2_import,\ basic/util/sb \ + animations/source/animcore/animcore \ chart2/source/controller/chartcontroller \ chart2/source/chartcore \ comphelper/util/comphelp \ configmgr/source/configmgr \ - dbaccess/util/dba \ + dtrans/util/mcnttype \ embeddedobj/util/embobj \ eventattacher/source/evtatt \ filter/source/config/cache/filterconfig1 \ @@ -86,6 +89,12 @@ $(eval $(call gb_CppunitTest_use_components,chart2_import,\ sc/util/sc \ sc/util/scd \ sc/util/scfilt \ + sw/util/sw \ + sw/util/swd \ + sw/util/msword \ + sd/util/sd \ + sd/util/sdfilt \ + sd/util/sdd \ $(if $(filter TRUE,$(DISABLE_SCRIPTING)),, \ sc/util/vbaobj) \ scaddins/source/analysis/analysis \ diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index ad10a1d..f20b834 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -7,10 +7,18 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include "charttest.hxx" +#include "charttest.hxx" +#include <com/sun/star/drawing/XDrawPageSupplier.hpp> +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> #include <com/sun/star/chart2/CurveStyle.hpp> #include <com/sun/star/chart/ErrorBarStyle.hpp> +#include <com/sun/star/chart2/XChartDocument.hpp> +#include <com/sun/star/chart/XChartDocument.hpp> +#include <com/sun/star/chart/XChartData.hpp> +#include <com/sun/star/chart2/XInternalDataProvider.hpp> +#include <com/sun/star/chart2/XAnyDescriptionAccess.hpp> +#include <com/sun/star/chart/XChartDataArray.hpp> class Chart2ImportTest : public ChartTest { @@ -18,11 +26,33 @@ public: void Fdo60083(); void testSteppedLines(); void testErrorBarRange(); + void testODSChartSeries(); + void testXLSXChartSeries(); + void testXLSChartSeries(); + void testODTChartSeries(); + void testDOCChartSeries(); + void testPPTXChartSeries(); + void testPPTChartSeries(); + void testODPChartSeries(); CPPUNIT_TEST_SUITE(Chart2ImportTest); CPPUNIT_TEST(Fdo60083); CPPUNIT_TEST(testSteppedLines); CPPUNIT_TEST(testErrorBarRange); + CPPUNIT_TEST(testODSChartSeries); + CPPUNIT_TEST(testXLSXChartSeries); + CPPUNIT_TEST(testXLSChartSeries); + CPPUNIT_TEST(testODTChartSeries); + CPPUNIT_TEST(testDOCChartSeries); +/* + * Disabling Impress Uts. + * ChartTest::tearDown() calls dispose of mxComponent + * this causes the UT to crash in sd. + * sd::DrawView::Notify tries to reset by calling sd::DrawViewShell::ResetActualPage + */ +// CPPUNIT_TEST(testPPTChartSeries); +// CPPUNIT_TEST(testPPTXChartSeries); +// CPPUNIT_TEST(testODPChartSeries); CPPUNIT_TEST_SUITE_END(); private: @@ -150,6 +180,123 @@ void Chart2ImportTest::testSteppedLines() } } +uno::Sequence < OUString > getChartColumnDescriptions( uno::Reference< chart::XChartDocument > xChart1Doc) +{ + CPPUNIT_ASSERT(xChart1Doc.is()); + uno::Reference< chart::XChartDataArray > xChartData ( xChart1Doc->getData(), UNO_QUERY_THROW); + CPPUNIT_ASSERT(xChartData.is()); + uno::Sequence < OUString > seriesList = xChartData->getColumnDescriptions(); + return seriesList; +} + +void Chart2ImportTest::testODSChartSeries() +{ + load("/chart2/qa/extras/data/ods/", "chart.ods"); + uno::Reference< chart::XChartDocument > xChart1Doc ( getChartCompFromSheet( 0, mxComponent ), UNO_QUERY_THROW); + uno::Sequence < OUString > seriesList = getChartColumnDescriptions( xChart1Doc); + CPPUNIT_ASSERT_EQUAL(OUString("Col 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Col2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Col 33"), seriesList[2]); + +} + +void Chart2ImportTest::testXLSXChartSeries() +{ + load("/chart2/qa/extras/data/xlsx/", "chart.xlsx"); + uno::Reference< chart::XChartDocument > xChart1Doc ( getChartCompFromSheet( 0, mxComponent ), UNO_QUERY_THROW); + uno::Sequence < OUString > seriesList = getChartColumnDescriptions(xChart1Doc ); + CPPUNIT_ASSERT_EQUAL(OUString("Col 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Col2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Col 33"), seriesList[2]); + +} + +void Chart2ImportTest::testXLSChartSeries() +{ + load("/chart2/qa/extras/data/xls/", "chart.xls"); + uno::Reference< chart::XChartDocument > xChart1Doc ( getChartCompFromSheet( 0, mxComponent ), UNO_QUERY_THROW); + uno::Sequence < OUString > seriesList = getChartColumnDescriptions(xChart1Doc ); + CPPUNIT_ASSERT_EQUAL(OUString("Col 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Col 2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Col 3"), seriesList[2]); + +} + +void Chart2ImportTest::testODTChartSeries() +{ + load("/chart2/qa/extras/data/odt/", "chart.odt"); + uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage(); + uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT( xShape.is() ); + uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY); + uno::Reference< chart2::XChartDocument > xChartDoc; + xChartDoc.set( xPropertySet->getPropertyValue( "Model" ), uno::UNO_QUERY ); + CPPUNIT_ASSERT( xChartDoc.is() ); + CPPUNIT_ASSERT( xChartDoc->getDataProvider().is() ); + uno::Reference<beans::XPropertySet> xProp(xChartDoc->getDataProvider(), uno::UNO_QUERY ); + uno::Reference< chart2::XAnyDescriptionAccess > xAnyDescriptionAccess ( xChartDoc->getDataProvider(), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT( xAnyDescriptionAccess.is() ); + uno::Sequence< OUString > seriesList = xAnyDescriptionAccess->getColumnDescriptions(); + CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[2]); + +} + +void Chart2ImportTest::testDOCChartSeries() +{ + load("/chart2/qa/extras/data/doc/", "chart.doc"); + uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage(); + uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY); + CPPUNIT_ASSERT( xShape.is() ); + uno::Reference<beans::XPropertySet> xPropertySet(xShape, uno::UNO_QUERY); + uno::Reference< chart2::XChartDocument > xChartDoc; + xChartDoc.set( xPropertySet->getPropertyValue( "Model" ), uno::UNO_QUERY ); + CPPUNIT_ASSERT( xChartDoc.is() ); + CPPUNIT_ASSERT( xChartDoc->getDataProvider().is() ); + uno::Reference<beans::XPropertySet> xProp(xChartDoc->getDataProvider(), uno::UNO_QUERY ); + uno::Reference< chart2::XAnyDescriptionAccess > xAnyDescriptionAccess ( xChartDoc->getDataProvider(), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT( xAnyDescriptionAccess.is() ); + uno::Sequence< OUString > seriesList = xAnyDescriptionAccess->getColumnDescriptions(); + CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[2]); +} + + +void Chart2ImportTest::testPPTChartSeries() +{ + //test chart series names for ppt + uno::Sequence < OUString > seriesList = getImpressChartColumnDescriptions("/chart2/qa/extras/data/ppt/", "chart.ppt"); + + CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[2]); + +} + +void Chart2ImportTest::testPPTXChartSeries() +{ + //test chart series names for pptx + uno::Sequence < OUString > seriesList = getImpressChartColumnDescriptions("/chart2/qa/extras/data/pptx/", "chart.pptx"); + CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[2]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[3]); + +} + +void Chart2ImportTest::testODPChartSeries() +{ + //test chart series names for odp + uno::Sequence < OUString > seriesList = getImpressChartColumnDescriptions("/chart2/qa/extras/data/odp/", "chart.odp"); + CPPUNIT_ASSERT_EQUAL(OUString("Column 1"), seriesList[0]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 2"), seriesList[1]); + CPPUNIT_ASSERT_EQUAL(OUString("Column 3"), seriesList[2]); + +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx index 8934ddb..b33312c 100644 --- a/chart2/qa/extras/charttest.hxx +++ b/chart2/qa/extras/charttest.hxx @@ -33,7 +33,9 @@ #include <com/sun/star/chart2/XChartTypeContainer.hpp> #include <com/sun/star/chart2/XCoordinateSystemContainer.hpp> #include <com/sun/star/chart2/XDataSeriesContainer.hpp> - +#include <com/sun/star/chart/XChartDataArray.hpp> +#include <com/sun/star/drawing/XDrawPagesSupplier.hpp> +#include <com/sun/star/chart/XChartDocument.hpp> #include <iostream> using namespace com::sun::star; @@ -44,6 +46,7 @@ class ChartTest : public test::BootstrapFixture, public unotest::MacrosTest public: void load( const char* pDir, const char* pName ); void reload( const OUString& rFilterName ); + uno::Sequence < OUString > getImpressChartColumnDescriptions( const char* pDir, const char* pName ); virtual void setUp(); virtual void tearDown(); @@ -87,8 +90,7 @@ void ChartTest::tearDown() test::BootstrapFixture::tearDown(); } - -Reference< chart2::XChartDocument > getChartDocFromSheet( sal_Int32 nSheet, uno::Reference< lang::XComponent > xComponent ) +Reference< lang::XComponent > getChartCompFromSheet( sal_Int32 nSheet, uno::Reference< lang::XComponent > xComponent ) { // let us assume that we only have one chart per sheet @@ -114,8 +116,12 @@ Reference< chart2::XChartDocument > getChartDocFromSheet( sal_Int32 nSheet, uno: uno::Reference< lang::XComponent > xChartComp( xEmbObjectSupplier->getEmbeddedObject(), UNO_QUERY_THROW ); CPPUNIT_ASSERT(xChartComp.is()); - uno::Reference< chart2::XChartDocument > xChartDoc ( xChartComp, UNO_QUERY_THROW ); + return xChartComp; +} +Reference< chart2::XChartDocument > getChartDocFromSheet( sal_Int32 nSheet, uno::Reference< lang::XComponent > xComponent ) +{ + uno::Reference< chart2::XChartDocument > xChartDoc ( getChartCompFromSheet(nSheet, xComponent), UNO_QUERY_THROW ); CPPUNIT_ASSERT(xChartDoc.is()); return xChartDoc; } @@ -158,4 +164,25 @@ Reference< chart2::XDataSeries > getDataSeriesFromDoc( uno::Reference< chart2::X return xSeries; } + +uno::Sequence < OUString > ChartTest::getImpressChartColumnDescriptions( const char* pDir, const char* pName ) +{ + mxComponent = loadFromDesktop(getURLFromSrc(pDir) + OUString::createFromAscii(pName), "com.sun.star.comp.Draw.PresentationDocument"); + uno::Reference< drawing::XDrawPagesSupplier > xDoc(mxComponent, uno::UNO_QUERY_THROW ); + uno::Reference< drawing::XDrawPage > xPage( + xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT(xPage.is()); + uno::Reference< beans::XPropertySet > xShapeProps( + xPage->getByIndex(0), uno::UNO_QUERY ); + CPPUNIT_ASSERT(xShapeProps.is()); + uno::Reference< frame::XModel > xDocModel; + xShapeProps->getPropertyValue("Model") >>= xDocModel; + CPPUNIT_ASSERT(xDocModel.is()); + uno::Reference< chart::XChartDocument > xChart1Doc( xDocModel, uno::UNO_QUERY_THROW ); + uno::Reference< chart::XChartDataArray > xChartData ( xChart1Doc->getData(), uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xChartData.is()); + uno::Sequence < OUString > seriesList = xChartData->getColumnDescriptions(); + return seriesList; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/qa/extras/data/doc/chart.doc b/chart2/qa/extras/data/doc/chart.doc new file mode 100644 index 0000000..2bfa5ae Binary files /dev/null and b/chart2/qa/extras/data/doc/chart.doc differ diff --git a/chart2/qa/extras/data/odp/chart.odp b/chart2/qa/extras/data/odp/chart.odp new file mode 100644 index 0000000..81a5f56 Binary files /dev/null and b/chart2/qa/extras/data/odp/chart.odp differ diff --git a/chart2/qa/extras/data/ods/chart.ods b/chart2/qa/extras/data/ods/chart.ods new file mode 100644 index 0000000..2a9916a Binary files /dev/null and b/chart2/qa/extras/data/ods/chart.ods differ diff --git a/chart2/qa/extras/data/odt/chart.odt b/chart2/qa/extras/data/odt/chart.odt new file mode 100644 index 0000000..5f2dd34 Binary files /dev/null and b/chart2/qa/extras/data/odt/chart.odt differ diff --git a/chart2/qa/extras/data/ppt/chart.ppt b/chart2/qa/extras/data/ppt/chart.ppt new file mode 100644 index 0000000..0efffaf Binary files /dev/null and b/chart2/qa/extras/data/ppt/chart.ppt differ diff --git a/chart2/qa/extras/data/pptx/chart.pptx b/chart2/qa/extras/data/pptx/chart.pptx new file mode 100644 index 0000000..8f11ea5 Binary files /dev/null and b/chart2/qa/extras/data/pptx/chart.pptx differ diff --git a/chart2/qa/extras/data/xls/chart.xls b/chart2/qa/extras/data/xls/chart.xls new file mode 100644 index 0000000..7c81d7f Binary files /dev/null and b/chart2/qa/extras/data/xls/chart.xls differ diff --git a/chart2/qa/extras/data/xlsx/chart.xlsx b/chart2/qa/extras/data/xlsx/chart.xlsx new file mode 100644 index 0000000..193bfc4 Binary files /dev/null and b/chart2/qa/extras/data/xlsx/chart.xlsx differ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits