tdf#123206 Add test: import custom-label-field

Add test for deprecated custom-label-field attribute of the data-point
element.

Change-Id: I9a7619898fa72900323e5b41728d2146c14203e3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86103
Tested-by: Jenkins
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index be010f3..3c505c8 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -149,7 +149,7 @@
    void testTdf123504();
    void testTdf122765();
    void testTdf121991();

    void testTdf123206CustomLabelField();
    CPPUNIT_TEST_SUITE(Chart2ImportTest);
    CPPUNIT_TEST(Fdo60083);
    CPPUNIT_TEST(testSteppedLines);
@@ -247,7 +247,7 @@
    CPPUNIT_TEST(testTdf123504);
    CPPUNIT_TEST(testTdf122765);
    CPPUNIT_TEST(testTdf121991);

    CPPUNIT_TEST(testTdf123206CustomLabelField);
    CPPUNIT_TEST_SUITE_END();

private:
@@ -2296,6 +2296,24 @@
    CPPUNIT_ASSERT(!bShowLegendEntry);
}

void Chart2ImportTest::testTdf123206CustomLabelField()
{
    // File contains the deprecated "custom-label-field" attribute of the
    // "data-point" element. It should be interpreted and stored as a data point
    // property.
    uno::Reference< chart2::XChartDocument > xChartDoc(getChartDocFromImpress("/chart2/qa/extras/data/odp/", "tdf123206.odp"), uno::UNO_QUERY_THROW);
    CPPUNIT_ASSERT_MESSAGE("failed to load chart", xChartDoc.is());
    CPPUNIT_ASSERT(xChartDoc.is());
    Reference<chart2::XDataSeries> xDataSeries = getDataSeriesFromDoc(xChartDoc, 0);
    CPPUNIT_ASSERT(xDataSeries.is());
    Reference<beans::XPropertySet> xDp = xDataSeries->getDataPointByIndex(1);
    Sequence<Reference<chart2::XDataPointCustomLabelField>> aLabelFields;
    CPPUNIT_ASSERT(xDp->getPropertyValue("CustomLabelFields") >>= aLabelFields);
    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), aLabelFields.getLength());
    CPPUNIT_ASSERT_EQUAL(OUString("Kiskacsa"), aLabelFields[0]->getString());

}

CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest);

CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/odp/tdf123206.odp b/chart2/qa/extras/data/odp/tdf123206.odp
new file mode 100644
index 0000000..1975756
--- /dev/null
+++ b/chart2/qa/extras/data/odp/tdf123206.odp
Binary files differ
diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.cxx b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
index 9767efd..f488244 100644
--- a/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+++ b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
@@ -702,6 +702,8 @@
        }
        else if( nPrefix == XML_NAMESPACE_LO_EXT)
        {
            // Deprecated. New documents use the chart:data-label element
            // instead in order to store custom label text.
            if( IsXMLToken( aLocalName, XML_CUSTOM_LABEL_FIELD) && !mbHasLabelParagraph)
            {
                sCustomLabelField = xAttrList->getValueByIndex( i );