sc/qa/unit/bugfix-test.cxx | 145 ++++++++++++++++++++++++++++++++++++++ sc/qa/unit/data/ods/tdf129789.ods |binary 2 files changed, 145 insertions(+)
New commits: commit 8d7b3398fc1aadb5411060b222af330cde40c72c Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Thu Feb 6 17:58:51 2020 +0100 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Feb 7 18:13:40 2020 +0100 tdf#129789: Add unittest Extend it to cover all fill styles in shown/hidden comments Change-Id: I866d1b7f6248a5b5520348b249ed3cda4eec46dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88122 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/qa/unit/bugfix-test.cxx b/sc/qa/unit/bugfix-test.cxx index a23ba743d829..d0cf10a74b9b 100644 --- a/sc/qa/unit/bugfix-test.cxx +++ b/sc/qa/unit/bugfix-test.cxx @@ -7,11 +7,18 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <postit.hxx> #include <validat.hxx> #include <tabvwsh.hxx> #include <com/sun/star/frame/Desktop.hpp> +#include <com/sun/star/drawing/FillStyle.hpp> #include "helper/qahelper.hxx" #include <comphelper/processfactory.hxx> +#include <svx/svdocapt.hxx> +#include <svx/xfillit0.hxx> +#include <svx/xflclit.hxx> +#include <svx/xflgrit.hxx> +#include <svx/xflhtit.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -39,6 +46,7 @@ public: void testTdf104310(); void testTdf31231(); void testTdf128951(); + void testTdf129789(); CPPUNIT_TEST_SUITE(ScFiltersTest); CPPUNIT_TEST(testTdf64229); @@ -55,6 +63,7 @@ public: CPPUNIT_TEST(testTdf104310); CPPUNIT_TEST(testTdf31231); CPPUNIT_TEST(testTdf128951); + CPPUNIT_TEST(testTdf129789); CPPUNIT_TEST_SUITE_END(); private: uno::Reference<uno::XInterface> m_xCalcComponent; @@ -325,6 +334,142 @@ void ScFiltersTest::testTdf128951() CPPUNIT_ASSERT_NO_THROW(xDoc->getSheets()->insertByName("mustNotThrow", css::uno::Any(xSheet))); } +namespace { + +SdrCaptionObj* checkCaption( ScDocument& rDoc, const ScAddress& rAddress, bool bIsShown) +{ + ScPostIt *pNote = rDoc.GetNote(rAddress); + + CPPUNIT_ASSERT(pNote); + CPPUNIT_ASSERT_EQUAL(pNote->IsCaptionShown(), bIsShown ); + + if (!bIsShown) + pNote->ShowCaption(rAddress, true); + + SdrCaptionObj* pCaption = pNote->GetCaption(); + CPPUNIT_ASSERT(pCaption); + + return pCaption; +} +} + +void ScFiltersTest::testTdf129789() +{ + + ScDocShellRef xDocSh = loadDoc("tdf129789.", FORMAT_ODS, true); + CPPUNIT_ASSERT(xDocSh.is()); + ScDocument& rDoc = xDocSh->GetDocument(); + + { + // Fill: None + SdrCaptionObj *const pCaptionB2 = checkCaption(rDoc, ScAddress(1, 1, 0), true); + + const XFillStyleItem& rStyleItemB2 = dynamic_cast<const XFillStyleItem&>( + pCaptionB2->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, rStyleItemB2.GetValue()); + + SdrCaptionObj *const pCaptionB9 = checkCaption(rDoc, ScAddress(1, 8, 0), false); + + const XFillStyleItem& rStyleItemB9 = dynamic_cast<const XFillStyleItem&>( + pCaptionB9->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, rStyleItemB9.GetValue()); + } + + { + // Fill: Solid + SdrCaptionObj *const pCaptionE2 = checkCaption(rDoc, ScAddress(4, 1, 0), true); + + const XFillStyleItem& rStyleItemE2 = dynamic_cast<const XFillStyleItem&>( + pCaptionE2->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItemE2.GetValue()); + + const XFillColorItem& rColorItem = dynamic_cast<const XFillColorItem&>( + pCaptionE2->GetMergedItem(XATTR_FILLCOLOR)); + CPPUNIT_ASSERT_EQUAL(Color(0xffffc0), rColorItem.GetColorValue()); + + SdrCaptionObj *const pCaptionE9 = checkCaption(rDoc, ScAddress(4, 8, 0), false); + + const XFillStyleItem& rStyleItemE9 = dynamic_cast<const XFillStyleItem&>( + pCaptionE9->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, rStyleItemE9.GetValue()); + + const XFillColorItem& rColorItem2 = dynamic_cast<const XFillColorItem&>( + pCaptionE9->GetMergedItem(XATTR_FILLCOLOR)); + CPPUNIT_ASSERT_EQUAL(Color(0xffffc0), rColorItem2.GetColorValue()); + } + + { + // Fill: Gradient + SdrCaptionObj *const pCaptionH2 = checkCaption(rDoc, ScAddress(7, 1, 0), true); + + const XFillStyleItem& rStyleItemH2 = dynamic_cast<const XFillStyleItem&>( + pCaptionH2->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, rStyleItemH2.GetValue()); + const XFillGradientItem& rGradientItem = dynamic_cast<const XFillGradientItem&>( + pCaptionH2->GetMergedItem(XATTR_FILLGRADIENT)); + CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), rGradientItem.GetGradientValue().GetStartColor()); + CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), rGradientItem.GetGradientValue().GetEndColor()); + + SdrCaptionObj *const pCaptionH9 = checkCaption(rDoc, ScAddress(7, 8, 0), false); + + const XFillStyleItem& rStyleItemH9 = dynamic_cast<const XFillStyleItem&>( + pCaptionH9->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_GRADIENT, rStyleItemH9.GetValue()); + const XFillGradientItem& rGradientItem2 = dynamic_cast<const XFillGradientItem&>( + pCaptionH2->GetMergedItem(XATTR_FILLGRADIENT)); + CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), rGradientItem2.GetGradientValue().GetStartColor()); + CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), rGradientItem2.GetGradientValue().GetEndColor()); + } + + { + // Fill: Hatch + SdrCaptionObj *const pCaptionK2 = checkCaption(rDoc, ScAddress(10, 1, 0), true); + + const XFillStyleItem& rStyleItemK2 = dynamic_cast<const XFillStyleItem&>( + pCaptionK2->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_HATCH, rStyleItemK2.GetValue()); + const XFillHatchItem& rHatchItem = dynamic_cast<const XFillHatchItem&>( + pCaptionK2->GetMergedItem(XATTR_FILLHATCH)); + CPPUNIT_ASSERT_EQUAL(Color(0x000080), rHatchItem.GetHatchValue().GetColor()); + + SdrCaptionObj *const pCaptionK9 = checkCaption(rDoc, ScAddress(10, 8, 0), false); + + const XFillStyleItem& rStyleItemK9 = dynamic_cast<const XFillStyleItem&>( + pCaptionK9->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_HATCH, rStyleItemK9.GetValue()); + const XFillHatchItem& rHatchItem2 = dynamic_cast<const XFillHatchItem&>( + pCaptionK9->GetMergedItem(XATTR_FILLHATCH)); + CPPUNIT_ASSERT_EQUAL(Color(0x000080), rHatchItem2.GetHatchValue().GetColor()); + } + + { + // Fill: Bitmap + SdrCaptionObj *const pCaptionN2 = checkCaption(rDoc, ScAddress(13, 1, 0), true); + + const XFillStyleItem& rStyleItemN2 = dynamic_cast<const XFillStyleItem&>( + pCaptionN2->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_BITMAP, rStyleItemN2.GetValue()); + + SdrCaptionObj *const pCaptionN9 = checkCaption(rDoc, ScAddress(13, 8, 0), false); + + const XFillStyleItem& rStyleItemN9 = dynamic_cast<const XFillStyleItem&>( + pCaptionN9->GetMergedItem(XATTR_FILLSTYLE)); + + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_BITMAP, rStyleItemN9.GetValue()); + } + + xDocSh->DoClose(); +} + ScFiltersTest::ScFiltersTest() : ScBootstrapFixture( "sc/qa/unit/data" ) { diff --git a/sc/qa/unit/data/ods/tdf129789.ods b/sc/qa/unit/data/ods/tdf129789.ods new file mode 100644 index 000000000000..49b067b48503 Binary files /dev/null and b/sc/qa/unit/data/ods/tdf129789.ods differ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits