summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--filter/qa/unit/data/TransparentText.odgbin0 -> 9354 bytes
-rw-r--r--filter/qa/unit/svg.cxx33
2 files changed, 33 insertions, 0 deletions
diff --git a/filter/qa/unit/data/TransparentText.odg b/filter/qa/unit/data/TransparentText.odg
new file mode 100644
index 000000000000..d3027d17d657
--- /dev/null
+++ b/filter/qa/unit/data/TransparentText.odg
Binary files differ
diff --git a/filter/qa/unit/svg.cxx b/filter/qa/unit/svg.cxx
index ee582d52e982..f856cf01d257 100644
--- a/filter/qa/unit/svg.cxx
+++ b/filter/qa/unit/svg.cxx
@@ -93,6 +93,39 @@ CPPUNIT_TEST_FIXTURE(SvgFilterTest, testSemiTransparentLine)
CPPUNIT_ASSERT_EQUAL(30, nPercent);
}
+CPPUNIT_TEST_FIXTURE(SvgFilterTest, testSemiTransparentText)
+{
+ // Two shapes, one with transparent text and the other one with
+ // opaque text. We expect both to be exported to the SVG with the
+ // correct transparency factor applied for the first shape.
+
+ // Load draw document with transparent text in one box
+ load("TransparentText.odg");
+
+ // Export to SVG.
+ uno::Reference<frame::XStorable> xStorable(getComponent(), uno::UNO_QUERY_THROW);
+
+ SvMemoryStream aStream;
+ uno::Reference<io::XOutputStream> xOut = new utl::OOutputStreamWrapper(aStream);
+ utl::MediaDescriptor aMediaDescriptor;
+ aMediaDescriptor["FilterName"] <<= OUString("draw_svg_Export");
+ aMediaDescriptor["OutputStream"] <<= xOut;
+ xStorable->storeToURL("private:stream", aMediaDescriptor.getAsConstPropertyValueList());
+ aStream.Seek(STREAM_SEEK_TO_BEGIN);
+
+ xmlDocPtr pXmlDoc = parseXmlStream(&aStream);
+ (void)pXmlDoc;
+
+ // We expect 2 groups of class "com.sun.star.drawing.TextShape" that
+ // have some svg:text node inside.
+
+ // TODO: fix the bug
+
+ // assertXPath(pXmlDoc, "//svg:g[@class='com.sun.star.drawing.TextShape']//svg:text", 2);
+
+ // TODO: assert we the text has correctly transparent text (20%)
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */