[4suite-checkins] [XML1_0-maint] In 4Suite/test/Xml/Xslt/Exslt,
files test_dynamic.py
Mike Brown
mbrown at 4suite.org
Wed Oct 11 16:43:41 MDT 2006
Branch: XML1_0-maint
Modified Files:
test_dynamic.py
Log Message:
updated dyn:map() tests to match spec
ViewCVS diff:
http://cvs.4suite.org/viewcvs/4Suite/test/Xml/Xslt/Exslt/test_dynamic.py.diff?r1=1.1.2.2&r2=1.1.2.3
ViewCVS view:
http://cvs.4suite.org/viewcvs/4Suite/test/Xml/Xslt/Exslt/test_dynamic.py?rev=1.1.2.3&content-type=text/vnd.viewcvs-markup
Index: test_dynamic.py
===================================================================
RCS file: /var/local/cvsroot/4Suite/test/Xml/Xslt/Exslt/test_dynamic.py,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -U2 -r1.1.2.2 -r1.1.2.3
--- test_dynamic.py 9 Oct 2006 16:39:33 -0000 1.1.2.2
+++ test_dynamic.py 11 Oct 2006 22:43:41 -0000 1.1.2.3
@@ -102,14 +102,117 @@
"""
- EXPECTED = '<?xml version="1.0" encoding="UTF-8"?>\n<result><num>1</num><num>2</num><num>3</num><num>4</num></result>'
+ EXPECTED = '<?xml version="1.0" encoding="UTF-8"?>\n<result><num><exsl:string xmlns:exsl="http://exslt.org/common">1</exsl:string></num><num><exsl:string xmlns:exsl="http://exslt.org/common">2</exsl:string></num><num><exsl:string xmlns:exsl="http://exslt.org/common">3</exsl:string></num><num><exsl:string xmlns:exsl="http://exslt.org/common">4</exsl:string></num></result>'
source = test_harness.FileInfo(string=SOURCE2)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
- title='dyn:map()')
+ title='dyn:map() w/string expr')
return
TESTS.append(test_map2)
-
+
+
+def test_map3(tester):
+
+ TRANSFORM = """<?xml version='1.0' encoding='UTF-8'?>
+<xsl:transform
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ exclude-result-prefixes="dyn"
+ version="1.0"
+>
+
+ <xsl:template match="doc">
+ <result>
+ <xsl:for-each select="dyn:map(*, 'number(.)')">
+ <num>
+ <xsl:copy-of select="."/>
+ </num>
+ </xsl:for-each>
+ </result>
+ </xsl:template>
+
+</xsl:transform>
+"""
+
+ EXPECTED = '<?xml version="1.0" encoding="UTF-8"?>\n<result><num><exsl:number xmlns:exsl="http://exslt.org/common">1</exsl:number></num><num><exsl:number xmlns:exsl="http://exslt.org/common">2</exsl:number></num><num><exsl:number xmlns:exsl="http://exslt.org/common">3</exsl:number></num><num><exsl:number xmlns:exsl="http://exslt.org/common">4</exsl:number></num></result>'
+
+ source = test_harness.FileInfo(string=SOURCE2)
+ transform = test_harness.FileInfo(string=TRANSFORM)
+ test_harness.XsltTest(tester, source, [transform], EXPECTED,
+ title='dyn:map() w/numeric expr')
+ return
+
+TESTS.append(test_map3)
+
+def test_map4(tester):
+
+ TRANSFORM = """<?xml version='1.0' encoding='UTF-8'?>
+<xsl:transform
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ exclude-result-prefixes="dyn"
+ version="1.0"
+>
+
+ <xsl:template match="doc">
+ <result>
+ <xsl:for-each select="dyn:map(*, 'boolean(. > 2)')">
+ <num>
+ <xsl:copy-of select="."/>
+ </num>
+ </xsl:for-each>
+ </result>
+ </xsl:template>
+
+</xsl:transform>
+"""
+
+ EXPECTED = '<?xml version="1.0" encoding="UTF-8"?>\n<result><num><exsl:boolean xmlns:exsl="http://exslt.org/common"/></num><num><exsl:boolean xmlns:exsl="http://exslt.org/common"/></num><num><exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean></num><num><exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean></num></result>'
+
+ source = test_harness.FileInfo(string=SOURCE2)
+ transform = test_harness.FileInfo(string=TRANSFORM)
+ test_harness.XsltTest(tester, source, [transform], EXPECTED,
+ title='dyn:map() w/boolean expr')
+ return
+
+TESTS.append(test_map4)
+
+
+def test_map5(tester):
+
+ INVALID_EXPRS = ['', '%', 'not()']
+
+ TRANSFORM = """<?xml version='1.0' encoding='UTF-8'?>
+<xsl:transform
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ exclude-result-prefixes="dyn"
+ version="1.0"
+>
+
+ <xsl:template match="doc">
+ <result>
+ <xsl:for-each select="dyn:map(*, '%s')">
+ <num>
+ <xsl:copy-of select="."/>
+ </num>
+ </xsl:for-each>
+ </result>
+ </xsl:template>
+
+</xsl:transform>
+"""
+
+ EXPECTED = '<?xml version="1.0" encoding="UTF-8"?>\n<result/>'
+
+ for invalid_expr in INVALID_EXPRS:
+ source = test_harness.FileInfo(string=SOURCE2)
+ transform = test_harness.FileInfo(string=TRANSFORM % invalid_expr)
+ test_harness.XsltTest(tester, source, [transform], EXPECTED,
+ title="dyn:map() w/invalid expr %r" % invalid_expr)
+ return
+
+TESTS.append(test_map5)
More information about the 4suite-checkins
mailing list