diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2014-04-16 09:51:27 +0200 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2014-04-16 09:52:27 +0200 |
commit | 8c571e5f82a6d6e36bd47c7d2ab202f2f9b7cf86 (patch) | |
tree | 74e17222e98d94bb1f39e8febe462e8b943005e2 /svgio/qa | |
parent | 3b7472b284131c09d91b69f26d5d26d54648f939 (diff) |
svgio: introduce svg import tests
Change-Id: Id69f659a9e4b0332970e75b1d0a7d820c8b2c998
Diffstat (limited to 'svgio/qa')
-rw-r--r-- | svgio/qa/cppunit/SvgImportTest.cxx | 99 | ||||
-rw-r--r-- | svgio/qa/cppunit/data/Rect.svg | 4 | ||||
-rw-r--r-- | svgio/qa/cppunit/data/RectWithParentStyles.svg | 13 | ||||
-rw-r--r-- | svgio/qa/cppunit/data/RectWithStyles.svg | 4 |
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> |