summaryrefslogtreecommitdiff
path: root/svgio/qa
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-04-16 09:51:27 +0200
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2014-04-16 09:52:27 +0200
commit8c571e5f82a6d6e36bd47c7d2ab202f2f9b7cf86 (patch)
tree74e17222e98d94bb1f39e8febe462e8b943005e2 /svgio/qa
parent3b7472b284131c09d91b69f26d5d26d54648f939 (diff)
svgio: introduce svg import tests
Change-Id: Id69f659a9e4b0332970e75b1d0a7d820c8b2c998
Diffstat (limited to 'svgio/qa')
-rw-r--r--svgio/qa/cppunit/SvgImportTest.cxx99
-rw-r--r--svgio/qa/cppunit/data/Rect.svg4
-rw-r--r--svgio/qa/cppunit/data/RectWithParentStyles.svg13
-rw-r--r--svgio/qa/cppunit/data/RectWithStyles.svg4
4 files changed, 120 insertions, 0 deletions
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx
new file mode 100644
index 000000000000..4b42afd2647c
--- /dev/null
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -0,0 +1,99 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+#include <test/bootstrapfixture.hxx>
+#include <comphelper/processfactory.hxx>
+#include <comphelper/seqstream.hxx>
+
+#include <com/sun/star/graphic/SvgTools.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/graphic/SvgTools.hpp>
+#include <com/sun/star/graphic/Primitive2DTools.hpp>
+#include <com/sun/star/graphic/XPrimitive2D.hpp>
+
+#include <boost/scoped_array.hpp>
+
+namespace
+{
+
+using namespace css::uno;
+using namespace css::io;
+using namespace css::graphic;
+
+class Test : public test::BootstrapFixture
+{
+ Reference<XComponentContext> mxContext;
+
+ void testStyles();
+
+ Primitive2DSequence parseSvg(const char* aSource);
+
+public:
+ virtual void setUp() SAL_OVERRIDE;
+ virtual void tearDown() SAL_OVERRIDE;
+
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(testStyles);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+Primitive2DSequence Test::parseSvg(const char* aSource)
+{
+ const Reference<XSvgParser> xSvgParser = SvgTools::create(mxContext);
+
+ OUString aUrl = getURLFromSrc(aSource);
+ OUString aPath = getPathFromSrc(aSource);
+
+ SvFileStream aFileStream(aUrl, STREAM_READ);
+ sal_Size nSize = aFileStream.remainingSize();
+ boost::scoped_array<sal_Int8> pBuffer(new sal_Int8[nSize + 1]);
+ aFileStream.Read(pBuffer.get(), nSize);
+ pBuffer[nSize] = 0;
+
+ Sequence<sal_Int8> aData(pBuffer.get(), nSize + 1);
+ Reference<XInputStream> aInputStream(new comphelper::SequenceInputStream(aData));
+
+ return xSvgParser->getDecomposition(aInputStream, aPath);
+}
+
+void Test::setUp()
+{
+ BootstrapFixture::setUp();
+
+ mxContext = Reference<XComponentContext>(comphelper::getProcessComponentContext());
+}
+
+void Test::tearDown()
+{
+ BootstrapFixture::tearDown();
+}
+
+void Test::testStyles()
+{
+ Primitive2DSequence maSequenceRect = parseSvg("/svgio/qa/cppunit/data/Rect.svg");
+ CPPUNIT_ASSERT_EQUAL(1, maSequenceRect.getLength());
+
+ Primitive2DSequence maSequenceRectWithStyle = parseSvg("/svgio/qa/cppunit/data/RectWithStyles.svg");
+ CPPUNIT_ASSERT_EQUAL(1, maSequenceRectWithStyle.getLength());
+
+ Primitive2DSequence maSequenceRectWithParentStyle = parseSvg("/svgio/qa/cppunit/data/RectWithParentStyles.svg");
+ CPPUNIT_ASSERT_EQUAL(1, maSequenceRectWithParentStyle.getLength());
+
+ // TODO: Test if the 3 sequences are equal..
+ //const Primitive2DReference xReference(maSequenceRect[0]);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/qa/cppunit/data/Rect.svg b/svgio/qa/cppunit/data/Rect.svg
new file mode 100644
index 000000000000..7567cdfb5bf0
--- /dev/null
+++ b/svgio/qa/cppunit/data/Rect.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <rect x="10" y="10" width="100" height="100" rx="10" ry="10" stroke="#ff0000" fill="#00cc00" stroke-width="3" />
+</svg>
diff --git a/svgio/qa/cppunit/data/RectWithParentStyles.svg b/svgio/qa/cppunit/data/RectWithParentStyles.svg
new file mode 100644
index 000000000000..a01ba3ff5bd7
--- /dev/null
+++ b/svgio/qa/cppunit/data/RectWithParentStyles.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <style type="text/css" >
+ <![CDATA[
+ svg
+ {
+ stroke: #ff0000;
+ fill: #00cc00;
+ }
+ ]]>
+ </style>
+ <rect x="10" y="10" width="100" height="100" rx="10" ry="10" style="stroke-width: 3;" />
+</svg>
diff --git a/svgio/qa/cppunit/data/RectWithStyles.svg b/svgio/qa/cppunit/data/RectWithStyles.svg
new file mode 100644
index 000000000000..b7068499befb
--- /dev/null
+++ b/svgio/qa/cppunit/data/RectWithStyles.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<svg width="120" height="120" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <rect x="10" y="10" width="100" height="100" rx="10" ry="10" style="stroke: #ff0000; fill: #00cc00; stroke-width: 3" />
+</svg>