chart2/qa/extras/chart2export.cxx | 79 +++--- chart2/qa/extras/chart2export2.cxx | 465 ++++++++++++++++++------------------- chart2/qa/extras/chart2export3.cxx | 37 +- chart2/qa/extras/chart2import.cxx | 110 ++++---- chart2/qa/extras/uichart.cxx | 8 include/test/unoapi_test.hxx | 1 sfx2/qa/cppunit/doc.cxx | 1 test/source/unoapi_test.cxx | 6 8 files changed, 363 insertions(+), 344 deletions(-)
New commits: commit 37032c4eb90a68f3a9b51c954ea1307cc4cefd45 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Feb 9 10:51:18 2026 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Mon Feb 9 20:16:37 2026 +0100 chart2, sfx2: only load one document per test Add UnoApiTest::disposeAndLoadFromURL for tests where we need to close the current document and open a new one Change-Id: Ia9419d0743f4a1c22d8c4d8b91bc168cd43533d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198966 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index a99224754c49..1e8458106232 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -336,22 +336,22 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testBarChart) CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testCrosses) { // test crosses val="autoZero" with DOCX - { - loadFromFile(u"docx/Bar_horizontal_cone.docx"); - save(TestFilter::DOCX); - xmlDocUniquePtr pXmlDoc = parseExport(u"word/charts/chart1.xml"_ustr); + loadFromFile(u"docx/Bar_horizontal_cone.docx"); + save(TestFilter::DOCX); + xmlDocUniquePtr pXmlDoc = parseExport(u"word/charts/chart1.xml"_ustr); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crosses", "val", u"autoZero"); - } + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crosses", "val", u"autoZero"); +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testCrosses_tdf142351) +{ // tdf#142351: test crossesAt val="-50" with XLSX - { - loadFromFile(u"xlsx/tdf142351.xlsx"); - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); + loadFromFile(u"xlsx/tdf142351.xlsx"); + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crossesAt", "val", u"-50"); - } + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:crossesAt", "val", u"-50"); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testScatterChartTextXValues) @@ -1327,43 +1327,42 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testLabelStringODS) } -CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testInvertNegative) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testInvertNegative_BarChart) { // Bar chart - { - loadFromFile(u"xlsx/invertIfNeg_bar.xlsx"); - // make sure the import was successful - uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0 ); - CPPUNIT_ASSERT(xChartDoc.is()); + loadFromFile(u"xlsx/invertIfNeg_bar.xlsx"); + // make sure the import was successful + uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0 ); + CPPUNIT_ASSERT(xChartDoc.is()); - Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc( xChartDoc, 0 ); - CPPUNIT_ASSERT( xDataSeries.is() ); + Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc( xChartDoc, 0 ); + CPPUNIT_ASSERT( xDataSeries.is() ); - Reference< beans::XPropertySet > xPropSet( xDataSeries, UNO_QUERY_THROW ); + Reference< beans::XPropertySet > xPropSet( xDataSeries, UNO_QUERY_THROW ); - bool bInvertNeg; - CPPUNIT_ASSERT( - xPropSet->getPropertyValue(u"InvertNegative"_ustr) >>= bInvertNeg); - CPPUNIT_ASSERT_EQUAL(true, bInvertNeg); - } + bool bInvertNeg; + CPPUNIT_ASSERT( + xPropSet->getPropertyValue(u"InvertNegative"_ustr) >>= bInvertNeg); + CPPUNIT_ASSERT_EQUAL(true, bInvertNeg); +} +CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testInvertNegative_BubbleChart) +{ // Bubble chart - { - loadFromFile(u"xlsx/invertIfNeg_bubble.xlsx"); - // make sure the import was successful - uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0 ); - CPPUNIT_ASSERT(xChartDoc.is()); + loadFromFile(u"xlsx/invertIfNeg_bubble.xlsx"); + // make sure the import was successful + uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0 ); + CPPUNIT_ASSERT(xChartDoc.is()); - Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc( xChartDoc, 0 ); - CPPUNIT_ASSERT( xDataSeries.is() ); + Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc( xChartDoc, 0 ); + CPPUNIT_ASSERT( xDataSeries.is() ); - Reference< beans::XPropertySet > xPropSet( xDataSeries, UNO_QUERY_THROW ); + Reference< beans::XPropertySet > xPropSet( xDataSeries, UNO_QUERY_THROW ); - bool bInvertNeg; - CPPUNIT_ASSERT( - xPropSet->getPropertyValue(u"InvertNegative"_ustr) >>= bInvertNeg); - CPPUNIT_ASSERT_EQUAL(true, bInvertNeg); - } + bool bInvertNeg; + CPPUNIT_ASSERT( + xPropSet->getPropertyValue(u"InvertNegative"_ustr) >>= bInvertNeg); + CPPUNIT_ASSERT_EQUAL(true, bInvertNeg); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest, testStyleImportExport) diff --git a/chart2/qa/extras/chart2export2.cxx b/chart2/qa/extras/chart2export2.cxx index c15d9786f91a..25a51dd7381e 100644 --- a/chart2/qa/extras/chart2export2.cxx +++ b/chart2/qa/extras/chart2export2.cxx @@ -112,22 +112,22 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCombinedChartSecondaryAxisODS) CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenXLSX) { // Original files were created with MS Office - { - loadFromFile(u"xlsx/tdf127777.xlsx"); - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", - u"between"); - } - { - loadFromFile(u"xlsx/tdf132076.xlsx"); - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", - u"between"); - } + loadFromFile(u"xlsx/tdf127777.xlsx"); + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", + u"between"); +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenXLSX_tdf132076) +{ + loadFromFile(u"xlsx/tdf132076.xlsx"); + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:crossBetween", "val", + u"between"); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenWithDeletedAxis) @@ -152,34 +152,37 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCrossBetweenODS) u"between"); } -CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_boxWhisker) { - xmlDocUniquePtr pXmlDoc; - - // ==== loadFromFile(u"xlsx/boxWhisker.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", 3, 0, "layoutId", u"boxWhisker"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"BoxWhisker"); - // ==== +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_clusteredColumn) +{ loadFromFile(u"xlsx/clusteredColumn.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", "layoutId", u"clusteredColumn"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"Clustered Column"); - // ==== +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_funnel1) +{ loadFromFile(u"xlsx/funnel1.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", @@ -191,11 +194,13 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX) "val", u"c55a11"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"Funnel chart!"); +} - // ==== +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_paretoLine) +{ loadFromFile(u"xlsx/paretoLine.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); // A pareto chart from MSO really consists of two subcharts: a pareto line @@ -206,40 +211,52 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX) "layoutId", u"paretoLine"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"ParetoLine"); - // ==== +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_regionMap) +{ loadFromFile(u"xlsx/regionMap.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", "layoutId", u"regionMap"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"RegionMap"); - // ==== +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_sunburst) +{ loadFromFile(u"xlsx/sunburst.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", "layoutId", u"sunburst"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"Sunburst"); - // ==== +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_treemap) +{ loadFromFile(u"xlsx/treemap.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", "layoutId", u"treemap"); assertXPathContent(pXmlDoc, "/cx:chartSpace/cx:chart/cx:title/cx:tx/cx:txData/cx:v", u"Treemap"); - // ==== +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testChartexTitleXLSX_waterfall) +{ loadFromFile(u"xlsx/waterfall.xlsx"); save(TestFilter::XLSX); - pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chartEx1.xml"_ustr); CPPUNIT_ASSERT(pXmlDoc); assertXPath(pXmlDoc, "/cx:chartSpace/cx:chart/cx:plotArea/cx:plotAreaRegion/cx:series", @@ -459,107 +476,104 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomDataLabel) } /// Test for tdf#94235 -CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDataSeriesName) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDataSeriesName_ODF) { - // ODF - { - loadFromFile(u"ods/ser_labels.ods"); - saveAndReload(TestFilter::ODS); - uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - uno::Reference<beans::XPropertySet> xPropertySet; - chart2::DataPointLabel aDataPointLabel; - xPropertySet.set(xDataSeries->getDataPointByIndex(0), uno::UNO_SET_THROW); - xPropertySet->getPropertyValue(u"Label"_ustr) >>= aDataPointLabel; - CPPUNIT_ASSERT_EQUAL(sal_True, aDataPointLabel.ShowSeriesName); - } + loadFromFile(u"ods/ser_labels.ods"); + saveAndReload(TestFilter::ODS); + uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); + uno::Reference<beans::XPropertySet> xPropertySet; + chart2::DataPointLabel aDataPointLabel; + xPropertySet.set(xDataSeries->getDataPointByIndex(0), uno::UNO_SET_THROW); + xPropertySet->getPropertyValue(u"Label"_ustr) >>= aDataPointLabel; + CPPUNIT_ASSERT_EQUAL(sal_True, aDataPointLabel.ShowSeriesName); +} - // OOXML - { - loadFromFile(u"xlsx/ser_labels.xlsx"); - saveAndReload(TestFilter::XLSX); - uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - uno::Reference<beans::XPropertySet> xPropertySet; - chart2::DataPointLabel aDataPointLabel; - xPropertySet.set(xDataSeries->getDataPointByIndex(0), uno::UNO_SET_THROW); - xPropertySet->getPropertyValue(u"Label"_ustr) >>= aDataPointLabel; - CPPUNIT_ASSERT_EQUAL(sal_True, aDataPointLabel.ShowSeriesName); - } +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDataSeriesName_OOXML) +{ + loadFromFile(u"xlsx/ser_labels.xlsx"); + saveAndReload(TestFilter::XLSX); + uno::Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + uno::Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); + uno::Reference<beans::XPropertySet> xPropertySet; + chart2::DataPointLabel aDataPointLabel; + xPropertySet.set(xDataSeries->getDataPointByIndex(0), uno::UNO_SET_THROW); + xPropertySet->getPropertyValue(u"Label"_ustr) >>= aDataPointLabel; + CPPUNIT_ASSERT_EQUAL(sal_True, aDataPointLabel.ShowSeriesName); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomPositionofDataLabel) { loadFromFile(u"xlsx/testCustomPosDataLabels.xlsx"); - { - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + 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", u"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"); - 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"); - double nY = aYVal.toDouble(); - CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0742140311063737, nY, 1e-7); - } + // 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", + u"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"); + 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"); + double nY = aYVal.toDouble(); + CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0742140311063737, nY, 1e-7); +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomPositionofDataLabel_tdf108110) +{ loadFromFile(u"docx/testTdf108110.docx"); - { - save(TestFilter::DOCX); - xmlDocUniquePtr pXmlDoc = parseExport(u"word/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); + save(TestFilter::DOCX); + xmlDocUniquePtr pXmlDoc = parseExport(u"word/charts/chart1.xml"_ustr); + 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", u"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"); - 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"); - double nY = aYVal.toDouble(); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.172648731408574, nY, 1e-7); - } + // 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", + u"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"); + 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"); + double nY = aYVal.toDouble(); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.172648731408574, nY, 1e-7); +} +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomPositionofDataLabel_tdf136024) +{ loadFromFile(u"ods/tdf136024.ods"); - { - saveAndReload(TestFilter::ODS); - // tdf#136024: test custom position of pie chart data label after an ods export - Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); + saveAndReload(TestFilter::ODS); + // tdf#136024: test custom position of pie chart data label after an ods export + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); - Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries->getDataPointByIndex(0), - uno::UNO_SET_THROW); - - chart2::RelativePosition aCustomLabelPosition; - CPPUNIT_ASSERT(xPropertySet->getPropertyValue(u"CustomLabelPosition"_ustr) - >>= aCustomLabelPosition); - CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0961935120945059, aCustomLabelPosition.Primary, 1e-5); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.209578842093566, aCustomLabelPosition.Secondary, 1e-5); - } + Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); + uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries->getDataPointByIndex(0), + uno::UNO_SET_THROW); + + chart2::RelativePosition aCustomLabelPosition; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue(u"CustomLabelPosition"_ustr) + >>= aCustomLabelPosition); + CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.0961935120945059, aCustomLabelPosition.Primary, 1e-5); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.209578842093566, aCustomLabelPosition.Secondary, 1e-5); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf161571PiechartCustomPosDataLabels) @@ -650,33 +664,33 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomDataLabelMultipleSeries) CPPUNIT_ASSERT_EQUAL(u"Line"_ustr, aFields[2]->getString()); } -CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testLeaderLines) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testLeaderLines_tdf90749) { loadFromFile(u"xlsx/testTdf90749.xlsx"); - { - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - 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", u"1"); - assertXPath(pXmlDoc, - "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[2]/c:dLbls/c:extLst/c:ext/" - "c15:showLeaderLines", - "val", u"0"); - } + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + 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", u"1"); + assertXPath(pXmlDoc, + "/c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser[2]/c:dLbls/c:extLst/c:ext/" + "c15:showLeaderLines", + "val", u"0"); +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testLeaderLines) +{ loadFromFile(u"docx/MSO_Custom_Leader_Line.docx"); - { - save(TestFilter::DOCX); - xmlDocUniquePtr pXmlDoc = parseExport(u"word/charts/chart1.xml"_ustr); - 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", u"0"); - } + save(TestFilter::DOCX); + xmlDocUniquePtr pXmlDoc = parseExport(u"word/charts/chart1.xml"_ustr); + 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", u"0"); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf161607PieChartLeaderLinesColorWidth) @@ -1058,42 +1072,39 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testCustomLabelText) CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDeletedLegendEntries) { loadFromFile(u"xlsx/deleted_legend_entry.xlsx"); - { - saveAndReload(TestFilter::XLSX); - Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); - Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 1)); - CPPUNIT_ASSERT(xDataSeries.is()); - Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); - bool bShowLegendEntry = true; - CPPUNIT_ASSERT(xPropertySet->getPropertyValue(u"ShowLegendEntry"_ustr) - >>= bShowLegendEntry); - CPPUNIT_ASSERT(!bShowLegendEntry); - } + saveAndReload(TestFilter::XLSX); + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); + Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 1)); + CPPUNIT_ASSERT(xDataSeries.is()); + Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); + bool bShowLegendEntry = true; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue(u"ShowLegendEntry"_ustr) >>= bShowLegendEntry); + CPPUNIT_ASSERT(!bShowLegendEntry); +} +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testDeletedLegendEntries2) +{ loadFromFile(u"xlsx/deleted_legend_entry2.xlsx"); - { - saveAndReload(TestFilter::XLSX); - Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); - Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); - bool bShowLegendEntry = true; - CPPUNIT_ASSERT(xPropertySet->getPropertyValue(u"ShowLegendEntry"_ustr) - >>= bShowLegendEntry); - CPPUNIT_ASSERT(!bShowLegendEntry); + saveAndReload(TestFilter::XLSX); + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); + Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); + Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); + bool bShowLegendEntry = true; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue(u"ShowLegendEntry"_ustr) >>= bShowLegendEntry); + CPPUNIT_ASSERT(!bShowLegendEntry); - Reference<chart2::XChartDocument> xChartDoc2 = getChartDocFromSheet(1); - CPPUNIT_ASSERT(xChartDoc.is()); - Reference<chart2::XDataSeries> xDataSeries2(getDataSeriesFromDoc(xChartDoc2, 0)); - CPPUNIT_ASSERT(xDataSeries2.is()); - Reference<beans::XPropertySet> xPropertySet2(xDataSeries2, uno::UNO_QUERY_THROW); - Sequence<sal_Int32> deletedLegendEntriesSeq; - CPPUNIT_ASSERT(xPropertySet2->getPropertyValue(u"DeletedLegendEntries"_ustr) - >>= deletedLegendEntriesSeq); - CPPUNIT_ASSERT_EQUAL(sal_Int32(1), deletedLegendEntriesSeq[0]); - } + Reference<chart2::XChartDocument> xChartDoc2 = getChartDocFromSheet(1); + CPPUNIT_ASSERT(xChartDoc.is()); + Reference<chart2::XDataSeries> xDataSeries2(getDataSeriesFromDoc(xChartDoc2, 0)); + CPPUNIT_ASSERT(xDataSeries2.is()); + Reference<beans::XPropertySet> xPropertySet2(xDataSeries2, uno::UNO_QUERY_THROW); + Sequence<sal_Int32> deletedLegendEntriesSeq; + CPPUNIT_ASSERT(xPropertySet2->getPropertyValue(u"DeletedLegendEntries"_ustr) + >>= deletedLegendEntriesSeq); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), deletedLegendEntriesSeq[0]); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf60316) @@ -1194,63 +1205,59 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf127792) u"midCat"); } -CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf131979) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf131115) { loadFromFile(u"ods/tdf131115.ods"); - { - saveAndReload(TestFilter::ODS); - Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); - Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - Reference<beans::XPropertySet> xPropertySet; - xPropertySet.set(xDataSeries->getDataPointByIndex(2), uno::UNO_SET_THROW); - bool blinknumberformattosource = true; - CPPUNIT_ASSERT(xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) - >>= blinknumberformattosource); - CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", - !blinknumberformattosource); - } + saveAndReload(TestFilter::ODS); + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); + Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); + Reference<beans::XPropertySet> xPropertySet; + xPropertySet.set(xDataSeries->getDataPointByIndex(2), uno::UNO_SET_THROW); + bool blinknumberformattosource = true; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) + >>= blinknumberformattosource); + CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", + !blinknumberformattosource); +} +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf131979) +{ loadFromFile(u"ods/tdf131979.ods"); - { - saveAndReload(TestFilter::ODS); - Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); - Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); - CPPUNIT_ASSERT(xDataSeries.is()); - Reference<beans::XPropertySet> xPropertySet; - xPropertySet.set(xDataSeries->getDataPointByIndex(2), uno::UNO_SET_THROW); - bool blinknumberformattosource = true; - CPPUNIT_ASSERT(xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) - >>= blinknumberformattosource); - CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to true.", - blinknumberformattosource); - } + saveAndReload(TestFilter::ODS); + Reference<chart2::XChartDocument> xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); + Reference<chart2::XDataSeries> xDataSeries(getDataSeriesFromDoc(xChartDoc, 0)); + CPPUNIT_ASSERT(xDataSeries.is()); + Reference<beans::XPropertySet> xPropertySet; + xPropertySet.set(xDataSeries->getDataPointByIndex(2), uno::UNO_SET_THROW); + bool blinknumberformattosource = true; + CPPUNIT_ASSERT(xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) + >>= blinknumberformattosource); + CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to true.", + blinknumberformattosource); } -CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf132076) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf132076_ODS) { - { - loadFromFile(u"ods/tdf132076.ods"); - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "formatCode", - u"dd"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "sourceLinked", - u"0"); - } - { - loadFromFile(u"xlsx/tdf132076.xlsx"); - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "formatCode", - u"dd"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "sourceLinked", - u"0"); - } + loadFromFile(u"ods/tdf132076.ods"); + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "formatCode", u"dd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:catAx/c:numFmt", "sourceLinked", u"0"); +} + +CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf132076_XLSX) +{ + loadFromFile(u"xlsx/tdf132076.xlsx"); + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "formatCode", u"dd"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:dateAx/c:numFmt", "sourceLinked", + u"0"); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest2, testTdf125812) diff --git a/chart2/qa/extras/chart2export3.cxx b/chart2/qa/extras/chart2export3.cxx index 53be3f484c4d..b2dab0abf36c 100644 --- a/chart2/qa/extras/chart2export3.cxx +++ b/chart2/qa/extras/chart2export3.cxx @@ -231,29 +231,28 @@ CPPUNIT_TEST_FIXTURE(Chart2ExportTest3, testAxisNumberFormatXLSX) assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx[2]/c:numFmt", "sourceLinked", u"1"); } -CPPUNIT_TEST_FIXTURE(Chart2ExportTest3, testDataPointLabelNumberFormatXLSX) +CPPUNIT_TEST_FIXTURE(Chart2ExportTest3, testDataPointLabelNumberFormatXLSX_tdf123774) { loadFromFile(u"ods/tdf123774.ods"); - { - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "formatCode", u"[$-40E]0.00%"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", u"0"); - - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "formatCode", u"[$-40E]0.00%"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "sourceLinked", u"0"); - } + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "formatCode", u"[$-40E]0.00%"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:numFmt", "sourceLinked", u"0"); + + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "formatCode", u"[$-40E]0.00%"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:pieChart/c:ser/c:dLbls/c:dLbl[1]/c:numFmt", "sourceLinked", u"0"); +} +CPPUNIT_TEST_FIXTURE(Chart2ExportTest3, testDataPointLabelNumberFormatXLSX_tdf130986) +{ loadFromFile(u"xlsx/tdf130986.xlsx"); - { - save(TestFilter::XLSX); - xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); - CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:idx", "val", u"1"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:numFmt", "formatCode", u"0.00E+00"); - assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:numFmt", "sourceLinked", u"0"); - } + save(TestFilter::XLSX); + xmlDocUniquePtr pXmlDoc = parseExport(u"xl/charts/chart1.xml"_ustr); + CPPUNIT_ASSERT(pXmlDoc); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:idx", "val", u"1"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:numFmt", "formatCode", u"0.00E+00"); + assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:barChart/c:ser/c:dLbls/c:dLbl/c:numFmt", "sourceLinked", u"0"); } CPPUNIT_TEST_FIXTURE(Chart2ExportTest3, testDataLabelDefaultValuesXLSX) diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index a24a8b90dffe..645b959ae129 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -1177,77 +1177,75 @@ CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testNumberFormatsXLSX) CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testNumberFormatsDOCX) { loadFromFile(u"docx/tdf132174.docx"); - { - uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); - CPPUNIT_ASSERT(xChartDoc.is()); + uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); + CPPUNIT_ASSERT(xChartDoc.is()); - css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); - Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); - uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); - CPPUNIT_ASSERT(xPropertySet.is()); - - sal_Int32 nNumberFormat; - bool bLinkNumberFormatToSource = true; - const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, u"0%"_ustr); - xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; - CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); - xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; - // LinkNumberFormatToSource should be set to false even if the original OOXML contain a true value, - // because the inner data table of charts have no own number format! - CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); - } + css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); + Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); + uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xPropertySet.is()); + + sal_Int32 nNumberFormat; + bool bLinkNumberFormatToSource = true; + const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, u"0%"_ustr); + xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; + CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); + xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; + // LinkNumberFormatToSource should be set to false even if the original OOXML contain a true value, + // because the inner data table of charts have no own number format! + CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); +} +CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testNumberFormatsDOCX2) +{ loadFromFile(u"docx/tdf136650.docx"); - { - uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); - CPPUNIT_ASSERT(xChartDoc.is()); + uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromWriter(0), uno::UNO_QUERY); + CPPUNIT_ASSERT(xChartDoc.is()); - css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); - Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); - CPPUNIT_ASSERT(xDataSeries.is()); - Reference<beans::XPropertySet> xPropertySet(xDataSeries->getDataPointByIndex(1), uno::UNO_SET_THROW); - - sal_Int32 nNumberFormat; - bool bLinkNumberFormatToSource = true; - const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, u"0%"_ustr); - xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; - CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); - xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; - // LinkNumberFormatToSource should be set to false even if the original OOXML file contain a true value, - // because the inner data table of charts have no own number format! - CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); - } + css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); + Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); + CPPUNIT_ASSERT(xDataSeries.is()); + Reference<beans::XPropertySet> xPropertySet(xDataSeries->getDataPointByIndex(1), uno::UNO_SET_THROW); + + sal_Int32 nNumberFormat; + bool bLinkNumberFormatToSource = true; + const sal_Int32 nChartDataNumberFormat = getNumberFormat(xChartDoc, u"0%"_ustr); + xPropertySet->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nNumberFormat; + CPPUNIT_ASSERT_EQUAL(nChartDataNumberFormat, nNumberFormat); + xPropertySet->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkNumberFormatToSource; + // LinkNumberFormatToSource should be set to false even if the original OOXML file contain a true value, + // because the inner data table of charts have no own number format! + CPPUNIT_ASSERT_MESSAGE("\"LinkNumberFormatToSource\" should be set to false.", !bLinkNumberFormatToSource); } CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testShapePropsDefaultStrokeWidthXLSX) { // Bar chart, for which rendering code is implemented loadFromFile(u"xlsx/bartest-stroke.xlsx"); - { - uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); + uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); - css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); - Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); - uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); - CPPUNIT_ASSERT(xPropertySet.is()); - sal_Int32 nWidth = xPropertySet->getPropertyValue(u"BorderWidth"_ustr).get<sal_Int32>(); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Default bar stroke width should be 12700 emu (0.35mm)", sal_Int32(35), nWidth); - } + css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); + Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); + uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xPropertySet.is()); + sal_Int32 nWidth = xPropertySet->getPropertyValue(u"BorderWidth"_ustr).get<sal_Int32>(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Default bar stroke width should be 12700 emu (0.35mm)", sal_Int32(35), nWidth); +} +CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testShapePropsDefaultStrokeWidthXLSX2) +{ // Funnel chart, for which rendering code is not yet implemented loadFromFile(u"xlsx/color_funnel.xlsx"); - { - uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet(0); - CPPUNIT_ASSERT(xChartDoc.is()); + uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet(0); + CPPUNIT_ASSERT(xChartDoc.is()); - css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); - Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); - uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); - CPPUNIT_ASSERT(xPropertySet.is()); - sal_Int32 nWidth = xPropertySet->getPropertyValue(u"BorderWidth"_ustr).get<sal_Int32>(); - CPPUNIT_ASSERT_EQUAL_MESSAGE("Default bar stroke width should be 12700 emu (0.35mm)", sal_Int32(35), nWidth); - } + css::uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram(), UNO_SET_THROW); + Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0); + uno::Reference<beans::XPropertySet> xPropertySet(xDataSeries, uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT(xPropertySet.is()); + sal_Int32 nWidth = xPropertySet->getPropertyValue(u"BorderWidth"_ustr).get<sal_Int32>(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Default bar stroke width should be 12700 emu (0.35mm)", sal_Int32(35), nWidth); } CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testPercentageNumberFormatsDOCX) diff --git a/chart2/qa/extras/uichart.cxx b/chart2/qa/extras/uichart.cxx index e17d0e6daa20..537dffc50bcb 100644 --- a/chart2/qa/extras/uichart.cxx +++ b/chart2/qa/extras/uichart.cxx @@ -50,6 +50,7 @@ void Chart2UiChartTest::testCopyPasteToNewSheet( dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); // create a new document + dispose(); loadFromURL(u"private:factory/scalc"_ustr); dispatchCommand(mxComponent, u".uno:Paste"_ustr, {}); @@ -129,6 +130,7 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf99969) dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); // create a new document + dispose(); loadFromURL(u"private:factory/scalc"_ustr); dispatchCommand(mxComponent, u".uno:Paste"_ustr, {}); @@ -215,6 +217,7 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf151091) dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); // create a new writer document + dispose(); loadFromURL(u"private:factory/swriter"_ustr); dispatchCommand(mxComponent, u".uno:Paste"_ustr, {}); @@ -244,7 +247,10 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf136011) uno::Reference<chart::XChartDocument> xChartDoc(getChartCompFromSheet(0, 0), uno::UNO_QUERY_THROW); testCopyPasteToNewSheet(xChartDoc, u"Object 1"_ustr, 3, 9); +} +CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf136011_2) +{ loadFromFile(u"ods/tdf136011.ods"); uno::Reference<chart::XChartDocument> xChartDoc2(getChartCompFromSheet(0, 1), uno::UNO_QUERY_THROW); @@ -288,6 +294,7 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf98690) dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); // create a new document + dispose(); loadFromURL(u"private:factory/scalc"_ustr); dispatchCommand(mxComponent, u".uno:Paste"_ustr, {}); @@ -519,6 +526,7 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf153706) dispatchCommand(mxComponent, u".uno:Copy"_ustr, {}); // create a new document + dispose(); loadFromURL(u"private:factory/scalc"_ustr); // Paste; this must create a chart with own data source having a proper copy of the data diff --git a/include/test/unoapi_test.hxx b/include/test/unoapi_test.hxx index ab93c3043980..48b3a055c99d 100644 --- a/include/test/unoapi_test.hxx +++ b/include/test/unoapi_test.hxx @@ -139,6 +139,7 @@ public: OUString createFileURL(std::u16string_view aFileBase); OUString createFilePath(std::u16string_view aFileBase); void loadFromURL(const OUString& rURL, const char* pPassword = nullptr); + void dispose(); void loadWithParams(const OUString& rURL, const css::uno::Sequence<css::beans::PropertyValue>& rParams); OUString loadFromFile(std::u16string_view aFileBase, const char* pPassword = nullptr); diff --git a/sfx2/qa/cppunit/doc.cxx b/sfx2/qa/cppunit/doc.cxx index 138e10d3a2bf..14fb50e09e2c 100644 --- a/sfx2/qa/cppunit/doc.cxx +++ b/sfx2/qa/cppunit/doc.cxx @@ -79,6 +79,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTempFilePath) pBaseModel->storeAsURL(aTargetFile, aArgs); // Load it and export to PDF. + dispose(); loadFromURL(aTargetFile); pBaseModel = dynamic_cast<SfxBaseModel*>(mxComponent.get()); OUString aPdfTarget = aTargetDir + "/test.pdf"; diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index fb234680a6d0..e5f4758b9fe4 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -286,6 +286,12 @@ void UnoApiTest::loadFromURL(OUString const& rURL, const char* pPassword) } } +void UnoApiTest::dispose() +{ + mxComponent->dispose(); + mxComponent.clear(); +} + void UnoApiTest::loadWithParams(OUString const& rURL, const uno::Sequence<beans::PropertyValue>& rParams) {
