diff options
-rw-r--r-- | svgio/qa/cppunit/SvgImportTest.cxx | 16 | ||||
-rw-r--r-- | svgio/qa/cppunit/data/tdf79163.svg | 8 | ||||
-rw-r--r-- | test/source/primitive2dxmldump.cxx | 23 |
3 files changed, 47 insertions, 0 deletions
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index f918a1527946..50a7ef7231f2 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -44,6 +44,7 @@ class Test : public test::BootstrapFixture, public XmlTestTools void testFontsizePercentage(); void testTdf45771(); void testTdf85770(); + void testTdf79163(); Primitive2DSequence parseSvg(const char* aSource); @@ -58,6 +59,7 @@ public: CPPUNIT_TEST(testFontsizePercentage); CPPUNIT_TEST(testTdf45771); CPPUNIT_TEST(testTdf85770); + CPPUNIT_TEST(testTdf79163); CPPUNIT_TEST_SUITE_END(); }; @@ -221,6 +223,20 @@ void Test::testTdf85770() assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]", "text", "Start "); assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]", "text", "End"); } + +void Test::testTdf79163() +{ + Primitive2DSequence aSequenceTdf79163 = parseSvg("/svgio/qa/cppunit/data/tdf79163.svg"); + CPPUNIT_ASSERT_EQUAL(1, (int)aSequenceTdf79163.getLength()); + + Primitive2dXmlDump dumper; + xmlDocPtr pDocument = dumper.dumpAndParse(comphelper::sequenceToContainer<Primitive2DContainer>(aSequenceTdf79163)); + + CPPUNIT_ASSERT (pDocument); + + assertXPath(pDocument, "/primitive2D/transform/mask/unifiedtransparence", "transparence", "0"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); } diff --git a/svgio/qa/cppunit/data/tdf79163.svg b/svgio/qa/cppunit/data/tdf79163.svg new file mode 100644 index 000000000000..0153037236c2 --- /dev/null +++ b/svgio/qa/cppunit/data/tdf79163.svg @@ -0,0 +1,8 @@ +<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+
+ <rect x="50" y="50" height="110" width="110"
+ style="fill: #ccccff" opacity="0.5"
+ >
+ </rect>
+</svg>
diff --git a/test/source/primitive2dxmldump.cxx b/test/source/primitive2dxmldump.cxx index 48fa0d0d2b72..84cef39aa822 100644 --- a/test/source/primitive2dxmldump.cxx +++ b/test/source/primitive2dxmldump.cxx @@ -22,6 +22,8 @@ #include <drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx> #include <drawinglayer/primitive2d/polygonprimitive2d.hxx> #include <drawinglayer/primitive2d/textprimitive2d.hxx> +#include <drawinglayer/primitive2d/maskprimitive2d.hxx> +#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx> #include <drawinglayer/attribute/lineattribute.hxx> @@ -184,6 +186,27 @@ void Primitive2dXmlDump::decomposeAndWrite( } break; + case PRIMITIVE2D_ID_MASKPRIMITIVE2D: + { + const MaskPrimitive2D* pMaskPrimitive2D = dynamic_cast<const MaskPrimitive2D*>(pBasePrimitive); + rWriter.startElement("mask"); + + decomposeAndWrite(pMaskPrimitive2D->getChildren(), rWriter); + rWriter.endElement(); + } + break; + + case PRIMITIVE2D_ID_UNIFIEDTRANSPARENCEPRIMITIVE2D: + { + const UnifiedTransparencePrimitive2D* pUnifiedTransparencePrimitive2D = dynamic_cast<const UnifiedTransparencePrimitive2D*>(pBasePrimitive); + rWriter.startElement("unifiedtransparence"); + + rWriter.attribute("transparence", pUnifiedTransparencePrimitive2D->getTransparence()); + + rWriter.endElement(); + } + break; + default: { rWriter.element(OUStringToOString(sCurrentElementTag, RTL_TEXTENCODING_UTF8)); |