Hi, I see that the actual implementation of load_response.tcl produces a increasingly nested list when parsing multiple values for a given key. I've corrected this by changing it to use concat instead of list (diff attached to be run in rivet/rivet-tcl/). I also saw that no test files were present for this command, so I wrote them too (attached load_response.rvt and load_response.test to be copied in tests/). When running the tests, it was quite annoying that the results from previous tests was shown when a regexp didn't match. So I included set match "" all over the place, so now it is more clear that the regexp didn't match. I attached the diff also (tests.diff to be applied in tests/). When time allows, I will be checking the other commands and their tests. Till now all the I18n tests fail on my utf-8 encoding system.
Could someone check this and commit if it applies? Thanks. Cristian.
Index: load_response.tcl
===================================================================
--- load_response.tcl (revision 526155)
+++ load_response.tcl (working copy)
@@ -16,7 +16,7 @@
foreach {var elem} [var all] {
if {[info exists response($var)]} {
- set response($var) [list $response($var) $elem]
+ set response($var) [concat $response($var) $elem]
} else {
set response($var) $elem
}
load_response.rvt
Description: Binary data
load_response.test
Description: Binary data
Index: hello.test
===================================================================
--- hello.test (revision 526155)
+++ hello.test (working copy)
@@ -3,6 +3,7 @@
set testfilename1 hello.rvt
::tcltest::test hello-1.1 {hello world test} {
+ set match ""
set page [::http::geturl "${urlbase}$testfilename1"]
regexp -line {^Hello, World$} [::http::data $page] match
::http::cleanup $page
@@ -10,6 +11,7 @@
} {Hello, World}
::tcltest::test i18n-1.1 {I18N test} {
+ set match ""
set page [::http::geturl "${urlbase}$testfilename1"]
regexp -line {^¡ À È Ì Ò Ù - El Burro Sabe Más Que Tú!$} [::http::data $page] match
::http::cleanup $page
Index: headers.test
===================================================================
--- headers.test (revision 526155)
+++ headers.test (working copy)
@@ -9,9 +9,10 @@
hdrs(User-Agent) = Tcl http client package $httpversion"
::tcltest::test headers-1.1 {load_headers test} {
+ set match ""
set page [::http::geturl "${urlbase}$testfilename1"]
regexp -all -lineanchor "(^hdrs.*?$\n){3}" [::http::data $page] match
set match [string trim $match]
::http::cleanup $page
set match
-} $result
\ No newline at end of file
+} $result
Index: makeurl.test
===================================================================
--- makeurl.test (revision 526155)
+++ makeurl.test (working copy)
@@ -3,6 +3,7 @@
set testfilename1 makeurl.rvt
::tcltest::test makeurl-1.1 {makeurl} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" ]
set match [string trim [ ::http::data $page ]]
set match
Index: get.test
===================================================================
--- get.test (revision 526155)
+++ get.test (working copy)
@@ -1,60 +1,70 @@
# $Id$
::tcltest::test getvariables-1.1 {GET variables} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?foobar=goober" ]
regexp -line {\[var get foobar\] = goober$} [ ::http::data $page ] match
set match
} {[var get foobar] = goober}
::tcltest::test getvariables-1.2 {GET variables - exists} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?xst=1" ]
regexp -line {\[var exists xst\]\[var exists noxst\] = 1 0$} [ ::http::data $page ] match
set match
} {[var exists xst][var exists noxst] = 1 0}
::tcltest::test getvariables-1.3 {GET variables - doesn't exist} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt" ]
regexp -line {\[var get xst\] = } [ ::http::data $page ] match
set match
} {[var get xst] = }
::tcltest::test getvariables-1.4 {GET variables - default value} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?defaulttest=1" ]
regexp {^\[var get xst foo\] = foo} [ ::http::data $page ] match
set match
} {[var get xst foo] = foo}
::tcltest::test getvariables-1.5 {GET variables - var_qs exists} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?xst=1" ]
regexp -line {\[var_qs exists xst\]\[var_qs exists noxst\] = 1 0$} [ ::http::data $page ] match
set match
} {[var_qs exists xst][var_qs exists noxst] = 1 0}
::tcltest::test getvariables-2.1 {GET variables + I18N} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?Más=Tú" ]
regexp -line {^\[var get Más\] = Tú$} [ ::http::data $page ] match
set match
} {[var get Más] = Tú}
::tcltest::test getvariables-2.2 {GET variables + I18N + encoding} {
+ set match ""
set page [ ::http::geturl [ format "${urlbase}get.rvt?%s" [ ::http::formatQuery Más Tú ] ] ]
regexp -line {^\[var get Más\] = Tú$} [ ::http::data $page ] match
set match
} {[var get Más] = Tú}
::tcltest::test getvariables-3.1 {GET multi-value variable} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?lstvar1=a&lstvar1=b&lstvar1=c+d" ]
regexp -line {\[var get lstvar1\] = a b c d$} [ ::http::data $page ] match
set match
} {[var get lstvar1] = a b c d}
::tcltest::test getvariables-3.2 {GET multi-value variable as list} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?lstvar2=a&lstvar2=b&lstvar2=c+d" ]
regexp -line {\[var list lstvar2\] = a b {c d}$} [ ::http::data $page ] match
set match
} {[var list lstvar2] = a b {c d}}
::tcltest::test getvariables-4.1 {var_qs} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt?foobar=goober" ]
regexp -line {\[var_qs get foobar\] = goober$} [ ::http::data $page ] match
set match
Index: post.test
===================================================================
--- post.test (revision 526155)
+++ post.test (working copy)
@@ -3,36 +3,42 @@
set testfilename1 post.rvt
::tcltest::test postvariables-1.1 {POST variables} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" -query foobar=goober ]
regexp -line {^\[var get foobar\] = goober$} [ ::http::data $page ] match
set match
} {[var get foobar] = goober}
::tcltest::test postvariables-2.1 {POST variables + I18N} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" -query Más=Tú ]
regexp -line {^\[var get Más\] = Tú$} [ ::http::data $page ] match
set match
} {[var get Más] = Tú}
::tcltest::test postvariables-2.2 {POST variables + I18N + encoding} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" -query [ ::http::formatQuery Más Tú ] ]
regexp -line {^\[var get Más\] = Tú$} [ ::http::data $page ] match
set match
} {[var get Más] = Tú}
::tcltest::test postvariables-3.1 {POST multi-value variable} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt" -query [::http::formatQuery lstvar1 a lstvar1 b lstvar1 {c d}]]
regexp -line {\[var get lstvar1\] = a b c d$} [ ::http::data $page ] match
set match
} {[var get lstvar1] = a b c d}
::tcltest::test postvariables-3.2 {POST multi-value variable as list} {
+ set match ""
set page [ ::http::geturl "${urlbase}get.rvt" -query [::http::formatQuery lstvar2 a lstvar2 b lstvar2 {c d}]]
regexp -line {\[var list lstvar2\] = a b {c d}$} [ ::http::data $page ] match
set match
} {[var list lstvar2] = a b {c d}}
::tcltest::test postvariables-4.1 {var_post} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" -query foobar=goober ]
regexp -line {^\[var_post get foobar\] = goober$} [ ::http::data $page ] match
set match
Index: env.test
===================================================================
--- env.test (revision 526155)
+++ env.test (working copy)
@@ -3,6 +3,7 @@
set testfilename1 env.rvt
::tcltest::test env-1.1 {Environment variable} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" ]
regexp -line "^env\\(DOCUMENT_NAME\\) = $testfilename1\$" [ ::http::data $page ] match
set match
Index: rivet.test
===================================================================
--- rivet.test (revision 526155)
+++ rivet.test (working copy)
@@ -15,7 +15,7 @@
# Use this to start and stop the server:
-set TestList {headers.test cookies.test get.test post.test tclfile.test env.test hello.test include.test binary.test parse.test upload.test makeurl.test}
+set TestList {headers.test cookies.test load_response.test get.test post.test tclfile.test env.test hello.test include.test binary.test parse.test upload.test makeurl.test}
# Test stanzas are created by giving the test a name and a
# description. The code is then executed, and the results compared
Index: cookies.test
===================================================================
--- cookies.test (revision 526155)
+++ cookies.test (working copy)
@@ -3,18 +3,21 @@
set testfilename1 cookies.rvt
::tcltest::test cookies-1.1 {Cookies} {
+ set match ""
set page [::http::geturl "${urlbase}$testfilename1" -headers {Cookie "foo=bar"}]
regexp -line {^cookies\(foo\) = bar$} [ ::http::data $page ] match
set match
} {cookies(foo) = bar}
::tcltest::test cookies-1.2 {Cookies + I18N} {
+ set match ""
set page [::http::geturl "${urlbase}$testfilename1" -headers {Cookie "Más=Tú"}]
regexp -line {^cookies\(Más\) = Tú$} [::http::data $page] match
set match
} {cookies(Más) = Tú}
::tcltest::test cookies-1.3 {Cookies + I18N + encoding} {
+ set match ""
set page [ ::http::geturl "${urlbase}$testfilename1" -headers [ list Cookie [ ::http::formatQuery Más Tú ] ] ]
regexp -line {^cookies\(Más\) = Tú$} [ ::http::data $page ] match
set match
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
