chart2/qa/extras/data/ods/tdf158223.ods |binary
 chart2/qa/extras/uichart.cxx            |   48 ++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

New commits:
commit f47ad18cbac928d3ee2511fe4fb25ed61240feb0
Author:     Xisco Fauli <[email protected]>
AuthorDate: Wed Dec 6 21:04:24 2023 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Thu Dec 7 18:56:02 2023 +0100

    tdf#158223: chart2_uichart: Add unittest
    
    Change-Id: I11e20682155c524fcc119701111f5bc91f6beed8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160404
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/chart2/qa/extras/data/ods/tdf158223.ods 
b/chart2/qa/extras/data/ods/tdf158223.ods
new file mode 100644
index 000000000000..33a71697444f
Binary files /dev/null and b/chart2/qa/extras/data/ods/tdf158223.ods differ
diff --git a/chart2/qa/extras/uichart.cxx b/chart2/qa/extras/uichart.cxx
index 229c7f21f0f7..314f51415d24 100644
--- a/chart2/qa/extras/uichart.cxx
+++ b/chart2/qa/extras/uichart.cxx
@@ -388,6 +388,54 @@ CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, 
testCopyPasteChartWithDotInSheetName)
     }
 }
 
+CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf158223)
+{
+    loadFromURL(u"ods/tdf158223.ods");
+
+    uno::Reference<sheet::XSpreadsheetDocument> xDoc(mxComponent, 
UNO_QUERY_THROW);
+    uno::Reference<container::XIndexAccess> xIA(xDoc->getSheets(), 
UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xIA->getCount());
+
+    for (sal_Int32 sheetIndex = 0; sheetIndex < 2; ++sheetIndex)
+    {
+        OUString sExpectedValuesX("$Tabelle" + OUString::number(sheetIndex + 
1) + ".$A$2:$A$11");
+        OUString sExpectedValuesY("$Tabelle" + OUString::number(sheetIndex + 
1) + ".$B$2:$B$11");
+        uno::Reference<chart2::XChartDocument> xChartDoc
+            = getChartDocFromSheet(sheetIndex, mxComponent);
+        Reference<chart2::data::XDataSequence> xValuesX
+            = getDataSequenceFromDocByRole(xChartDoc, u"values-x");
+        CPPUNIT_ASSERT_EQUAL(sExpectedValuesX, 
xValuesX->getSourceRangeRepresentation());
+        Reference<chart2::data::XDataSequence> xValuesY
+            = getDataSequenceFromDocByRole(xChartDoc, u"values-y");
+        CPPUNIT_ASSERT_EQUAL(sExpectedValuesY, 
xValuesY->getSourceRangeRepresentation());
+    }
+
+    // Remove last sheet
+    uno::Sequence<beans::PropertyValue> aArgs(
+        comphelper::InitPropertySequence({ { "Index", uno::Any(sal_uInt16(3)) 
} }));
+    dispatchCommand(mxComponent, ".uno:Remove", aArgs);
+
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xIA->getCount());
+
+    for (sal_Int32 sheetIndex = 0; sheetIndex < 2; ++sheetIndex)
+    {
+        OUString sExpectedValuesX("$Tabelle" + OUString::number(sheetIndex + 
1) + ".$A$2:$A$11");
+        OUString sExpectedValuesY("$Tabelle" + OUString::number(sheetIndex + 
1) + ".$B$2:$B$11");
+        uno::Reference<chart2::XChartDocument> xChartDoc
+            = getChartDocFromSheet(sheetIndex, mxComponent);
+        Reference<chart2::data::XDataSequence> xValuesX
+            = getDataSequenceFromDocByRole(xChartDoc, u"values-x");
+
+        // Without the fix in place, this test would have failed with
+        // - Expected: $Tabelle2.$A$2:$A$11
+        // - Actual  : $Tabelle2.$A$2:$Tabelle1.$A$11
+        CPPUNIT_ASSERT_EQUAL(sExpectedValuesX, 
xValuesX->getSourceRangeRepresentation());
+        Reference<chart2::data::XDataSequence> xValuesY
+            = getDataSequenceFromDocByRole(xChartDoc, u"values-y");
+        CPPUNIT_ASSERT_EQUAL(sExpectedValuesY, 
xValuesY->getSourceRangeRepresentation());
+    }
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to