diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2019-09-19 11:45:20 +0200 |
---|---|---|
committer | Xisco Faulí <xiscofauli@libreoffice.org> | 2019-09-19 13:51:57 +0200 |
commit | ab1479956568b0d9a6022133cf651f846293aa46 (patch) | |
tree | fa4ab602b7d395e732d60df2ecd13eab69b827d7 /svgio/qa | |
parent | ab825c665c1ee509769bdaf0ae95fc111a357fc6 (diff) |
tdf#94765: SVGIO: Look for gradient/pattern ids once the file...
... is completely parsed
it might happen the element's id the url points to hasn't been parsed yet
Change-Id: Ia92c9188de5d23f2f992846aa91f3f936aeefacb
Reviewed-on: https://gerrit.libreoffice.org/79118
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
Diffstat (limited to 'svgio/qa')
-rw-r--r-- | svgio/qa/cppunit/SvgImportTest.cxx | 23 | ||||
-rw-r--r-- | svgio/qa/cppunit/data/tdf94765.svg | 14 |
2 files changed, 35 insertions, 2 deletions
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx index 4fe57b9adc3d..ea510cdbe1a5 100644 --- a/svgio/qa/cppunit/SvgImportTest.cxx +++ b/svgio/qa/cppunit/SvgImportTest.cxx @@ -64,6 +64,7 @@ class Test : public test::BootstrapFixture, public XmlTestTools void testTdf99994(); void testTdf99115(); void testTdf101237(); + void testTdf94765(); void testBehaviourWhenWidthAndHeightIsOrIsNotSet(); Primitive2DSequence parseSvg(const OUString& aSource); @@ -95,6 +96,7 @@ public: CPPUNIT_TEST(testTdf99994); CPPUNIT_TEST(testTdf99115); CPPUNIT_TEST(testTdf101237); + CPPUNIT_TEST(testTdf94765); CPPUNIT_TEST(testBehaviourWhenWidthAndHeightIsOrIsNotSet); CPPUNIT_TEST_SUITE_END(); }; @@ -390,8 +392,8 @@ void Test::testTdf97542_2() CPPUNIT_ASSERT (pDocument); - assertXPath(pDocument, "/primitive2D/transform/objectinfo/svgradialgradient[1]", "x", "1"); - assertXPath(pDocument, "/primitive2D/transform/objectinfo/svgradialgradient[1]", "y", "1"); + assertXPath(pDocument, "/primitive2D/transform/objectinfo/svgradialgradient[1]", "focusx", "1"); + assertXPath(pDocument, "/primitive2D/transform/objectinfo/svgradialgradient[1]", "focusy", "1"); assertXPath(pDocument, "/primitive2D/transform/objectinfo/svgradialgradient[1]", "radius", "3"); } @@ -676,6 +678,23 @@ void Test::testTdf101237() assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", "width", "5"); } +void Test::testTdf94765() +{ + Primitive2DSequence aSequenceTdf94765 = parseSvg("/svgio/qa/cppunit/data/tdf94765.svg"); + CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(aSequenceTdf94765.getLength())); + + drawinglayer::tools::Primitive2dXmlDump dumper; + xmlDocPtr pDocument = dumper.dumpAndParse(comphelper::sequenceToContainer<Primitive2DContainer>(aSequenceTdf94765)); + + CPPUNIT_ASSERT (pDocument); + + //Check that both rectangles use the gradient as fill + assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[1]", "endx", "2"); + assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[1]", "endy", "1"); + assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]", "endx", "0"); + assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]", "endy", "0"); +} + void Test::testBehaviourWhenWidthAndHeightIsOrIsNotSet() { // This test checks the behaviour when width and height attributes diff --git a/svgio/qa/cppunit/data/tdf94765.svg b/svgio/qa/cppunit/data/tdf94765.svg new file mode 100644 index 000000000000..009bfc8ed1e4 --- /dev/null +++ b/svgio/qa/cppunit/data/tdf94765.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="841.9px" height="595.3px" viewBox="0 0 841.9 595.3" style="enable-background:new 0 0 841.9 595.3;" xml:space="preserve"
+ >
+<style type="text/css">
+ .st1{fill:url(#SVGID_1_);stroke:#000000;stroke-miterlimit:10;}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="432.1587" y1="340.3492" x2="770.254" y2="340.3492">
+ <stop offset="0" style="stop-color:#DBDBDB"/>
+ <stop offset="1" style="stop-color:#737373"/>
+</linearGradient>
+<rect x="70.3" y="48.3" fill="url(#SVGID_1_)" width="338.1" height="252.4"/>
+<rect x="432.2" y="214.2" class="st1" width="338.1" height="252.4"/>
+</svg>
|