sc/qa/unit/uicalc/data/tdf144244.ods |binary
 sc/qa/unit/uicalc/uicalc.cxx         |   28 ++++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

New commits:
commit b8084b0dee7d28f4fc8fa92eae6171880ac3a9c8
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Fri Nov 26 11:30:50 2021 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Wed Dec 1 16:21:35 2021 +0100

    tdf#144244: sc_uicalc: Add unittest
    
    Change-Id: I4445152d8bcba0b571873a39c98936a4fcd207f6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125872
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/qa/unit/uicalc/data/tdf144244.ods 
b/sc/qa/unit/uicalc/data/tdf144244.ods
new file mode 100644
index 000000000000..0d4487955ee8
Binary files /dev/null and b/sc/qa/unit/uicalc/data/tdf144244.ods differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index 9c7ac09a9285..0090b752641f 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -345,6 +345,34 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf145085)
     CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 1, 0)));
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf144244)
+{
+    ScModelObj* pModelObj = createDoc("tdf144244.ods");
+    ScDocument* pDoc = pModelObj->GetDocument();
+    CPPUNIT_ASSERT(pDoc);
+
+    uno::Reference<drawing::XDrawPage> 
xPage(pModelObj->getDrawPages()->getByIndex(0),
+                                             uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xPage->getCount());
+
+    // Select column A and B
+    goToCell("A:B");
+
+    dispatchCommand(mxComponent, ".uno:DeleteColumns", {});
+
+    CPPUNIT_ASSERT_EQUAL(OUString("x"), pDoc->GetString(ScAddress(0, 0, 0)));
+
+    // Without the fix in place, this test would have crashed
+    pModelObj = saveAndReload(mxComponent, "calc8");
+    pDoc = pModelObj->GetDocument();
+    CPPUNIT_ASSERT(pDoc);
+
+    CPPUNIT_ASSERT_EQUAL(OUString("x"), pDoc->GetString(ScAddress(0, 0, 0)));
+
+    xPage.set(pModelObj->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xPage->getCount());
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf100582)
 {
     ScModelObj* pModelObj = createDoc("tdf100582.xls");

Reply via email to