sc/qa/unit/data/ods/custom-numfmt-hybrid-cell.ods |binary sc/qa/unit/subsequent_filters-test.cxx | 33 ++++++++++++++++++++++ 2 files changed, 33 insertions(+)
New commits: commit e4f28aea21ce7e8f960cc2062f83715549be215e Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Sat Apr 22 10:10:00 2017 -0400 tdf#107310: add unit test for this. I decided to add this to the filters test since it's the ods import code that sets the cells in hybrid "zero as empty string" mode. Change-Id: Icb34733e8550b655fbd70be718af5006b257a3e3 Reviewed-on: https://gerrit.libreoffice.org/36818 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoff...@kohei.us> diff --git a/sc/qa/unit/data/ods/custom-numfmt-hybrid-cell.ods b/sc/qa/unit/data/ods/custom-numfmt-hybrid-cell.ods new file mode 100644 index 000000000000..1e3fac470137 Binary files /dev/null and b/sc/qa/unit/data/ods/custom-numfmt-hybrid-cell.ods differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index 177d84185d6a..93853a4c68ce 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -205,6 +205,7 @@ public: void testRichTextContentODS(); void testMiscRowHeights(); void testOptimalHeightReset(); + void testCustomNumFormatHybridCellODS(); void testPrintRangeODS(); void testOutlineODS(); @@ -323,6 +324,7 @@ public: CPPUNIT_TEST(testMiscRowHeights); CPPUNIT_TEST(testOptimalHeightReset); + CPPUNIT_TEST(testCustomNumFormatHybridCellODS); CPPUNIT_TEST(testPrintRangeODS); CPPUNIT_TEST(testOutlineODS); CPPUNIT_TEST(testColumnStyleXLSX); @@ -3146,6 +3148,37 @@ void ScFiltersTest::testOptimalHeightReset() xDocSh->DoClose(); } +void ScFiltersTest::testCustomNumFormatHybridCellODS() +{ + ScDocShellRef xDocSh = loadDoc("custom-numfmt-hybrid-cell.", FORMAT_ODS, false); + ScDocument& rDoc = xDocSh->GetDocument(); + rDoc.SetAutoCalc(true); + + // All of B14, B16 and B18 should be displaying empty strings by virture + // of the custom number format being set on those cells. + + for (SCROW nRow : {13, 15, 17}) + { + ScAddress aPos(1, nRow, 0); + OUString aStr = rDoc.GetString(aPos); + CPPUNIT_ASSERT(aStr.isEmpty()); + } + + // Now, set value of 1 to B15. This should trigger re-calc on B18 and B18 + // should now show a value of 1. + rDoc.SetValue(ScAddress(1,15,0), 1.0); + + OUString aStr = rDoc.GetString(ScAddress(1,17,0)); + CPPUNIT_ASSERT_EQUAL(OUString("1"), aStr); + + // Make sure the cell doesn't have an error value. + ScFormulaCell* pFC = rDoc.GetFormulaCell(ScAddress(1,17,0)); + CPPUNIT_ASSERT(pFC); + CPPUNIT_ASSERT(pFC->GetErrCode() == FormulaError::NONE); + + xDocSh->DoClose(); +} + void ScFiltersTest::testPrintRangeODS() { ScDocShellRef xDocSh = loadDoc("print-range.", FORMAT_ODS); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits