summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/tests
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/dvisvgm/tests')
-rw-r--r--dviware/dvisvgm/tests/UtilityTest.cpp3
-rw-r--r--dviware/dvisvgm/tests/normalize.xsl220
2 files changed, 113 insertions, 110 deletions
diff --git a/dviware/dvisvgm/tests/UtilityTest.cpp b/dviware/dvisvgm/tests/UtilityTest.cpp
index f5fda4a35b..c118aee8f9 100644
--- a/dviware/dvisvgm/tests/UtilityTest.cpp
+++ b/dviware/dvisvgm/tests/UtilityTest.cpp
@@ -80,6 +80,9 @@ TEST(UtilityTest, split) {
ASSERT_EQ(parts.size(), 1u);
EXPECT_EQ(parts[0], "");
+ parts = split("", ",", true);
+ ASSERT_EQ(parts.size(), 0u);
+
parts = split("abcde", "");
ASSERT_EQ(parts.size(), 1u);
EXPECT_EQ(parts[0], "abcde");
diff --git a/dviware/dvisvgm/tests/normalize.xsl b/dviware/dvisvgm/tests/normalize.xsl
index 89df7ea746..b521173e6a 100644
--- a/dviware/dvisvgm/tests/normalize.xsl
+++ b/dviware/dvisvgm/tests/normalize.xsl
@@ -21,115 +21,115 @@
** of the GNU general public license version 3 or later. **
***********************************************************************-->
<xsl:stylesheet version="1.0"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:exsl="http://exslt.org/common"
- xmlns:str="http://exslt.org/strings"
- xmlns:mg="my-namespace"
- extension-element-prefixes="exsl str"
- exclude-result-prefixes="svg xlink exsl str mg">
-
- <xsl:key name="path-by-id" match="/svg:defs/svg:path" use="@id"/>
-
-
- <xsl:variable name="styles-rtf">
- <xsl:for-each select="str:tokenize(/*/svg:style[@type='text/css'], '&#10;')">
- <xsl:sort select="substring-after(., ' ')"/>
- <mg:style new-id="f{position()}" id="{substring-before(substring-after(., '.'), ' ')}">
- <xsl:value-of select="substring-after(., ' ')"/>
- </mg:style>
- </xsl:for-each>
- </xsl:variable>
-
- <xsl:variable name="styles" select="exsl:node-set($styles-rtf)/mg:style"/>
-
- <xsl:variable name="num-paths" select="count(/*/svg:defs/svg:path)"/>
-
- <xsl:variable name="defs-rtf">
- <xsl:for-each select="/*/svg:defs/svg:path">
- <xsl:sort select="@d"/>
- <mg:path id="{@id}" new-id="g{position()}"/>
- </xsl:for-each>
- <xsl:for-each select="/*/svg:defs/svg:use">
- <xsl:sort select="concat(key('path-by-id', substring(@xlink:href, 2))/@d, @transform)"/>
- <mg:use id="{@id}" new-id="g{position()+$num-paths}"/>
- </xsl:for-each>
- </xsl:variable>
-
- <xsl:variable name="defs" select="exsl:node-set($defs-rtf)"/>
-
-
- <xsl:template match="*|@*">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()"/>
- </xsl:copy>
- </xsl:template>
-
-
- <xsl:template match="svg:defs[svg:path]">
- <xsl:copy>
- <xsl:apply-templates select="svg:path">
- <xsl:sort select="@d"/>
- </xsl:apply-templates>
- <xsl:apply-templates select="svg:use">
- <xsl:sort select="$defs/mg:use[@id=current()/@id]/@new-id"/>
- </xsl:apply-templates>
- </xsl:copy>
- </xsl:template>
-
-
- <xsl:template match="svg:defs[svg:font]">
- <xsl:copy>
- <xsl:apply-templates>
- <xsl:sort select="@id"/>
- </xsl:apply-templates>
- </xsl:copy>
- </xsl:template>
-
-
- <xsl:template match="svg:defs/svg:path">
- <path id="{$defs/mg:path[@id=current()/@id]/@new-id}" d="{@d}"/>
- </xsl:template>
-
-
- <xsl:template match="svg:defs/text()"/>
-
-
- <xsl:template match="svg:use">
- <xsl:variable name="href" select="substring(@xlink:href, 2)"/>
- <xsl:copy>
- <xsl:apply-templates select="@*"/>
- <xsl:if test="ancestor::svg:defs">
- <xsl:attribute name="id">
- <xsl:value-of select="$defs/mg:use[@id=current()/@id]/@new-id"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:attribute name="xlink:href">
- <xsl:value-of select="concat('#', $defs/*[@id=$href]/@new-id)"/>
- </xsl:attribute>
- </xsl:copy>
- </xsl:template>
-
-
- <xsl:template match="svg:style[@type='text/css']">
- <style type="text/css">
- <xsl:for-each select="$styles">
- <xsl:value-of select="concat('text.f', position(), ' ', ., '&#10;')"/>
- </xsl:for-each>
- </style>
- </xsl:template>
-
-
- <xsl:template match="svg:text">
- <xsl:copy>
- <xsl:copy-of select="@*"/>
- <xsl:attribute name="class">
- <xsl:value-of select="$styles[@id=current()/@class]/@new-id"/>
- </xsl:attribute>
- <xsl:apply-templates/>
- </xsl:copy>
- </xsl:template>
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:str="http://exslt.org/strings"
+ xmlns:mg="my-namespace"
+ extension-element-prefixes="exsl str"
+ exclude-result-prefixes="svg xlink exsl str mg">
+
+ <xsl:key name="path-by-id" match="/svg:defs/svg:path" use="@id"/>
+
+
+ <xsl:variable name="styles-rtf">
+ <xsl:for-each select="str:tokenize(/*/svg:style[@type='text/css'], '&#10;')">
+ <xsl:sort select="substring-after(., ' ')"/>
+ <mg:style new-id="f{position()}" id="{substring-before(substring-after(., '.'), ' ')}">
+ <xsl:value-of select="substring-after(., ' ')"/>
+ </mg:style>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="styles" select="exsl:node-set($styles-rtf)/mg:style"/>
+
+ <xsl:variable name="num-paths" select="count(/*/svg:defs/svg:path)"/>
+
+ <xsl:variable name="defs-rtf">
+ <xsl:for-each select="/*/svg:defs/svg:path">
+ <xsl:sort select="@d"/>
+ <mg:path id="{@id}" new-id="g{position()}"/>
+ </xsl:for-each>
+ <xsl:for-each select="/*/svg:defs/svg:use">
+ <xsl:sort select="concat(key('path-by-id', substring(@xlink:href, 2))/@d, @transform)"/>
+ <mg:use id="{@id}" new-id="g{position()+$num-paths}"/>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="defs" select="exsl:node-set($defs-rtf)"/>
+
+
+ <xsl:template match="*|@*">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+
+ <xsl:template match="svg:defs[svg:path]">
+ <xsl:copy>
+ <xsl:apply-templates select="svg:path">
+ <xsl:sort select="@d"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="svg:use">
+ <xsl:sort select="$defs/mg:use[@id=current()/@id]/@new-id"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+ </xsl:template>
+
+
+ <xsl:template match="svg:defs[svg:font]">
+ <xsl:copy>
+ <xsl:apply-templates>
+ <xsl:sort select="@id"/>
+ </xsl:apply-templates>
+ </xsl:copy>
+ </xsl:template>
+
+
+ <xsl:template match="svg:defs/svg:path">
+ <path id="{$defs/mg:path[@id=current()/@id]/@new-id}" d="{@d}"/>
+ </xsl:template>
+
+
+ <xsl:template match="svg:defs/text()"/>
+
+
+ <xsl:template match="svg:use">
+ <xsl:variable name="href" select="substring(@xlink:href, 2)"/>
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+ <xsl:if test="ancestor::svg:defs">
+ <xsl:attribute name="id">
+ <xsl:value-of select="$defs/mg:use[@id=current()/@id]/@new-id"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="concat('#', $defs/*[@id=$href]/@new-id)"/>
+ </xsl:attribute>
+ </xsl:copy>
+ </xsl:template>
+
+
+ <xsl:template match="svg:style[@type='text/css']">
+ <style type="text/css">
+ <xsl:for-each select="$styles">
+ <xsl:value-of select="concat('text.f', position(), ' ', ., '&#10;')"/>
+ </xsl:for-each>
+ </style>
+ </xsl:template>
+
+
+ <xsl:template match="svg:text">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:attribute name="class">
+ <xsl:value-of select="$styles[@id=current()/@class]/@new-id"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
</xsl:stylesheet>