sw/qa/api/SwXNumberingRules.cxx | 51 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-)
New commits: commit 94aa3c3123fe0ff004097c5b05c2fb498d5a45e6 Author: Deepanshu Sharma <129deepanshusha...@gmail.com> AuthorDate: Wed Jan 8 20:49:45 2025 +0530 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu May 8 13:58:59 2025 +0200 tdf#135335 write test for numbering rules font name Change-Id: I24ac1140ab40c85e7ab2532a8e376563181de450 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179960 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sw/qa/api/SwXNumberingRules.cxx b/sw/qa/api/SwXNumberingRules.cxx index 983341953efb..0cef4f4312bf 100644 --- a/sw/qa/api/SwXNumberingRules.cxx +++ b/sw/qa/api/SwXNumberingRules.cxx @@ -16,7 +16,7 @@ #include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> - +#include <com/sun/star/container/XIndexReplace.hpp> #include <com/sun/star/text/XTextDocument.hpp> #include <com/sun/star/text/XText.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -26,6 +26,7 @@ #include <com/sun/star/text/ControlCharacter.hpp> #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> +#include <com/sun/star/style/NumberingType.hpp> using namespace css; using namespace css::uno; @@ -110,6 +111,53 @@ public: return Reference<XInterface>(xNumRules, UNO_QUERY_THROW); } + //tdf#135335 + void testBulletFontName() + { + loadFromURL(u"private:factory/swriter"_ustr); + Reference<text::XTextDocument> xTextDoc(mxComponent, UNO_QUERY_THROW); + Reference<text::XText> xText = xTextDoc->getText(); + Reference<text::XTextCursor> xCursor = xText->createTextCursor(); + + xText->insertString(xCursor, u"Test List Item"_ustr, false); + xText->insertControlCharacter(xCursor, text::ControlCharacter::PARAGRAPH_BREAK, false); + + Reference<beans::XPropertySet> xParaProps(xCursor, UNO_QUERY_THROW); + Reference<lang::XMultiServiceFactory> xFactory(mxComponent, UNO_QUERY_THROW); + + Reference<container::XIndexReplace> xNumRules( + xFactory->createInstance(u"com.sun.star.text.NumberingRules"_ustr), UNO_QUERY_THROW); + + beans::PropertyValue props[4] + = { { u"NumberingType"_ustr, 0, Any(style::NumberingType::CHAR_SPECIAL), + beans::PropertyState_DIRECT_VALUE }, + { u"BulletChar"_ustr, 0, Any(OUString(OUStringChar(u'\u2022'))), + beans::PropertyState_DIRECT_VALUE }, + { u"Prefix"_ustr, 0, Any(OUString()), beans::PropertyState_DIRECT_VALUE }, + { u"BulletFontName"_ustr, 0, Any(u"OpenSymbol"_ustr), + beans::PropertyState_DIRECT_VALUE } }; + Sequence<beans::PropertyValue> levelProps(props, 4); + xNumRules->replaceByIndex(0, Any(levelProps)); + + xParaProps->setPropertyValue(u"NumberingRules"_ustr, Any(xNumRules)); + + Reference<container::XIndexReplace> xAppliedRules; + xParaProps->getPropertyValue(u"NumberingRules"_ustr) >>= xAppliedRules; + Sequence<beans::PropertyValue> appliedLevelProps; + xAppliedRules->getByIndex(0) >>= appliedLevelProps; + OUString bulletFontName; + for (const auto& prop : appliedLevelProps) + { + if (prop.Name == "BulletFontName") + { + prop.Value >>= bulletFontName; + break; + } + } + CPPUNIT_ASSERT_MESSAGE("Bullet font name must not be empty", !bulletFontName.isEmpty()); + CPPUNIT_ASSERT_EQUAL_MESSAGE("Bullet font should be OpenSymbol", u"OpenSymbol"_ustr, + bulletFontName); + } CPPUNIT_TEST_SUITE(SwXNumberingRules); CPPUNIT_TEST(testGetElementType); @@ -122,6 +170,7 @@ public: CPPUNIT_TEST(testPropertyChangeListener); CPPUNIT_TEST(testVetoableChangeListener); CPPUNIT_TEST(testNumberingRulesProperties); + CPPUNIT_TEST(testBulletFontName); CPPUNIT_TEST_SUITE_END(); };