sc/qa/unit/ucalc.cxx | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)
New commits: commit e8b2849f2d336e903992ff7a3483364085594d12 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri May 21 11:30:27 2021 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri May 21 15:33:56 2021 +0200 tdf#142186: sc_ucalc: Add unittest Change-Id: I376cb9d6853eb89ca35875d66275b5e534eec013 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115904 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 1a73df7f32cf..e98c58a02306 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -167,6 +167,7 @@ public: void testAutofilter(); void testAutoFilterTimeValue(); void testTdf76441(); + void testTdf142186(); void testAdvancedFilter(); void testTdf98642(); void testMergedCells(); @@ -290,6 +291,7 @@ public: CPPUNIT_TEST(testAutofilter); CPPUNIT_TEST(testAutoFilterTimeValue); CPPUNIT_TEST(testTdf76441); + CPPUNIT_TEST(testTdf142186); CPPUNIT_TEST(testAdvancedFilter); CPPUNIT_TEST(testTdf98642); CPPUNIT_TEST(testMergedCells); @@ -3593,6 +3595,47 @@ void Test::testTdf76441() m_pDoc->DeleteTab(0); } +void Test::testTdf142186() +{ + m_pDoc->InsertTab(0, "Test"); + + // The result will be different depending on whether the format is set before + // or after inserting the string + + OUString aCode = "0\".\"0"; + sal_Int32 nCheckPos; + SvNumFormatType nType; + sal_uInt32 nFormat; + SvNumberFormatter* pFormatter = m_pDoc->GetFormatTable(); + pFormatter->PutEntry( aCode, nCheckPos, nType, nFormat ); + + ScPatternAttr aNewAttrs(m_pDoc->GetPool()); + SfxItemSet& rSet = aNewAttrs.GetItemSet(); + rSet.Put(SfxUInt32Item(ATTR_VALUE_FORMAT, nFormat)); + { + // First insert the string, then the format + m_pDoc->SetString(ScAddress(0,0,0), "123.45"); + + m_pDoc->ApplyPattern(0, 0, 0, aNewAttrs); + + CPPUNIT_ASSERT_EQUAL(OUString("12.3"), m_pDoc->GetString(ScAddress(0,0,0))); + } + + { + // First set the format, then insert the string + m_pDoc->ApplyPattern(0, 1, 0, aNewAttrs); + + m_pDoc->SetString(ScAddress(0,1,0), "123.45"); + + // Without the fix in place, this test would have failed with + // - Expected: 12.3 + // - Actual : 1234.5 + CPPUNIT_ASSERT_EQUAL(OUString("12.3"), m_pDoc->GetString(ScAddress(0,1,0))); + } + + m_pDoc->DeleteTab(0); +} + void Test::testAdvancedFilter() { m_pDoc->InsertTab(0, "Test"); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits