sc/qa/unit/uicalc/data/tdf158802.xlsx |binary
 sc/qa/unit/uicalc/uicalc.cxx          |   20 ++++++++++++++++++++
 2 files changed, 20 insertions(+)

New commits:
commit a08cc309529c7bded0e4898ef638ca7bdc8c140f
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Mar 4 11:51:40 2024 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Mon Mar 4 19:57:04 2024 +0100

    tdf#158802: sc_uicalc: Add unittest
    
    Change-Id: Ic9460d36ef1df18a05126bc06a5214c1d87317db
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164331
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/qa/unit/uicalc/data/tdf158802.xlsx 
b/sc/qa/unit/uicalc/data/tdf158802.xlsx
new file mode 100644
index 000000000000..82f9c9fe14a3
Binary files /dev/null and b/sc/qa/unit/uicalc/data/tdf158802.xlsx differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index af9fb5511d5e..1bf9dfc12883 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -1700,6 +1700,26 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf86166)
     CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(1), pDoc->GetTableCount());
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf158802)
+{
+    createScDoc("tdf158802.xlsx");
+    ScDocument* pDoc = getScDoc();
+
+    CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), pDoc->GetTableCount());
+
+    uno::Sequence<beans::PropertyValue> aArgs(
+        comphelper::InitPropertySequence({ { "Index", uno::Any(sal_uInt16(0)) 
} }));
+
+    dispatchCommand(mxComponent, ".uno:Remove", aArgs);
+
+    CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(1), pDoc->GetTableCount());
+
+    // Without the fix in place, this test would have crashed here
+    dispatchCommand(mxComponent, ".uno:Undo", aArgs);
+
+    CPPUNIT_ASSERT_EQUAL(static_cast<SCTAB>(2), pDoc->GetTableCount());
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf149502_HangOnDeletingSheet1)
 {
     createScDoc("tdf149502_HangOnDeletingSheet1.ods");

Reply via email to