From d3f1fa3cf190b83d585ec3d1b1a8e5b0896c8ea1 Mon Sep 17 00:00:00 2001 From: Vasily Melenchuk Date: Tue, 25 Jul 2017 18:08:13 +0300 Subject: tdf#100492 Skip empty shapes in SVG export Some shapes do not contain polyline and meanwhile contain start/end arrows. This is causing unexpected line endings appear in export. TODO: Unittest is disabled, since XML parsing returns only root node without children. So XPATH assert fails. Change-Id: Ibc28f12b0f3838065978a674f0debe8e1b8103e9 Reviewed-on: https://gerrit.libreoffice.org/40422 Tested-by: Jenkins Reviewed-by: Thorsten Behrens --- sw/qa/extras/odfexport/data/tdf100492.odt | Bin 0 -> 19671 bytes sw/qa/extras/odfexport/odfexport.cxx | 34 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 sw/qa/extras/odfexport/data/tdf100492.odt (limited to 'sw/qa/extras') diff --git a/sw/qa/extras/odfexport/data/tdf100492.odt b/sw/qa/extras/odfexport/data/tdf100492.odt new file mode 100644 index 000000000000..e17bd67c5096 Binary files /dev/null and b/sw/qa/extras/odfexport/data/tdf100492.odt differ diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index bbebd6b24afc..cc096f406733 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include #include @@ -32,6 +34,8 @@ #include #include #include +#include +#include class Test : public SwModelTestBase { @@ -1654,6 +1658,36 @@ DECLARE_ODFEXPORT_TEST(testImageMimetype, "image-mimetype.odt") } } +DECLARE_ODFEXPORT_TEST(testTdf100492, "tdf100492.odt") +{ + uno::Reference xShape = getShape(1); + CPPUNIT_ASSERT(xShape.is()); + + // Save the first shape to a SVG + uno::Reference xGraphicExporter = drawing::GraphicExportFilter::create(comphelper::getProcessComponentContext()); + uno::Reference xSourceDoc(xShape, uno::UNO_QUERY); + xGraphicExporter->setSourceDocument(xSourceDoc); + + SvMemoryStream aStream; + uno::Reference xOutputStream(new utl::OStreamWrapper(aStream)); + uno::Sequence aDescriptor( comphelper::InitPropertySequence({ + { "OutputStream", uno::Any(xOutputStream) }, + { "FilterName", uno::Any(OUString("SVG")) } + })); + xGraphicExporter->filter(aDescriptor); + aStream.Seek(STREAM_SEEK_TO_BEGIN); + + // TODO: Disabled. Parsing of SVG gives just root node without any children. + // Reason of such behavior unclear. So XPATH assert fails. + + // Parse resulting SVG as XML file. + // xmlDocPtr pXmlDoc = parseXmlStream(&aStream); + + // Check amount of paths required to draw an arrow. + // Since there are still some emty paths in output test can fail later. There are just two + // really used and visible paths. + //assertXPath(pXmlDoc, "/svg/path", 4); +} #endif -- cgit