tdf#142424: 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/+/155758
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx b/svgio/qa/cppunit/SvgImportTest.cxx
index 31e5bdb..2297367 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -991,6 +991,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 0000000..487e0f6
--- /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 0b66a4b..9c8ab88 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);