diff options
Diffstat (limited to 'chart2/qa/extras/chart2export2.cxx')
-rw-r--r-- | chart2/qa/extras/chart2export2.cxx | 1254 |
1 files changed, 646 insertions, 608 deletions
diff --git a/chart2/qa/extras/chart2export2.cxx b/chart2/qa/extras/chart2export2.cxx index 588cbe1d84f2..f5378dc9444c 100644 --- a/chart2/qa/extras/chart2export2.cxx +++ b/chart2/qa/extras/chart2export2.cxx @@ -9,176 +9,29 @@ #include "charttest.hxx" -#include <com/sun/star/chart/ErrorBarStyle.hpp> -#include <com/sun/star/chart2/XRegressionCurveContainer.hpp> #include <com/sun/star/chart2/XDataPointCustomLabelField.hpp> #include <com/sun/star/chart2/DataPointCustomLabelFieldType.hpp> #include <com/sun/star/chart2/RelativePosition.hpp> -#include <com/sun/star/chart2/MovingAverageType.hpp> -#include <com/sun/star/lang/XServiceName.hpp> -#include <com/sun/star/text/XTextDocument.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/drawing/FillStyle.hpp> +#include <com/sun/star/text/XText.hpp> #include <com/sun/star/chart2/DataPointLabel.hpp> #include <com/sun/star/chart/DataLabelPlacement.hpp> #include <com/sun/star/graphic/XGraphic.hpp> -#include <libxml/xpathInternals.h> - -#include <algorithm> - using uno::Reference; using beans::XPropertySet; class Chart2ExportTest2 : public ChartTest { -protected: - virtual void registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) override; - public: Chart2ExportTest2() - : ChartTest() + : ChartTest("/chart2/qa/extras/data/") { } - void testSetSeriesToSecondaryAxisXLSX(); - void testCombinedChartSecondaryAxisXLSX(); - void testCombinedChartSecondaryAxisODS(); - void testCrossBetweenXLSX(); - void testCrossBetweenWithDeletedAxis(); - void testCrossBetweenODS(); - void testAxisTitleRotationXLSX(); - void testAxisTitlePositionDOCX(); - void testAxisCrossBetweenDOCX(); - void testPieChartDataPointExplosionXLSX(); - void testCustomDataLabel(); - void testDataSeriesName(); - void testCustomPositionofDataLabel(); - void testCustomDataLabelMultipleSeries(); - void testLeaderLines(); - void testNumberFormatExportPPTX(); - void testLabelSeparatorExportDOCX(); - void testChartTitlePropertiesColorFillPPTX(); - void testChartTitlePropertiesGradientFillPPTX(); - void testChartTitlePropertiesBitmapFillPPTX(); - void testxAxisLabelsRotation(); - void testMultipleCategoryAxisLablesXLSX(); - void testMultipleCategoryAxisLablesDOCX(); - void testTdf116163(); - void testTdf111824(); - void test3DAreaChartZAxis(); - void testTdf119029(); - void testTdf108022(); - void testTdf121744(); - void testTdf121189(); - void testTdf122031(); - void testTdf115012(); - void testTdf134118(); - void testTdf123206_customLabelText(); - void testCustomLabelText(); - void testDeletedLegendEntries(); - void testTdf60316(); - void testTdf130225(); - void testTdf59857(); - void testTdf126076(); - void testTdf75330(); - void testTdf127792(); - void testTdf131979(); - void testTdf132076(); - void testTdf125812(); - void testTdf133190(); - void testTdf133191(); - void testTdf132594(); - void testTdf134255(); - void testTdf134977(); - void testTdf123647(); - void testTdf136267(); - void testDataLabelPlacementPieChart(); - void testTdf137917(); - void testTdf138204(); - void testTdf138181(); - void testCustomShapeText(); - void testuserShapesXLSX(); - void testuserShapesDOCX(); - void testGraphicBlipXLSX(); - void testNameRangeXLSX(); - void testTdf143942(); - void testDateCategoriesPPTX(); - - CPPUNIT_TEST_SUITE(Chart2ExportTest2); - CPPUNIT_TEST(testSetSeriesToSecondaryAxisXLSX); - CPPUNIT_TEST(testCombinedChartSecondaryAxisXLSX); - CPPUNIT_TEST(testCombinedChartSecondaryAxisODS); - CPPUNIT_TEST(testCrossBetweenXLSX); - CPPUNIT_TEST(testCrossBetweenWithDeletedAxis); - CPPUNIT_TEST(testCrossBetweenODS); - CPPUNIT_TEST(testAxisTitleRotationXLSX); - CPPUNIT_TEST(testAxisTitlePositionDOCX); - CPPUNIT_TEST(testAxisCrossBetweenDOCX); - CPPUNIT_TEST(testPieChartDataPointExplosionXLSX); - CPPUNIT_TEST(testCustomDataLabel); - CPPUNIT_TEST(testDataSeriesName); - CPPUNIT_TEST(testCustomPositionofDataLabel); - CPPUNIT_TEST(testCustomDataLabelMultipleSeries); - CPPUNIT_TEST(testLeaderLines); - CPPUNIT_TEST(testNumberFormatExportPPTX); - CPPUNIT_TEST(testLabelSeparatorExportDOCX); - CPPUNIT_TEST(testChartTitlePropertiesColorFillPPTX); - CPPUNIT_TEST(testChartTitlePropertiesGradientFillPPTX); - CPPUNIT_TEST(testChartTitlePropertiesBitmapFillPPTX); - CPPUNIT_TEST(testxAxisLabelsRotation); - CPPUNIT_TEST(testMultipleCategoryAxisLablesXLSX); - CPPUNIT_TEST(testMultipleCategoryAxisLablesDOCX); - CPPUNIT_TEST(testTdf116163); - CPPUNIT_TEST(testTdf111824); - CPPUNIT_TEST(test3DAreaChartZAxis); - CPPUNIT_TEST(testTdf119029); - CPPUNIT_TEST(testTdf108022); - CPPUNIT_TEST(testTdf121744); - CPPUNIT_TEST(testTdf121189); - CPPUNIT_TEST(testTdf122031); - CPPUNIT_TEST(testTdf115012); - CPPUNIT_TEST(testTdf134118); - CPPUNIT_TEST(testTdf123206_customLabelText); - CPPUNIT_TEST(testCustomLabelText); - CPPUNIT_TEST(testDeletedLegendEntries); - CPPUNIT_TEST(testTdf60316); - CPPUNIT_TEST(testTdf130225); - CPPUNIT_TEST(testTdf59857); - CPPUNIT_TEST(testTdf126076); - CPPUNIT_TEST(testTdf75330); - CPPUNIT_TEST(testTdf127792); - CPPUNIT_TEST(testTdf131979); - CPPUNIT_TEST(testTdf132076); - CPPUNIT_TEST(testTdf125812); - CPPUNIT_TEST(testTdf133190); - CPPUNIT_TEST(testTdf133191); - CPPUNIT_TEST(testTdf132594); - CPPUNIT_TEST(testTdf134255); - CPPUNIT_TEST(testTdf134977); - CPPUNIT_TEST(testTdf123647); - CPPUNIT_TEST(testTdf136267); - CPPUNIT_TEST(testDataLabelPlacementPieChart); - CPPUNIT_TEST(testTdf137917); - CPPUNIT_TEST(testTdf138204); - CPPUNIT_TEST(testTdf138181); - CPPUNIT_TEST(testCustomShapeText); - CPPUNIT_TEST(testuserShapesXLSX); - CPPUNIT_TEST(testuserShapesDOCX); - CPPUNIT_TEST(testGraphicBlipXLSX); - CPPUNIT_TEST(testNameRangeXLSX); - CPPUNIT_TEST(testTdf143942); - CPPUNIT_TEST(testDateCategoriesPPTX); - CPPUNIT_TEST_SUITE_END(); }; -void Chart2ExportTest2::registerNamespaces(xmlXPathContextPtr& pXmlXPathCtx) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testSetSeriesToSecondaryAxisXLSX) { - XmlTestTools::registerOOXMLNamespaces(pXmlXPathCtx); -} - -void Chart2ExportTest2::testSetSeriesToSecondaryAxisXLSX() -{ - load(u"/chart2/qa/extras/data/xlsx/", "add_series_secondary_axis.xlsx"); + loadFromFile(u"xlsx/add_series_secondary_axis.xlsx"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); // Second series Reference<chart2::XDataSeries> xSeries = getDataSeriesFromDoc(xChartDoc, 1); @@ -189,176 +42,192 @@ void Chart2ExportTest2::testSetSeriesToSecondaryAxisXLSX() // Attach the second series to the secondary axis. (The third series is already attached.) xPropSet->setPropertyValue("AttachedAxisIndex", uno::Any(AxisIndex)); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Check there are only two <lineChart> tag in the XML, one for the primary and one for the secondary axis. - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart", 2); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart"_ostr, 2); } -void Chart2ExportTest2::testCombinedChartSecondaryAxisXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCombinedChartSecondaryAxisXLSX) { // Original file was created with MS Office - load(u"/chart2/qa/extras/data/xlsx/", "combined_chart_secondary_axis.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/combined_chart_secondary_axis.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Collect barchart axID on secondary Axis - OUString XValueIdOfBarchart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]", "val"); - OUString YValueIdOfBarchart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]", "val"); + OUString XValueIdOfBarchart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]"_ostr, "val"_ostr); + OUString YValueIdOfBarchart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]"_ostr, "val"_ostr); // Collect linechart axID on primary Axis - OUString XValueIdOfLinechart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]", "val"); - OUString YValueIdOfLinechart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]", "val"); + OUString XValueIdOfLinechart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]"_ostr, "val"_ostr); + OUString YValueIdOfLinechart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]"_ostr, "val"_ostr); // Check which c:catAx and c:valAx contain the AxisId of charttypes - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[1]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[1]/c:axId"_ostr, "val"_ostr, XValueIdOfLinechart); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[1]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[1]/c:axId"_ostr, "val"_ostr, YValueIdOfLinechart); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:axId"_ostr, "val"_ostr, XValueIdOfBarchart); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:axId"_ostr, "val"_ostr, YValueIdOfBarchart); } -void Chart2ExportTest2::testCombinedChartSecondaryAxisODS() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCombinedChartSecondaryAxisODS) { // Original file was created with LibreOffice - load(u"/chart2/qa/extras/data/ods/", "combined_chart_secondary_axis.ods"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"ods/combined_chart_secondary_axis.ods"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Collect barchart axID on secondary Axis - OUString XValueIdOfBarchart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]", "val"); - OUString YValueIdOfBarchart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]", "val"); + OUString XValueIdOfBarchart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]"_ostr, "val"_ostr); + OUString YValueIdOfBarchart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]"_ostr, "val"_ostr); // Collect linechart axID on primary Axis - OUString XValueIdOfLinechart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]", "val"); - OUString YValueIdOfLinechart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]", "val"); + OUString XValueIdOfLinechart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]"_ostr, "val"_ostr); + OUString YValueIdOfLinechart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]"_ostr, "val"_ostr); // Check which c:catAx and c:valAx contain the AxisId of charttypes - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[1]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[1]/c:axId"_ostr, "val"_ostr, XValueIdOfLinechart); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[1]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[1]/c:axId"_ostr, "val"_ostr, YValueIdOfLinechart); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:axId"_ostr, "val"_ostr, XValueIdOfBarchart); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:axId"_ostr, "val"_ostr, YValueIdOfBarchart); // do not need CT_crosses tag if the actual axis is deleted, so we need to make sure it is not saved - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:crosses", 0); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx[2]/c:crosses"_ostr, 0); } -void Chart2ExportTest2::testCrossBetweenXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenXLSX) { + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + // Original files were created with MS Office { - load(u"/chart2/qa/extras/data/xlsx/", "tdf127777.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf127777.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", - "between"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween"_ostr, + "val"_ostr, "between"); } { - load(u"/chart2/qa/extras/data/xlsx/", "tdf132076.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf132076.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", - "between"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween"_ostr, + "val"_ostr, "between"); } } -void Chart2ExportTest2::testCrossBetweenWithDeletedAxis() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenWithDeletedAxis) { // Original file was created with MS Office (the category axis is deleted in the file) - load(u"/chart2/qa/extras/data/xlsx/", "tdf128633.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf128633.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween"_ostr, "val"_ostr, "between"); } -void Chart2ExportTest2::testCrossBetweenODS() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenODS) { // Original file was created with LibreOffice - load(u"/chart2/qa/extras/data/ods/", "test_CrossBetween.ods"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"ods/test_CrossBetween.ods"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween"_ostr, "val"_ostr, "between"); } -void Chart2ExportTest2::testAxisTitleRotationXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testAxisTitleRotationXLSX) { - load(u"/chart2/qa/extras/data/xlsx/", "axis_title_rotation.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/axis_title_rotation.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:bodyPr", - "rot", "0"); + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:tx/c:rich/a:bodyPr"_ostr, + "rot"_ostr, "0"); } -void Chart2ExportTest2::testAxisTitlePositionDOCX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testAxisTitlePositionDOCX) { - load(u"/chart2/qa/extras/data/docx/", "testAxisTitlePosition.docx"); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + loadFromFile(u"docx/testAxisTitlePosition.docx"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // test X Axis title position OUString aXVal = getXPath( - pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:title/c:layout/c:manualLayout/c:x", - "val"); + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:title/c:layout/c:manualLayout/c:x"_ostr, + "val"_ostr); double nX = aXVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(0.698208543867708, nX, 1e-3); OUString aYVal = getXPath( - pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:title/c:layout/c:manualLayout/c:y", - "val"); + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:title/c:layout/c:manualLayout/c:y"_ostr, + "val"_ostr); double nY = aYVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(0.805152435594555, nY, 1e-3); // test Y Axis title position - aXVal = getXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:layout/c:manualLayout/c:x", - "val"); + aXVal = getXPath( + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:layout/c:manualLayout/c:x"_ostr, + "val"_ostr); nX = aXVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0253953671500755, nX, 1e-3); - aYVal = getXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:layout/c:manualLayout/c:y", - "val"); + aYVal = getXPath( + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:title/c:layout/c:manualLayout/c:y"_ostr, + "val"_ostr); nY = aYVal.toDouble(); // just test the first two decimal digits because it is not perfect in docx yet. CPPUNIT_ASSERT_DOUBLES_EQUAL(0.384070199122511, nY, 1e-2); } -void Chart2ExportTest2::testAxisCrossBetweenDOCX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testAxisCrossBetweenDOCX) { - load(u"/chart2/qa/extras/data/odt/", "axis-position.odt"); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); - assertXPath(pXmlDoc, "(//c:crossBetween)[1]", "val", "midCat"); + loadFromFile(u"odt/axis-position.odt"); + + // FIXME: validation error in OOXML export: Errors: 3 + skipValidation(); + + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); + assertXPath(pXmlDoc, "(//c:crossBetween)[1]"_ostr, "val"_ostr, "midCat"); } -void Chart2ExportTest2::testPieChartDataPointExplosionXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testPieChartDataPointExplosionXLSX) { - load(u"/chart2/qa/extras/data/xlsx/", "pie_chart_datapoint_explosion.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/pie_chart_datapoint_explosion.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dPt/c:explosion", - "val", "28"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dPt/c:explosion"_ostr, + "val"_ostr, "28"); } -void Chart2ExportTest2::testCustomDataLabel() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomDataLabel) { - load(u"/chart2/qa/extras/data/pptx/", "tdf115107.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1", "Impress MS PowerPoint 2007 XML"); - CPPUNIT_ASSERT(pXmlDoc); - // Check the data labels font color for the complete data series - assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/" - "a:defRPr/a:solidFill/a:srgbClr", - "val", "404040"); + loadFromFile(u"pptx/tdf115107.pptx"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); @@ -466,15 +335,24 @@ void Chart2ExportTest2::testCustomDataLabel() CPPUNIT_ASSERT_EQUAL(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT, aFields[1]->getFieldType()); CPPUNIT_ASSERT_EQUAL(OUString(" <CELLREF"), aFields[1]->getString()); + + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); + CPPUNIT_ASSERT(pXmlDoc); + // Check the data labels font color for the complete data series + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:txPr/a:p/a:pPr/" + "a:defRPr/a:solidFill/a:srgbClr"_ostr, + "val"_ostr, "404040"); } /// Test for tdf#94235 -void Chart2ExportTest2::testDataSeriesName() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDataSeriesName) { // ODF { - load(u"/chart2/qa/extras/data/ods/", "ser_labels.ods"); - reload("calc8"); + loadFromFile(u"ods/ser_labels.ods"); + saveAndReload("calc8"); uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); CPPUNIT_ASSERT(xDataSeries.is()); @@ -487,8 +365,8 @@ void Chart2ExportTest2::testDataSeriesName() // OOXML { - load(u"/chart2/qa/extras/data/xlsx/", "ser_labels.xlsx"); - reload("Calc Office Open XML"); + loadFromFile(u"xlsx/ser_labels.xlsx"); + saveAndReload("Calc Office Open XML"); uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); CPPUNIT_ASSERT(xDataSeries.is()); @@ -500,59 +378,66 @@ void Chart2ExportTest2::testDataSeriesName() } } -void Chart2ExportTest2::testCustomPositionofDataLabel() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomPositionofDataLabel) { - load(u"/chart2/qa/extras/data/xlsx/", "testCustomPosDataLabels.xlsx"); + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + + loadFromFile(u"xlsx/testCustomPosDataLabels.xlsx"); { - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // test custom position of data label (xlsx) - assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:idx", - "val", "2"); + assertXPath( + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[1]/c:idx"_ostr, + "val"_ostr, "2"); OUString aXVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/" - "c:dLbl[1]/c:layout/c:manualLayout/c:x", - "val"); + "c:dLbl[1]/c:layout/c:manualLayout/c:x"_ostr, + "val"_ostr); double nX = aXVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.11027682973075476, nX, 1e-7); OUString aYVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/" - "c:dLbl[1]/c:layout/c:manualLayout/c:y", - "val"); + "c:dLbl[1]/c:layout/c:manualLayout/c:y"_ostr, + "val"_ostr); double nY = aYVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0742140311063737, nY, 1e-7); } - load(u"/chart2/qa/extras/data/docx/", "testTdf108110.docx"); + loadFromFile(u"docx/testTdf108110.docx"); { - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // test custom position of data label (docx) - assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[2]/c:idx", - "val", "2"); + assertXPath( + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/c:dLbl[2]/c:idx"_ostr, + "val"_ostr, "2"); OUString aXVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/" - "c:dLbl[2]/c:layout/c:manualLayout/c:x", - "val"); + "c:dLbl[2]/c:layout/c:manualLayout/c:x"_ostr, + "val"_ostr); double nX = aXVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0227256488772236, nX, 1e-7); OUString aYVal = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:dLbls/" - "c:dLbl[2]/c:layout/c:manualLayout/c:y", - "val"); + "c:dLbl[2]/c:layout/c:manualLayout/c:y"_ostr, + "val"_ostr); double nY = aYVal.toDouble(); CPPUNIT_ASSERT_DOUBLES_EQUAL(0.172648731408574, nY, 1e-7); } - load(u"/chart2/qa/extras/data/ods/", "tdf136024.ods"); + loadFromFile(u"ods/tdf136024.ods"); { - reload("calc8"); + saveAndReload("calc8"); // tdf#136024: test custom position of pie chart data label after an ods export Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); @@ -565,16 +450,14 @@ void Chart2ExportTest2::testCustomPositionofDataLabel() chart2::RelativePosition aCustomLabelPosition; CPPUNIT_ASSERT(xPropertySet->getPropertyValue("CustomLabelPosition") >>= aCustomLabelPosition); - CPPUNIT_ASSERT_DOUBLES_EQUAL(aCustomLabelPosition.Primary, -0.0961935120945059, 1e-5); - CPPUNIT_ASSERT_DOUBLES_EQUAL(aCustomLabelPosition.Secondary, 0.209578842093566, 1e-5); + CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0961935120945059, aCustomLabelPosition.Primary, 1e-5); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.209578842093566, aCustomLabelPosition.Secondary, 1e-5); } } -void Chart2ExportTest2::testCustomDataLabelMultipleSeries() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomDataLabelMultipleSeries) { - load(u"/chart2/qa/extras/data/pptx/", "tdf115107-2.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart2", "Impress MS PowerPoint 2007 XML"); - CPPUNIT_ASSERT(pXmlDoc); + loadFromFile(u"pptx/tdf115107-2.pptx"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromDrawImpress(0, 0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); @@ -634,228 +517,251 @@ void Chart2ExportTest2::testCustomDataLabelMultipleSeries() CPPUNIT_ASSERT_EQUAL(OUString("Line"), aFields[2]->getString()); } -void Chart2ExportTest2::testLeaderLines() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testLeaderLines) { - load(u"/chart2/qa/extras/data/xlsx/", "testTdf90749.xlsx"); + // FIXME: validation error in OOXML export: Errors: 2 + skipValidation(); + + loadFromFile(u"xlsx/testTdf90749.xlsx"); { - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[1]/c:dLbls/c:extLst/c:ext/" - "c15:showLeaderLines", - "val", "1"); + "c15:showLeaderLines"_ostr, + "val"_ostr, "1"); assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[2]/c:dLbls/c:extLst/c:ext/" - "c15:showLeaderLines", - "val", "0"); + "c15:showLeaderLines"_ostr, + "val"_ostr, "0"); } - load(u"/chart2/qa/extras/data/docx/", "MSO_Custom_Leader_Line.docx"); + loadFromFile(u"docx/MSO_Custom_Leader_Line.docx"); { - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1", "Office Open XML Text"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // tdf#134571: Check the leader line is switch off. assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:extLst/c:ext/" - "c15:showLeaderLines", - "val", "0"); + "c15:showLeaderLines"_ostr, + "val"_ostr, "0"); } } -void Chart2ExportTest2::testNumberFormatExportPPTX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testNumberFormatExportPPTX) { - load(u"/chart2/qa/extras/data/pptx/", "tdf115859.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"pptx/tdf115859.pptx"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", - "formatCode", "#,##0.00,\\K"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt", - "sourceLinked", "0"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt"_ostr, + "formatCode"_ostr, "#,##0.00,\\K"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:numFmt"_ostr, + "sourceLinked"_ostr, "0"); } -void Chart2ExportTest2::testLabelSeparatorExportDOCX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testLabelSeparatorExportDOCX) { - load(u"/chart2/qa/extras/data/docx/", "testLabelSeparator.docx"); + loadFromFile(u"docx/testLabelSeparator.docx"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // The text separator should be a new line assertXPathContent( - pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls/c:separator", "\n"); + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls/c:separator"_ostr, + "\n"); // The text separator should be a comma assertXPathContent( - pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[2]/c:dLbls/c:separator", ", "); + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[2]/c:dLbls/c:separator"_ostr, + ", "); // The text separator should be a semicolon assertXPathContent( - pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[3]/c:dLbls/c:separator", "; "); + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[3]/c:dLbls/c:separator"_ostr, + "; "); } -void Chart2ExportTest2::testChartTitlePropertiesColorFillPPTX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartTitlePropertiesColorFillPPTX) { - load(u"/chart2/qa/extras/data/pptx/", "testChartTitlePropertiesColorFill.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"pptx/testChartTitlePropertiesColorFill.pptx"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:solidFill/a:srgbClr", "val", - "ff0000"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:solidFill/a:srgbClr"_ostr, + "val"_ostr, "ff0000"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill"_ostr, 1); } -void Chart2ExportTest2::testChartTitlePropertiesGradientFillPPTX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartTitlePropertiesGradientFillPPTX) { - load(u"/chart2/qa/extras/data/pptx/", "testChartTitlePropertiesGradientFill.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"pptx/testChartTitlePropertiesGradientFill.pptx"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", - "f6f8fc"); + "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr"_ostr, + "val"_ostr, "f6f8fc"); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr", "val", - "c7d5ed"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); + "/c:chartSpace/c:chart/c:title/c:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr"_ostr, + "val"_ostr, "c7d5ed"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill"_ostr, 1); } -void Chart2ExportTest2::testChartTitlePropertiesBitmapFillPPTX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartTitlePropertiesBitmapFillPPTX) { - load(u"/chart2/qa/extras/data/pptx/", "testChartTitlePropertiesBitmapFill.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"pptx/testChartTitlePropertiesBitmapFill.pptx"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:blipFill/a:blip", "embed", "rId1"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill", 1); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:blipFill/a:blip"_ostr, + "embed"_ostr, "rId1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:title/c:spPr/a:ln/a:noFill"_ostr, 1); } -void Chart2ExportTest2::testxAxisLabelsRotation() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testxAxisLabelsRotation) { - load(u"/chart2/qa/extras/data/xlsx/", "xAxisLabelsRotation.xlsx"); - xmlDocUniquePtr pXmlDoc1 = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/xAxisLabelsRotation.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc1 = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc1); // Chart1 xAxis labels should be 45 degree - assertXPath(pXmlDoc1, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:bodyPr", "rot", - "2700000"); + assertXPath(pXmlDoc1, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:bodyPr"_ostr, + "rot"_ostr, "2700000"); } -void Chart2ExportTest2::testMultipleCategoryAxisLablesXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testMultipleCategoryAxisLablesXLSX) { - load(u"/chart2/qa/extras/data/ods/", "multilevelcat.ods"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"ods/multilevelcat.ods"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // check category axis labels number of first level assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:multiLvlStrRef/" - "c:multiLvlStrCache/c:ptCount", - "val", "6"); + "c:multiLvlStrCache/c:ptCount"_ostr, + "val"_ostr, "6"); // check category axis labels text of first level assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[1]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[1]/c:v"_ostr, "Categoria 1"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[6]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[6]/c:v"_ostr, "Categoria 6"); // check category axis labels text of second level assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[1]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[1]/c:v"_ostr, "2011"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[3]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[3]/c:v"_ostr, "2013"); // check the 'noMultiLvlLbl' tag - ChartExport.cxx:2950 FIXME: seems not support, so check the default noMultiLvlLbl value. - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:noMultiLvlLbl", "val", "0"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:noMultiLvlLbl"_ostr, + "val"_ostr, "0"); } -void Chart2ExportTest2::testMultipleCategoryAxisLablesDOCX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testMultipleCategoryAxisLablesDOCX) { - load(u"/chart2/qa/extras/data/odt/", "multilevelcat.odt"); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + loadFromFile(u"odt/multilevelcat.odt"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // check category axis labels number of first level assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:multiLvlStrRef/" - "c:multiLvlStrCache/c:ptCount", - "val", "4"); + "c:multiLvlStrCache/c:ptCount"_ostr, + "val"_ostr, "4"); // check category axis labels text of first level assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[1]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[1]/c:v"_ostr, "Categoria 1"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[4]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[1]/c:pt[4]/c:v"_ostr, "Categoria 4"); // check category axis labels text of second level assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[1]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[1]/c:v"_ostr, "2011"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/" - "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[2]/c:v", + "c:multiLvlStrRef/c:multiLvlStrCache/c:lvl[2]/c:pt[2]/c:v"_ostr, "2012"); // check the 'noMultiLvlLbl' tag - ChartExport.cxx:2950 FIXME: seems not support, so check the default noMultiLvlLbl value. - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:noMultiLvlLbl", "val", "0"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:noMultiLvlLbl"_ostr, + "val"_ostr, "0"); } -void Chart2ExportTest2::testTdf116163() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf116163) { - load(u"/chart2/qa/extras/data/pptx/", "tdf116163.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"pptx/tdf116163.pptx"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:bodyPr", "rot", - "-5400000"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:txPr/a:bodyPr"_ostr, + "rot"_ostr, "-5400000"); } -void Chart2ExportTest2::testTdf111824() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf111824) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf111824.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf111824.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Collect 3D barchart Z axID - OUString zAxisIdOf3DBarchart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:axId[3]", "val"); + OUString zAxisIdOf3DBarchart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:bar3DChart/c:axId[3]"_ostr, "val"_ostr); // 3D barchart Z axis properties should be in a serAx OOXML tag instead of catAx - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId"_ostr, "val"_ostr, zAxisIdOf3DBarchart); } -void Chart2ExportTest2::test3DAreaChartZAxis() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, test3DAreaChartZAxis) { - load(u"/chart2/qa/extras/data/xlsx/", "test3DAreaChartZAxis.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/test3DAreaChartZAxis.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Collect 3D area chart Z axID - OUString zAxisIdOf3DAreachart - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:area3DChart/c:axId[3]", "val"); + OUString zAxisIdOf3DAreachart = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:area3DChart/c:axId[3]"_ostr, "val"_ostr); // 3D area chart z-axis properties should be in a serAx OOXML element instead of catAx - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId", "val", + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:serAx/c:axId"_ostr, "val"_ostr, zAxisIdOf3DAreachart); } -void Chart2ExportTest2::testTdf119029() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf119029) { - load(u"/chart2/qa/extras/data/odp/", "tdf119029.odp"); + loadFromFile(u"odp/tdf119029.odp"); // Only use "chart", without number, because the number depends on the previous tests - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:txPr/a:bodyPr", "rot", - "-5400000"); + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:txPr/a:bodyPr"_ostr, + "rot"_ostr, "-5400000"); } -void Chart2ExportTest2::testTdf108022() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf108022) { - load(u"/chart2/qa/extras/data/odt/", "tdf108022.odt"); - reload("Office Open XML Text"); + loadFromFile(u"odt/tdf108022.odt"); + saveAndReload("Office Open XML Text"); // assert we really have two charts Reference<chart2::XChartDocument> xChartDoc1(getChartDocFromWriter(0), uno::UNO_QUERY); @@ -864,25 +770,28 @@ void Chart2ExportTest2::testTdf108022() CPPUNIT_ASSERT(xChartDoc2.is()); } -void Chart2ExportTest2::testTdf121744() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf121744) { - load(u"/chart2/qa/extras/data/docx/", "tdf121744.docx"); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + loadFromFile(u"docx/tdf121744.docx"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - OUString XValueId - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]", "val"); - OUString YValueId - = getXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]", "val"); + OUString XValueId = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[1]"_ostr, "val"_ostr); + OUString YValueId = getXPath( + pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:axId[2]"_ostr, "val"_ostr); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]", "val", XValueId); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]", "val", YValueId); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[1]"_ostr, "val"_ostr, + XValueId); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:axId[2]"_ostr, "val"_ostr, + YValueId); } -void Chart2ExportTest2::testTdf121189() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf121189) { - load(u"/chart2/qa/extras/data/odp/", "tdf121189.odp"); - reload("Impress Office Open XML"); + loadFromFile(u"odp/tdf121189.odp"); + saveAndReload("Impress Office Open XML"); uno::Reference<drawing::XDrawPagesSupplier> xDoc(mxComponent, uno::UNO_QUERY_THROW); uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), @@ -892,101 +801,119 @@ void Chart2ExportTest2::testTdf121189() CPPUNIT_ASSERT_EQUAL(OUString("com.sun.star.drawing.OLE2Shape"), xShape->getShapeType()); } -void Chart2ExportTest2::testTdf122031() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf122031) { //Checks pie chart data label format. + loadFromFile(u"xlsx/tdf122031.xlsx"); + + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); - load(u"/chart2/qa/extras/data/xlsx/", "tdf122031.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", - "formatCode", "0.000%"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt"_ostr, + "formatCode"_ostr, "0.000%"); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", - "formatCode", "0.000%"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt"_ostr, + "formatCode"_ostr, "0.000%"); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:numFmt", - "formatCode", "0.000%"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:numFmt"_ostr, + "formatCode"_ostr, "0.000%"); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:numFmt", - "formatCode", "0.000%"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:numFmt"_ostr, + "formatCode"_ostr, "0.000%"); } -void Chart2ExportTest2::testTdf115012() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf115012) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf115012.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf115012.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // workaround: use-zero instead of leave-gap to show the original line chart - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs", "val", "zero"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs"_ostr, "val"_ostr, "zero"); } -void Chart2ExportTest2::testTdf134118() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf134118) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf134118.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf134118.xlsx"); + + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // workaround: use leave-gap instead of zero to show the original line chart - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs", "val", "gap"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:dispBlanksAs"_ostr, "val"_ostr, "gap"); } -void Chart2ExportTest2::testTdf123206_customLabelText() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf123206_customLabelText) { - load(u"/chart2/qa/extras/data/docx/", "tdf123206.docx"); + loadFromFile(u"docx/tdf123206.docx"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + // FIXME: validation error in OOXML export: Errors: 2 + skipValidation(); + + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:tx/" - "c:rich/a:p/a:r/a:t", + "c:rich/a:p/a:r/a:t"_ostr, "kiscica"); } -void Chart2ExportTest2::testCustomLabelText() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomLabelText) { - load(u"/chart2/qa/extras/data/docx/", "testCustomlabeltext.docx"); + loadFromFile(u"docx/testCustomlabeltext.docx"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + // FIXME: validation error in OOXML export: Errors: 3 + skipValidation(); + + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[1]/c:idx", "val", - "2"); + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[1]/c:idx"_ostr, + "val"_ostr, "2"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[1]/c:tx/" - "c:rich/a:p/a:r[1]/a:t", + "c:rich/a:p/a:r[1]/a:t"_ostr, "3.5"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[1]/c:tx/" - "c:rich/a:p/a:r[3]/a:t", + "c:rich/a:p/a:r[3]/a:t"_ostr, "CustomLabel 1"); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[2]/c:idx", "val", - "3"); + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[2]/c:idx"_ostr, + "val"_ostr, "3"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[2]/c:tx/" - "c:rich/a:p/a:r[1]/a:t", + "c:rich/a:p/a:r[1]/a:t"_ostr, "4.5"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl[2]/c:tx/" - "c:rich/a:p/a:r[3]/a:t", + "c:rich/a:p/a:r[3]/a:t"_ostr, "CustomLabel 2"); } -void Chart2ExportTest2::testDeletedLegendEntries() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDeletedLegendEntries) { - load(u"/chart2/qa/extras/data/xlsx/", "deleted_legend_entry.xlsx"); + loadFromFile(u"xlsx/deleted_legend_entry.xlsx"); { - reload("Calc Office Open XML"); + saveAndReload("Calc Office Open XML"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 1)); @@ -997,9 +924,9 @@ void Chart2ExportTest2::testDeletedLegendEntries() CPPUNIT_ASSERT(!bShowLegendEntry); } - load(u"/chart2/qa/extras/data/xlsx/", "deleted_legend_entry2.xlsx"); + loadFromFile(u"xlsx/deleted_legend_entry2.xlsx"); { - reload("Calc Office Open XML"); + saveAndReload("Calc Office Open XML"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); @@ -1021,21 +948,22 @@ void Chart2ExportTest2::testDeletedLegendEntries() } } -void Chart2ExportTest2::testTdf60316() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf60316) { - load(u"/chart2/qa/extras/data/pptx/", "tdf60316.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"pptx/tdf60316.pptx"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Without the fix in place, the shape would have had a solidFill background - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:noFill", 1); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:solidFill", 0); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:noFill"_ostr, 1); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:solidFill"_ostr, 0); } -void Chart2ExportTest2::testTdf130225() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf130225) { - load(u"/chart2/qa/extras/data/docx/", "piechart_deleted_legend_entry.docx"); - reload("Office Open XML Text"); + loadFromFile(u"docx/piechart_deleted_legend_entry.docx"); + saveAndReload("Office Open XML Text"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); @@ -1047,38 +975,41 @@ void Chart2ExportTest2::testTdf130225() CPPUNIT_ASSERT_EQUAL(sal_Int32(1), deletedLegendEntriesSeq[0]); } -void Chart2ExportTest2::testTdf59857() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf59857) { - load(u"/chart2/qa/extras/data/ods/", "tdf59857.ods"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"ods/tdf59857.ods"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:floor/c:spPr/a:ln/a:noFill", 1); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:floor/c:spPr/a:solidFill/a:srgbClr", "val", - "cccccc"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:backWall/c:spPr/a:ln/a:noFill", 0); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:backWall/c:spPr/a:ln/a:solidFill/a:srgbClr", - "val", "b3b3b3"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:floor/c:spPr/a:ln/a:noFill"_ostr, 1); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:floor/c:spPr/a:solidFill/a:srgbClr"_ostr, + "val"_ostr, "cccccc"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:backWall/c:spPr/a:ln/a:noFill"_ostr, 0); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:backWall/c:spPr/a:ln/a:solidFill/a:srgbClr"_ostr, + "val"_ostr, "b3b3b3"); } -void Chart2ExportTest2::testTdf126076() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf126076) { - load(u"/chart2/qa/extras/data/xlsx/", "auto_marker_excel10.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/auto_marker_excel10.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // This was 12: all series exported with square markers assertXPath( pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker/c:symbol[@val='square']", 0); + "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker/c:symbol[@val='square']"_ostr, + 0); // instead of skipping markers - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker", 0); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:marker"_ostr, 0); } -void Chart2ExportTest2::testTdf75330() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf75330) { - load(u"/chart2/qa/extras/data/ods/", "legend_overlay.ods"); - reload("calc8"); + loadFromFile(u"ods/legend_overlay.ods"); + saveAndReload("calc8"); { uno::Reference<chart2::XChartDocument> xChart2Doc = getChartDocFromSheet(0, mxComponent); uno::Reference<chart::XChartDocument> xChartDoc(xChart2Doc, uno::UNO_QUERY); @@ -1088,7 +1019,7 @@ void Chart2ExportTest2::testTdf75330() CPPUNIT_ASSERT(xPropertySet->getPropertyValue("Overlay") >>= bOverlay); CPPUNIT_ASSERT(bOverlay); } - reload("Calc Office Open XML"); + saveAndReload("Calc Office Open XML"); { uno::Reference<chart2::XChartDocument> xChart2Doc = getChartDocFromSheet(0, mxComponent); uno::Reference<chart::XChartDocument> xChartDoc(xChart2Doc, uno::UNO_QUERY); @@ -1100,28 +1031,26 @@ void Chart2ExportTest2::testTdf75330() } } -void Chart2ExportTest2::testTdf127792() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf127792) { - load(u"/chart2/qa/extras/data/docx/", "MSO_axis_position.docx"); - { - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1", "Office Open XML Text"); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", - "between"); - } - { - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart2", "Office Open XML Text"); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", - "midCat"); - } + loadFromFile(u"docx/MSO_axis_position.docx"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween"_ostr, "val"_ostr, + "between"); + + pXmlDoc = parseExport("word/charts/chart2.xml"); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween"_ostr, "val"_ostr, + "midCat"); } -void Chart2ExportTest2::testTdf131979() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf131979) { - load(u"/chart2/qa/extras/data/ods/", "tdf131115.ods"); + loadFromFile(u"ods/tdf131115.ods"); { - reload("calc8"); + saveAndReload("calc8"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); @@ -1135,9 +1064,9 @@ void Chart2ExportTest2::testTdf131979() !blinknumberformattosource); } - load(u"/chart2/qa/extras/data/ods/", "tdf131979.ods"); + loadFromFile(u"ods/tdf131979.ods"); { - reload("calc8"); + saveAndReload("calc8"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); @@ -1152,87 +1081,108 @@ void Chart2ExportTest2::testTdf131979() } } -void Chart2ExportTest2::testTdf132076() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf132076) { + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + { - load(u"/chart2/qa/extras/data/ods/", "tdf132076.ods"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"ods/tdf132076.ods"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "formatCode", - "dd"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "sourceLinked", - "0"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt"_ostr, + "formatCode"_ostr, "dd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt"_ostr, + "sourceLinked"_ostr, "0"); } { - load(u"/chart2/qa/extras/data/xlsx/", "tdf132076.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf132076.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "formatCode", - "dd"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "sourceLinked", - "0"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt"_ostr, + "formatCode"_ostr, "dd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt"_ostr, + "sourceLinked"_ostr, "0"); } } -void Chart2ExportTest2::testTdf125812() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf125812) { - load(u"/chart2/qa/extras/data/odp/", "ellipticalGradientFill.odp"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress MS PowerPoint 2007 XML"); + loadFromFile(u"odp/ellipticalGradientFill.odp"); + save("Impress MS PowerPoint 2007 XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path", "path", - "circle"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", - "l", "50000"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", - "t", "49000"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", - "r", "50000"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect", - "b", "51000"); -} - -void Chart2ExportTest2::testTdf133190() -{ - load(u"/chart2/qa/extras/data/xlsx/", "tdf133190_tdf133191.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path"_ostr, + "path"_ostr, "circle"); + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect"_ostr, + "l"_ostr, "50000"); + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect"_ostr, + "t"_ostr, "49000"); + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect"_ostr, + "r"_ostr, "50000"); + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:spPr/a:gradFill/a:path/a:fillToRect"_ostr, + "b"_ostr, "51000"); +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf133190) +{ + loadFromFile(u"xlsx/tdf133190_tdf133191.xlsx"); + + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Test word wrap of data point label assertXPath( pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:bodyPr", - "wrap", "none"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:txPr/a:bodyPr"_ostr, + "wrap"_ostr, "none"); assertXPath( pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:txPr/a:bodyPr", - "wrap", "square"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[2]/c:txPr/a:bodyPr"_ostr, + "wrap"_ostr, "square"); } -void Chart2ExportTest2::testTdf133191() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf133191) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf133190_tdf133191.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf133190_tdf133191.xlsx"); + + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // Test rotation of data point label assertXPath( pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:txPr/a:bodyPr", - "rot", "-4500000"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[3]/c:txPr/a:bodyPr"_ostr, + "rot"_ostr, "-4500000"); } -void Chart2ExportTest2::testTdf132594() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf132594) { - load(u"/chart2/qa/extras/data/xlsx/", "chart_pie2007.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/chart_pie2007.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:cat", 1); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:cat"_ostr, 1); } -void Chart2ExportTest2::testTdf134255() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf134255) { - load(u"/chart2/qa/extras/data/docx/", "tdf134255.docx"); + loadFromFile(u"docx/tdf134255.docx"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); @@ -1244,18 +1194,22 @@ void Chart2ExportTest2::testTdf134255() CPPUNIT_ASSERT((xPropSet->getPropertyValue("TextWordWrap") >>= bWrap)); CPPUNIT_ASSERT(bWrap); + // FIXME: validation error in OOXML export: Errors: 11 + skipValidation(); + // export test - xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + save("Office Open XML Text"); + xmlDocUniquePtr pXmlDoc = parseExport("word/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:txPr/a:bodyPr", "wrap", - "square"); + "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:txPr/a:bodyPr"_ostr, + "wrap"_ostr, "square"); } -void Chart2ExportTest2::testTdf134977() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf134977) { - load(u"/chart2/qa/extras/data/xlsx/", "custom_data_label.xlsx"); + loadFromFile(u"xlsx/custom_data_label.xlsx"); //import test uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); @@ -1270,41 +1224,51 @@ void Chart2ExportTest2::testTdf134977() aFields[0]->getPropertyValue("CharHeight") >>= nFontSize; CPPUNIT_ASSERT_EQUAL(static_cast<float>(9), nFontSize); + // FIXME: validation error in OOXML export: Errors: 2 + skipValidation(); + //export test - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:tx/c:rich/a:p/" - "a:r/a:rPr", - "sz", "900"); + "a:r/a:rPr"_ostr, + "sz"_ostr, "900"); } -void Chart2ExportTest2::testTdf123647() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf123647) { - load(u"/chart2/qa/extras/data/xlsx/", "empty_chart.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/empty_chart.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart", 1); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart"_ostr, 1); } -void Chart2ExportTest2::testTdf136267() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf136267) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf136267.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/tdf136267.xlsx"); + + // FIXME: validation error in OOXML export: Errors: 2 + skipValidation(); + + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); assertXPathContent( pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:cat/c:strRef/c:strCache/c:pt/c:v", + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:cat/c:strRef/c:strCache/c:pt/c:v"_ostr, "John"); } -void Chart2ExportTest2::testDataLabelPlacementPieChart() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDataLabelPlacementPieChart) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf134978.xlsx"); - reload("calc8"); - uno::Reference<chart::XChartDocument> xChartDoc(getChartCompFromSheet(0, mxComponent), + loadFromFile(u"xlsx/tdf134978.xlsx"); + saveAndReload("calc8"); + uno::Reference<chart::XChartDocument> xChartDoc(getChartCompFromSheet(0, 0, mxComponent), UNO_QUERY_THROW); // test the placement of the manually positioned label Reference<beans::XPropertySet> xDataPointPropSet( @@ -1316,37 +1280,32 @@ void Chart2ExportTest2::testDataLabelPlacementPieChart() CPPUNIT_ASSERT_EQUAL(chart::DataLabelPlacement::OUTSIDE, nLabelPlacement); } -void Chart2ExportTest2::testTdf137917() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf137917) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf137917.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); - CPPUNIT_ASSERT(pXmlDoc); + loadFromFile(u"xlsx/tdf137917.xlsx"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:baseTimeUnit", "val", "days"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:majorUnit", "val", "1"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:majorTimeUnit", "val", - "months"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:minorUnit", "val", "7"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:minorTimeUnit", "val", - "days"); -} + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); -void Chart2ExportTest2::testTdf138204() -{ - load(u"/chart2/qa/extras/data/xlsx/", "tdf138204.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); - // Check the first data label field type - assertXPath( - pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls/c:dLbl/c:tx/c:rich/a:p/a:fld", - "type", "CELLRANGE"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:baseTimeUnit"_ostr, + "val"_ostr, "days"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:majorUnit"_ostr, "val"_ostr, + "1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:majorTimeUnit"_ostr, + "val"_ostr, "months"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:minorUnit"_ostr, "val"_ostr, + "7"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:minorTimeUnit"_ostr, + "val"_ostr, "days"); +} - assertXPath( - pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[2]/c:dLbls/c:dLbl/c:tx/c:rich/a:p/a:fld", - "type", "CELLRANGE"); +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf138204) +{ + loadFromFile(u"xlsx/tdf138204.xlsx"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); @@ -1397,11 +1356,29 @@ void Chart2ExportTest2::testTdf138204() CPPUNIT_ASSERT_EQUAL(aTestEntry.aCellRange, aFields[0]->getCellRange()); CPPUNIT_ASSERT_EQUAL(aTestEntry.aString, aFields[0]->getString()); } + + // FIXME: validation error in OOXML export: Errors: 2 + skipValidation(); + + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); + CPPUNIT_ASSERT(pXmlDoc); + + // Check the first data label field type + assertXPath( + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:dLbls/c:dLbl/c:tx/c:rich/a:p/a:fld"_ostr, + "type"_ostr, "CELLRANGE"); + + assertXPath( + pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[2]/c:dLbls/c:dLbl/c:tx/c:rich/a:p/a:fld"_ostr, + "type"_ostr, "CELLRANGE"); } -void Chart2ExportTest2::testTdf138181() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf138181) { - load(u"/chart2/qa/extras/data/xlsx/", "piechart_deleted_legendentry.xlsx"); + loadFromFile(u"xlsx/piechart_deleted_legendentry.xlsx"); Reference<chart::XChartDocument> xChartDoc(getChartDocFromSheet(0, mxComponent), UNO_QUERY_THROW); Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW); @@ -1425,10 +1402,10 @@ void Chart2ExportTest2::testTdf138181() CPPUNIT_ASSERT(xLegendEntry3.is()); } -void Chart2ExportTest2::testCustomShapeText() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomShapeText) { - load(u"/chart2/qa/extras/data/ods/", "tdf72776.ods"); - reload("calc8"); + loadFromFile(u"ods/tdf72776.ods"); + saveAndReload("calc8"); Reference<chart::XChartDocument> xChartDoc(getChartDocFromSheet(0, mxComponent), UNO_QUERY_THROW); // test that the text of custom shape exists inside the chart @@ -1441,10 +1418,10 @@ void Chart2ExportTest2::testCustomShapeText() CPPUNIT_ASSERT(!xRange->getString().isEmpty()); } -void Chart2ExportTest2::testuserShapesXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testuserShapesXLSX) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf128621.xlsx"); - reload("Calc Office Open XML"); + loadFromFile(u"xlsx/tdf128621.xlsx"); + saveAndReload("Calc Office Open XML"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); @@ -1469,10 +1446,10 @@ void Chart2ExportTest2::testuserShapesXLSX() CPPUNIT_ASSERT(!xRange->getString().isEmpty()); } -void Chart2ExportTest2::testuserShapesDOCX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testuserShapesDOCX) { - load(u"/chart2/qa/extras/data/docx/", "tdf143130.docx"); - reload("Office Open XML Text"); + loadFromFile(u"docx/tdf143130.docx"); + saveAndReload("Office Open XML Text"); Reference<chart2::XChartDocument> xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); CPPUNIT_ASSERT(xChartDoc.is()); @@ -1497,10 +1474,10 @@ void Chart2ExportTest2::testuserShapesDOCX() CPPUNIT_ASSERT(!xRange->getString().isEmpty()); } -void Chart2ExportTest2::testGraphicBlipXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testGraphicBlipXLSX) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf143127.xlsx"); - reload("Calc Office Open XML"); + loadFromFile(u"xlsx/tdf143127.xlsx"); + saveAndReload("Calc Office Open XML"); Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); CPPUNIT_ASSERT(xChartDoc.is()); @@ -1525,26 +1502,31 @@ void Chart2ExportTest2::testGraphicBlipXLSX() CPPUNIT_ASSERT_GREATER(size_t(0), nDataSize); } -void Chart2ExportTest2::testNameRangeXLSX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testNameRangeXLSX) { - load(u"/chart2/qa/extras/data/xlsx/", "chart_with_name_range.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); + loadFromFile(u"xlsx/chart_with_name_range.xlsx"); + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); // test the syntax of local range name on the local sheet. assertXPathContent(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:cat/c:strRef/c:f", + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:cat/c:strRef/c:f"_ostr, "Sheet1!local_name_range"); // test the syntax of a global range name. assertXPathContent(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:val/c:numRef/c:f", + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:val/c:numRef/c:f"_ostr, "[0]!series1"); } -void Chart2ExportTest2::testTdf143942() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf143942) { - load(u"/chart2/qa/extras/data/xlsx/", "tdf143942.xlsx"); - xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart", "Calc Office Open XML"); - CPPUNIT_ASSERT(pXmlDoc); + loadFromFile(u"xlsx/tdf143942.xlsx"); + + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT(xChartDoc.is()); + + uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); constexpr size_t nLabels = 4; OUString aCellRange = "Sheet1!$A$2:$A$5"; @@ -1555,26 +1537,48 @@ void Chart2ExportTest2::testTdf143942() "Test4", }; - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:extLst/c:ext", - "uri", "{02D57815-91ED-43cb-92C2-25804820EDAC}"); + uno::Reference<beans::XPropertySet> xPropertySet; + uno::Sequence<uno::Reference<chart2::XDataPointCustomLabelField>> aFields; + for (size_t i = 0; i < nLabels; ++i) + { + xPropertySet.set(xDataSeries->getDataPointByIndex(i), uno::UNO_SET_THROW); + xPropertySet->getPropertyValue("CustomLabelFields") >>= aFields; + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), aFields.getLength()); + CPPUNIT_ASSERT_EQUAL( + chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_CELLRANGE, + aFields[0]->getFieldType()); + CPPUNIT_ASSERT_EQUAL(aCellRange, aFields[0]->getCellRange()); + CPPUNIT_ASSERT_EQUAL(aLabels[i], aFields[0]->getString()); + } + + // FIXME: validation error in OOXML export: Errors: 4 + skipValidation(); + + save("Calc Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("xl/charts/chart1.xml"); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:extLst/c:ext"_ostr, + "uri"_ostr, "{02D57815-91ED-43cb-92C2-25804820EDAC}"); assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:extLst/c:ext/" - "c15:datalabelsRange/c15:dlblRangeCache/c:ptCount", - "val", "4"); + "c15:datalabelsRange/c15:dlblRangeCache/c:ptCount"_ostr, + "val"_ostr, "4"); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:extLst/c:ext/" - "c15:datalabelsRange/c15:f", + "c15:datalabelsRange/c15:f"_ostr, aCellRange); for (size_t i = 0; i < nLabels; ++i) { assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:dLbls/c:dLbl[" + OString::number(i + 1) + "]/c:tx/c:rich/a:p/a:fld", - "type", "CELLRANGE"); + "type"_ostr, "CELLRANGE"); assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:dLbls/c:dLbl[" + OString::number(i + 1) + "]/c:extLst/c:ext/c15:showDataLabelsRange", - "val", "1"); + "val"_ostr, "1"); // Check if the actual label is stored under c15:datalabelsRange assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:scatterChart/c:ser[1]/c:extLst/" @@ -1582,31 +1586,17 @@ void Chart2ExportTest2::testTdf143942() + OString::number(i + 1) + "]/c:v", aLabels[i]); } - - Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); - CPPUNIT_ASSERT(xChartDoc.is()); - uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - - uno::Reference<beans::XPropertySet> xPropertySet; - uno::Sequence<uno::Reference<chart2::XDataPointCustomLabelField>> aFields; - for (size_t i = 0; i < nLabels; ++i) - { - xPropertySet.set(xDataSeries->getDataPointByIndex(i), uno::UNO_SET_THROW); - xPropertySet->getPropertyValue("CustomLabelFields") >>= aFields; - CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), aFields.getLength()); - CPPUNIT_ASSERT_EQUAL( - chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_CELLRANGE, - aFields[0]->getFieldType()); - CPPUNIT_ASSERT_EQUAL(aCellRange, aFields[0]->getCellRange()); - CPPUNIT_ASSERT_EQUAL(aLabels[i], aFields[0]->getString()); - } } -void Chart2ExportTest2::testDateCategoriesPPTX() +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDateCategoriesPPTX) { - load(u"/chart2/qa/extras/data/pptx/", "bnc889755.pptx"); - xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart", "Impress Office Open XML"); + loadFromFile(u"pptx/bnc889755.pptx"); + + // FIXME: validation error in OOXML export: Errors: 1 + skipValidation(); + + save("Impress Office Open XML"); + xmlDocUniquePtr pXmlDoc = parseExport("ppt/charts/chart1.xml"); CPPUNIT_ASSERT(pXmlDoc); constexpr size_t nCats = 16; @@ -1615,15 +1605,15 @@ void Chart2ExportTest2::testDateCategoriesPPTX() 41426, 41456, 41487, 41518, 41548, 41579, 41609, 41640, }; - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat"_ostr); assertXPathContent(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:numRef/" - "c:numCache/c:formatCode", + "c:numCache/c:formatCode"_ostr, "mmm\\-yy"); assertXPath( pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:numRef/c:numCache/c:ptCount", - "val", OUString::number(nCats)); + "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:numRef/c:numCache/c:ptCount"_ostr, + "val"_ostr, OUString::number(nCats)); for (size_t i = 0; i < nCats; ++i) { @@ -1631,7 +1621,7 @@ void Chart2ExportTest2::testDateCategoriesPPTX() pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:numRef/c:numCache/c:pt[" + OString::number(i + 1) + "]", - "idx", OUString::number(i)); + "idx"_ostr, OUString::number(i)); assertXPathContent( pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser[1]/c:cat/c:numRef/c:numCache/c:pt[" @@ -1640,7 +1630,55 @@ void Chart2ExportTest2::testDateCategoriesPPTX() } } -CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest2); +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDataTableImportExport) +{ + loadFromFile(u"xlsx/ChartDataTable.xlsx"); + { + uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT(xChartDoc.is()); + auto xDiagram = xChartDoc->getFirstDiagram(); + CPPUNIT_ASSERT(xDiagram.is()); + auto xDataTable = xDiagram->getDataTable(); + CPPUNIT_ASSERT(xDataTable.is()); + uno::Reference<beans::XPropertySet> xPropertySet(xDataTable, uno::UNO_QUERY); + CPPUNIT_ASSERT(xPropertySet.is()); + bool bHBorder; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("HBorder") >>= bHBorder); + CPPUNIT_ASSERT_EQUAL(true, bHBorder); + bool bVBorder; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("VBorder") >>= bVBorder); + CPPUNIT_ASSERT_EQUAL(true, bVBorder); + bool bOutline; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("Outline") >>= bOutline); + CPPUNIT_ASSERT_EQUAL(false, bOutline); + bool bKeys; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("Keys") >>= bKeys); + CPPUNIT_ASSERT_EQUAL(false, bKeys); + } + saveAndReload("calc8"); + { + uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0, mxComponent); + CPPUNIT_ASSERT(xChartDoc.is()); + auto xDiagram = xChartDoc->getFirstDiagram(); + CPPUNIT_ASSERT(xDiagram.is()); + auto xDataTable = xDiagram->getDataTable(); + CPPUNIT_ASSERT(xDataTable.is()); + uno::Reference<beans::XPropertySet> xPropertySet(xDataTable, uno::UNO_QUERY); + CPPUNIT_ASSERT(xPropertySet.is()); + bool bHBorder; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("HBorder") >>= bHBorder); + CPPUNIT_ASSERT_EQUAL(true, bHBorder); + bool bVBorder; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("VBorder") >>= bVBorder); + CPPUNIT_ASSERT_EQUAL(true, bVBorder); + bool bOutline; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("Outline") >>= bOutline); + CPPUNIT_ASSERT_EQUAL(false, bOutline); + bool bKeys; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue("Keys") >>= bKeys); + CPPUNIT_ASSERT_EQUAL(false, bKeys); + } +} CPPUNIT_PLUGIN_IMPLEMENT(); |