[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