Update of /project/s-xml-rpc/cvsroot/s-xml-rpc/test
In directory clnet:/tmp/cvs-serv13386/test
Modified Files:
test-xml-rpc.lisp
Log Message:
fixed a bug reported by Evgeniy Zamriy:
<boolean>0</boolean> was decoded incorrectly as an empty string instead of as nil
fixed second clause in :|value| handling testing (null seed) instead of (null (car seed))
added more decoding tests to cope with regression, seems ok
--- /project/s-xml-rpc/cvsroot/s-xml-rpc/test/test-xml-rpc.lisp 2006/04/19 10:22:31 1.3
+++ /project/s-xml-rpc/cvsroot/s-xml-rpc/test/test-xml-rpc.lisp 2008/02/15 15:42:40 1.4
@@ -1,6 +1,6 @@
;;;; -*- mode: lisp -*-
;;;;
-;;;; $Id: test-xml-rpc.lisp,v 1.3 2006/04/19 10:22:31 scaekenberghe Exp $
+;;;; $Id: test-xml-rpc.lisp,v 1.4 2008/02/15 15:42:40 scaekenberghe Exp $
;;;;
;;;; Unit and functional tests for xml-rpc.lisp
;;;;
@@ -112,7 +112,7 @@
" fgo "
-31
""
- -12.214
+ -12.214D0
,(xml-rpc-time (iso8601->universal-time "19980717T14:08:55"))
#(121 111 117 32 99 97 110 39 116 32 114 101 97 100 32 116 104 105 115 33)))))
@@ -134,6 +134,26 @@
</array>"))
'("XYZ")))
+;; double decoding
+
+(assert (< (abs (- (decode-xml-rpc (make-string-input-stream "<value><double>3.141592653589793</double></value>"))
+ pi))
+ 0.000000000001D0))
+
+;; string decoding
+
+(assert (equal (decode-xml-rpc (make-string-input-stream "<value><string>foo</string></value>"))
+ "foo"))
+
+(assert (equal (decode-xml-rpc (make-string-input-stream "<value>foo</value>"))
+ "foo"))
+
+(assert (equal (decode-xml-rpc (make-string-input-stream "<value><string></string></value>"))
+ ""))
+
+(assert (equal (decode-xml-rpc (make-string-input-stream "<value></value>"))
+ ""))
+
;; boolean encoding
(assert (equal (with-output-to-string (out)
@@ -144,4 +164,13 @@
(encode-xml-rpc-value nil out))
"<value><boolean>0</boolean></value>"))
+
+;; boolean decoding
+
+(assert (equal (decode-xml-rpc (make-string-input-stream "<value><boolean>1</boolean></value>"))
+ t))
+
+(assert (equal (decode-xml-rpc (make-string-input-stream "<value><boolean>0</boolean></value>"))
+ nil))
+
;;;; eof