summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2020-06-10 14:42:16 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2020-06-11 10:13:56 +0200
commit399f1f8e2458e672c6f78ad8775b4c73aece0e73 (patch)
treee7a8f5bdb177888ab7fa2f6340118661da8582e0
parent8e745d2cf32d0711e569271af583aba8c40afdda (diff)
tdf#132431: sc: Add unittest
Change-Id: I4ecae9e29827a29680c9f082a9602fc181b0b56e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96024 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sc/qa/unit/uicalc/data/tdf132431.odsbin0 -> 12217 bytes
-rw-r--r--sc/qa/unit/uicalc/uicalc.cxx22
2 files changed, 22 insertions, 0 deletions
diff --git a/sc/qa/unit/uicalc/data/tdf132431.ods b/sc/qa/unit/uicalc/data/tdf132431.ods
new file mode 100644
index 000000000000..2022a9db4f47
--- /dev/null
+++ b/sc/qa/unit/uicalc/data/tdf132431.ods
Binary files differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index 694644b77df3..46e4b24bf669 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -149,6 +149,28 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf124815)
CPPUNIT_ASSERT_EQUAL(OUString("Rakennukset"), pDoc->GetString(ScAddress(2, 0, 0)));
}
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf132431)
+{
+ ScModelObj* pModelObj = createDoc("tdf132431.ods");
+ ScDocument* pDoc = pModelObj->GetDocument();
+ CPPUNIT_ASSERT(pDoc);
+
+ OUString aFormula;
+ pDoc->GetFormula(7, 219, 0, aFormula);
+ CPPUNIT_ASSERT_EQUAL(OUString("=SUMIFS($H$2:$H$198,B$2:B$198,G220)"), aFormula);
+ CPPUNIT_ASSERT_EQUAL(0.0, pDoc->GetValue(ScAddress(7, 219, 0)));
+
+ // Without the fix in place, it would crash here with
+ // uncaught exception of type std::exception (or derived).
+ // - vector::_M_fill_insert
+ pDoc->SetString(ScAddress(7, 219, 0), "=SUMIFS($H$2:$DB$198,B$2:B$198,G220)");
+
+ pDoc->GetFormula(7, 219, 0, aFormula);
+ CPPUNIT_ASSERT_EQUAL(OUString("=SUMIFS($H$2:$DB$198,B$2:B$198,G220)"), aFormula);
+ CPPUNIT_ASSERT_EQUAL(0.0, pDoc->GetValue(ScAddress(7, 219, 0)));
+ CPPUNIT_ASSERT_EQUAL(OUString("Err:502"), pDoc->GetString(ScAddress(7, 219, 0)));
+}
+
CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf83901)
{
mxComponent = loadFromDesktop("private:factory/scalc");