sc/qa/unit/data/ods/tdf64401.ods |binary sc/qa/unit/subsequent_filters-test.cxx | 56 +++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+)
New commits: commit 0efaa25ddfa84aa3fee88a357ff15f5ec50b234a Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Fri Feb 26 12:24:31 2021 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Feb 26 20:20:56 2021 +0100 tdf#64401: sc_subsequent_filters: Add unittest Change-Id: I624d4f94899634fa7b65768b7d5bbf82d786cc57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111623 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sc/qa/unit/data/ods/tdf64401.ods b/sc/qa/unit/data/ods/tdf64401.ods new file mode 100644 index 000000000000..76bca568bbff Binary files /dev/null and b/sc/qa/unit/data/ods/tdf64401.ods differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index b5f9d0f12fd4..8c0b8df909b8 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -162,6 +162,7 @@ public: void testCondFormatThemeColor2XLSX(); // negative bar color and axis color void testCondFormatThemeColor3XLSX(); // theme index 2 and 3 are switched void testComplexIconSetsXLSX(); + void testTdf64401(); void testCondFormatParentXLSX(); void testColorScaleNumWithRefXLSX(); void testCondFormatXLSB(); @@ -371,6 +372,7 @@ public: CPPUNIT_TEST(testCondFormatThemeColor2XLSX); CPPUNIT_TEST(testCondFormatThemeColor3XLSX); CPPUNIT_TEST(testComplexIconSetsXLSX); + CPPUNIT_TEST(testTdf64401); CPPUNIT_TEST(testCondFormatParentXLSX); CPPUNIT_TEST(testColorScaleNumWithRefXLSX); CPPUNIT_TEST(testCondFormatXLSB); @@ -2796,6 +2798,60 @@ void ScFiltersTest::testComplexIconSetsXLSX() xDocSh->DoClose(); } +void ScFiltersTest::testTdf64401() +{ + ScDocShellRef xDocSh = ScBootstrapFixture::loadDoc(u"tdf64401.", FORMAT_ODS); + + CPPUNIT_ASSERT_MESSAGE("Failed to load tdf64401.ods", xDocSh.is()); + + ScDocument& rDoc = xDocSh->GetDocument(); + CPPUNIT_ASSERT_EQUAL(size_t(1), rDoc.GetCondFormList(0)->size()); + + ScConditionalFormat* pFormat = rDoc.GetCondFormat(0, 0, 0); + CPPUNIT_ASSERT(pFormat); + CPPUNIT_ASSERT_EQUAL(size_t(1), pFormat->size()); + const ScFormatEntry* pEntry = pFormat->GetEntry(0); + CPPUNIT_ASSERT(pEntry); + CPPUNIT_ASSERT_EQUAL(ScFormatEntry::Type::Iconset, pEntry->GetType()); + const ScIconSetFormat* pIconSet = static_cast<const ScIconSetFormat*>(pEntry); + + for(size_t i = 0; i < 10; ++i) + { + sal_Int32 nIndex = 0; + if ( i >= 7 ) // B5 = 8 + nIndex = 2; + else if ( i >= 3 ) // B4 = 4 + nIndex = 1; + + std::unique_ptr<ScIconSetInfo> pInfo(pIconSet->GetIconSetInfo(ScAddress(0, i, 0))); + CPPUNIT_ASSERT(pInfo); + CPPUNIT_ASSERT_EQUAL(nIndex, pInfo->nIconIndex); + CPPUNIT_ASSERT_EQUAL(IconSet_3Arrows, pInfo->eIconSetType); + + } + + // Update values in B4 and B5 + rDoc.SetValue(ScAddress(1,3,0), 2.0); + rDoc.SetValue(ScAddress(1,4,0), 9.0); + + for(size_t i = 0; i < 10; ++i) + { + sal_Int32 nIndex = 0; + if ( i >= 8 ) // B5 = 9 + nIndex = 2; + else if ( i >= 1 ) // B4 = 2 + nIndex = 1; + + std::unique_ptr<ScIconSetInfo> pInfo(pIconSet->GetIconSetInfo(ScAddress(0, i, 0))); + CPPUNIT_ASSERT(pInfo); + CPPUNIT_ASSERT_EQUAL(nIndex, pInfo->nIconIndex); + CPPUNIT_ASSERT_EQUAL(IconSet_3Arrows, pInfo->eIconSetType); + + } + + xDocSh->DoClose(); +} + void ScFiltersTest::testCondFormatParentXLSX() { ScDocShellRef xDocSh = ScBootstrapFixture::loadDoc(u"cond_parent.", FORMAT_XLSX); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits