diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2020-02-04 16:42:04 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-02-05 16:11:04 +0100 |
commit | fe5033036937ab655df997577909527ffb85f5af (patch) | |
tree | 435679648675a0d474ade85cea9a3c4312a4ab55 /lotuswordpro/qa/cppunit | |
parent | 25649502e08a52087dea5e482d34a1d4150f0930 (diff) |
LWP: add unittest for char/para properties
Change-Id: I2ef37845a2b7de189667a6ce81e7d061b1b15eb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87987
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'lotuswordpro/qa/cppunit')
-rw-r--r-- | lotuswordpro/qa/cppunit/data/paragraphProperties.lwp | bin | 0 -> 23172 bytes | |||
-rw-r--r-- | lotuswordpro/qa/cppunit/import_test.cxx | 162 |
2 files changed, 162 insertions, 0 deletions
diff --git a/lotuswordpro/qa/cppunit/data/paragraphProperties.lwp b/lotuswordpro/qa/cppunit/data/paragraphProperties.lwp Binary files differnew file mode 100644 index 000000000000..dc4048cb9220 --- /dev/null +++ b/lotuswordpro/qa/cppunit/data/paragraphProperties.lwp diff --git a/lotuswordpro/qa/cppunit/import_test.cxx b/lotuswordpro/qa/cppunit/import_test.cxx index 5f3770b69e3e..26cd05bb22b5 100644 --- a/lotuswordpro/qa/cppunit/import_test.cxx +++ b/lotuswordpro/qa/cppunit/import_test.cxx @@ -10,11 +10,19 @@ #include <test/bootstrapfixture.hxx> #include <unotest/macros_test.hxx> +#include <com/sun/star/awt/FontWeight.hpp> +#include <com/sun/star/awt/FontSlant.hpp> +#include <com/sun/star/awt/FontUnderline.hpp> +#include <com/sun/star/awt/FontStrikeout.hpp> +#include <com/sun/star/table/BorderLine2.hpp> #include <com/sun/star/drawing/XDrawPagesSupplier.hpp> #include <com/sun/star/frame/Desktop.hpp> +#include <com/sun/star/style/ParagraphAdjust.hpp> +#include <com/sun/star/style/LineSpacing.hpp> #include <com/sun/star/text/XTextDocument.hpp> #include <com/sun/star/text/XTextTable.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> #include <comphelper/processfactory.hxx> @@ -68,6 +76,160 @@ CPPUNIT_TEST_FIXTURE(LotusWordProTest, testTdf129993) CPPUNIT_ASSERT_EQUAL(sal_True, xServiceInfo->supportsService("com.sun.star.text.TextTable")); } +CPPUNIT_TEST_FIXTURE(LotusWordProTest, paragraphProperties) +{ + OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "paragraphProperties.lwp"; + getComponent() = loadFromDesktop(aURL); + CPPUNIT_ASSERT(getComponent().is()); + + uno::Reference<text::XTextDocument> textDocument(getComponent(), uno::UNO_QUERY); + uno::Reference<container::XEnumerationAccess> xParaEnumAccess(textDocument->getText(), + uno::UNO_QUERY); + uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration(); + + //Ignore the first paragraphs + for (int i = 0; i < 4; ++i) + xParaEnum->nextElement(); + + // bold + uno::Reference<text::XTextRange> const xParagraph(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet(xParagraph, uno::UNO_QUERY); + float fFontWeight; + xPropertySet->getPropertyValue("CharWeight") >>= fFontWeight; + CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, fFontWeight); + + // italic + uno::Reference<text::XTextRange> const xParagraph2(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet2(xParagraph2, uno::UNO_QUERY); + awt::FontSlant fFontSlant; + xPropertySet2->getPropertyValue("CharPosture") >>= fFontSlant; + CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC, fFontSlant); + + // underline + uno::Reference<text::XTextRange> const xParagraph3(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet3(xParagraph3, uno::UNO_QUERY); + sal_Int16 nCharUnderline; + xPropertySet3->getPropertyValue("CharUnderline") >>= nCharUnderline; + CPPUNIT_ASSERT_EQUAL(awt::FontUnderline::SINGLE, nCharUnderline); + + // striked through + uno::Reference<text::XTextRange> const xParagraph4(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet4(xParagraph4, uno::UNO_QUERY); + sal_Int16 nFontStrikeout; + xPropertySet4->getPropertyValue("CharStrikeout") >>= nFontStrikeout; + CPPUNIT_ASSERT_EQUAL(awt::FontStrikeout::SINGLE, nFontStrikeout); + + //superscript + uno::Reference<text::XTextRange> const xParagraph5(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet5(xParagraph5, uno::UNO_QUERY); + sal_Int32 nCharEscapement; + xPropertySet5->getPropertyValue("CharEscapement") >>= nCharEscapement; + CPPUNIT_ASSERT_EQUAL(sal_Int32(33), nCharEscapement); + + sal_Int32 nCharEscapementHeight; + xPropertySet5->getPropertyValue("CharEscapementHeight") >>= nCharEscapementHeight; + CPPUNIT_ASSERT_EQUAL(sal_Int32(58), nCharEscapementHeight); + + //subscript + uno::Reference<text::XTextRange> const xParagraph6(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet6(xParagraph6, uno::UNO_QUERY); + sal_Int32 nCharEscapement2; + xPropertySet6->getPropertyValue("CharEscapement") >>= nCharEscapement2; + CPPUNIT_ASSERT_EQUAL(sal_Int32(-33), nCharEscapement2); + + sal_Int32 nCharEscapementHeight2; + xPropertySet6->getPropertyValue("CharEscapementHeight") >>= nCharEscapementHeight2; + CPPUNIT_ASSERT_EQUAL(sal_Int32(58), nCharEscapementHeight2); + + // red background and borders + uno::Reference<text::XTextRange> const xParagraph7(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet7(xParagraph7, uno::UNO_QUERY); + sal_Int32 nParaBackColor; + xPropertySet7->getPropertyValue("ParaBackColor") >>= nParaBackColor; + CPPUNIT_ASSERT_EQUAL(sal_Int32(16711680), nParaBackColor); + + table::BorderLine2 aTopBorder; + xPropertySet7->getPropertyValue("TopBorder") >>= aTopBorder; + CPPUNIT_ASSERT_EQUAL(sal_Int16(35), aTopBorder.OuterLineWidth); + + table::BorderLine2 aBottomBorder; + xPropertySet7->getPropertyValue("BottomBorder") >>= aBottomBorder; + CPPUNIT_ASSERT_EQUAL(sal_Int16(35), aBottomBorder.OuterLineWidth); + + table::BorderLine2 aLeftBorder; + xPropertySet7->getPropertyValue("LeftBorder") >>= aLeftBorder; + CPPUNIT_ASSERT_EQUAL(sal_Int16(35), aLeftBorder.OuterLineWidth); + + table::BorderLine2 aRightBorder; + xPropertySet7->getPropertyValue("RightBorder") >>= aRightBorder; + CPPUNIT_ASSERT_EQUAL(sal_Int16(35), aRightBorder.OuterLineWidth); + + // centered + uno::Reference<text::XTextRange> const xParagraph8(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet8(xParagraph8, uno::UNO_QUERY); + sal_Int16 nParaAdjust; + xPropertySet8->getPropertyValue("ParaAdjust") >>= nParaAdjust; + CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, + static_cast<style::ParagraphAdjust>(nParaAdjust)); + + // left margin + uno::Reference<text::XTextRange> const xParagraph9(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet9(xParagraph9, uno::UNO_QUERY); + sal_Int32 nParaLeftMargin; + xPropertySet9->getPropertyValue("ParaLeftMargin") >>= nParaLeftMargin; + CPPUNIT_ASSERT_EQUAL(sal_Int32(2000), nParaLeftMargin); + + // double line spacing + uno::Reference<text::XTextRange> const xParagraph10(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet10(xParagraph10, uno::UNO_QUERY); + style::LineSpacing nParaLineSpacing; + xPropertySet10->getPropertyValue("ParaLineSpacing") >>= nParaLineSpacing; + CPPUNIT_ASSERT_EQUAL(sal_Int16(200), nParaLineSpacing.Height); + + // time new roman 12 + uno::Reference<text::XTextRange> const xParagraph11(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet11(xParagraph11, uno::UNO_QUERY); + OUString sCharFontName; + xPropertySet11->getPropertyValue("CharFontName") >>= sCharFontName; + CPPUNIT_ASSERT_EQUAL(OUString("Times New Roman"), sCharFontName); + float fCharFontHeight; + xPropertySet11->getPropertyValue("CharHeight") >>= fCharFontHeight; + CPPUNIT_ASSERT_EQUAL(float(12.), fCharFontHeight); + + // time new roman 16 + uno::Reference<text::XTextRange> const xParagraph12(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet12(xParagraph12, uno::UNO_QUERY); + OUString sCharFontName2; + xPropertySet12->getPropertyValue("CharFontName") >>= sCharFontName2; + CPPUNIT_ASSERT_EQUAL(OUString("Times New Roman"), sCharFontName2); + float fCharFontHeight2; + xPropertySet12->getPropertyValue("CharHeight") >>= fCharFontHeight2; + CPPUNIT_ASSERT_EQUAL(float(16.), fCharFontHeight2); + + //ignore this paragraph + xParaEnum->nextElement(); + + //text color + uno::Reference<text::XTextRange> const xParagraph13(xParaEnum->nextElement(), + uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropertySet13(xParagraph13, uno::UNO_QUERY); + sal_Int32 nCharColor; + xPropertySet13->getPropertyValue("CharColor") >>= nCharColor; + CPPUNIT_ASSERT_EQUAL(sal_Int32(65280), nCharColor); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |