svgio/qa/cppunit/SvgImportTest.cxx            |   21 +++++++++++++++++++++
 svgio/qa/cppunit/data/tdf117920.svg           |    7 +++++++
 svgio/source/svgreader/svgdocumenthandler.cxx |    7 +------
 3 files changed, 29 insertions(+), 6 deletions(-)

New commits:
commit 06075cd2ffc490feb7560f92ffc894b1e6751f90
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Aug 17 09:24:18 2023 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri Aug 18 21:38:46 2023 +0200

    tdf#117920: Revert "related tdf#156579: just break for switch element"
    
    This reverts commit e222f60ac2a71032dbdf62d7c7e28978b5a0b19c.
    
    To make the switch element behave like a
    group as least, so the transform attribute is parsed
    Change-Id: Id8c21ac6da217d8f7bc350ff41022335bf1e0f1f
    
    Change-Id: If1e53f9baad8995f26f9b885cfef6265040736bc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155770
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index bbaf2ec5d96d..73b3150b3a8d 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -962,6 +962,27 @@ CPPUNIT_TEST_FIXTURE(Test, testNoneColor)
     assertXPath(pDocument, 
"/primitive2D/transform/mask/polypolygonstroke/line", "width", "3");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf117920)
+{
+    Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf117920.svg");
+    CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(aSequence.getLength()));
+
+    drawinglayer::Primitive2dXmlDump dumper;
+    xmlDocUniquePtr pDocument = 
dumper.dumpAndParse(Primitive2DContainer(aSequence));
+
+    CPPUNIT_ASSERT (pDocument);
+
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy11", "1");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy12", "0");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy13", "-18");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy21", "0");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy22", "1");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy23", "-6");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy31", "0");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy32", "0");
+    assertXPath(pDocument, "/primitive2D/transform/transform", "xy33", "1");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf97936)
 {
     // check that both rectangles are rendered in the viewBox
diff --git a/svgio/qa/cppunit/data/tdf117920.svg 
b/svgio/qa/cppunit/data/tdf117920.svg
new file mode 100644
index 000000000000..487e0f6cb925
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf117920.svg
@@ -0,0 +1,7 @@
+<svg width="100%" height="100%" viewBox="0 0 100 100"
+     xmlns="http://www.w3.org/2000/svg";
+     xmlns:xlink="http://www.w3.org/1999/xlink";>
+   <switch transform="translate(-18,-6)">
+   <rect width="13" height="13" x="18" y="6" />
+   </switch>
+</svg>
diff --git a/svgio/source/svgreader/svgdocumenthandler.cxx 
b/svgio/source/svgreader/svgdocumenthandler.cxx
index f86d2603de2a..bd7a9c5791c9 100644
--- a/svgio/source/svgreader/svgdocumenthandler.cxx
+++ b/svgio/source/svgreader/svgdocumenthandler.cxx
@@ -199,6 +199,7 @@ namespace
                     mpTarget->parseAttributes(xAttribs);
                     break;
                 }
+                case SVGToken::Switch: //TODO: Support switch element
                 case SVGToken::Defs:
                 case SVGToken::G:
                 {
@@ -442,12 +443,6 @@ namespace
                     break;
                 }
 
-                case SVGToken::Switch:
-                {
-                    //TODO: Support switch element
-                    break;
-                }
-
                 default:
                 {
                     mpTarget = new SvgNode(SVGToken::Unknown, maDocument, 
mpTarget);

Reply via email to