blob: ecc23eeca44dacc7a8cd8a039ec940c33d5869fb [file] [log] [blame]
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
# mod_dtcl test suite, by David N. Welton <davidw@apache.org>
# See README file for more information.
# $Id$
package require tcltest
package require http 2.1
set urlbase "http://localhost:8080/"
set testfilename1 "dtcl-test2.ttml"
set testfilename2 "dtcl-test.tcl"
::tcltest::test hello-1.1 {hello world test} {
set page [ ::http::geturl "${urlbase}$testfilename1" ]
regexp -line {^Hello, World$} [ ::http::data $page ]
} 1
::tcltest::test i18n-1.1 {I18N test} {
set page [ ::http::geturl "${urlbase}$testfilename1" ]
regexp -line {^¡ À È Ì Ò Ù - El Burro Sabe Más Que Tú!$} [ ::http::data $page ]
} 1
::tcltest::test getvariables-1.1 {GET variables} {
set page [ ::http::geturl "${urlbase}$testfilename1?foobar=goober" ]
regexp -line {^VARS\(foobar\) = goober$} [ ::http::data $page ]
} 1
::tcltest::test getvariables-1.2 {GET variables + I18N} {
set page [ ::http::geturl "${urlbase}$testfilename1?Más=Tú" ]
regexp -line {^VARS\(Más\) = Tú$} [ ::http::data $page ]
} 1
::tcltest::test getvariables-1.3 {GET variables + I18N + encoding} {
set page [ ::http::geturl [ format "${urlbase}$testfilename1?%s" [ ::http::formatQuery Más Tú ] ] ]
regexp -line {^VARS\(Más\) = Tú$} [ ::http::data $page ]
} 1
::tcltest::test postvariables-1.1 {POST variables} {
set page [ ::http::geturl "${urlbase}$testfilename1" -query foobar=goober ]
regexp -line {^VARS\(foobar\) = goober$} [ ::http::data $page ]
} 1
::tcltest::test postvariables-1.2 {POST variables + I18N} {
set page [ ::http::geturl "${urlbase}$testfilename1" -query Más=Tú ]
regexp -line {^VARS\(Más\) = Tú$} [ ::http::data $page ]
} 1
::tcltest::test postvariables-1.3 {POST variables + I18N + encoding} {
set page [ ::http::geturl "${urlbase}$testfilename1" -query [ ::http::formatQuery Más Tú ] ]
regexp -line {^VARS\(Más\) = Tú$} [ ::http::data $page ]
} 1
::tcltest::test multivariables-1.1 {multiple variables: foo=1&foo=2} {
set page [ ::http::geturl "${urlbase}$testfilename1?foobar=1&foobar=2&foobar=foo+bar" ]
regexp -line {^VARS\(foobar\) = 1 2 foo bar$} [ ::http::data $page ]
} 1
::tcltest::test env-1.1 {Environment variable} {
set page [ ::http::geturl "${urlbase}$testfilename1" ]
regexp -line "^ENVS\\(DOCUMENT_NAME\\) = $testfilename1\$" [ ::http::data $page ]
} 1
::tcltest::test cookies-1.1 {Cookies} {
set page [ ::http::geturl "${urlbase}$testfilename1" -headers {Cookie "foo=bar"} ]
regexp -line {^COOKIES\(foo\) = bar$} [ ::http::data $page ]
} 1
::tcltest::test cookies-1.2 {Cookies + I18N} {
set page [ ::http::geturl "${urlbase}$testfilename1" -headers {Cookie "Más=Tú"} ]
regexp -line {^COOKIES\(Más\) = Tú$} [ ::http::data $page ]
} 1
::tcltest::test cookies-1.3 {Cookies + I18N + encoding} {
set page [ ::http::geturl "${urlbase}$testfilename1" -headers [ list Cookie [ ::http::formatQuery Más Tú ] ] ]
regexp -line {^COOKIES\(Más\) = Tú$} [ ::http::data $page ]
} 1
::tcltest::test cookies-1.4 {Multiple Cookies} {
set rslt 0
set page [ ::http::geturl "${urlbase}$testfilename1" -headers {Cookie "bop; foo=bar;doo=wah; shoo=be ;doooo=bee;dot=dow "} ]
set pgdata [ ::http::data $page ]
incr rslt [ regexp -line {^COOKIES\(foo\) = bar$} $pgdata ]
incr rslt [ regexp -line {^COOKIES\(doo\) = wah} $pgdata ]
incr rslt [ regexp -line {^COOKIES\(shoo\) = be} $pgdata ]
incr rslt [ regexp -line {^COOKIES\(doooo\) = bee} $pgdata ]
incr rslt [ regexp -line {^COOKIES\(dot\) = dow$} $pgdata ]
incr rslt [ regexp -line {^COOKIES\(bop\) = } $pgdata ]
} 6
::tcltest::test servercookies-1.1 {Cookies from Server} {
set rslt 0
set page [ ::http::geturl "${urlbase}$testfilename1" ]
upvar 0 $page state
array set statehash $state(meta)
regexp -line {mod=dtcl; path=[^;]*; expires=01-01-2003} $statehash(Set-Cookie)
} 1
::tcltest::test tclfile-1.1 {Plain .tcl file} {
set page [ ::http::geturl "${urlbase}$testfilename2" ]
set pgdata [string trim [ ::http::data $page ] ]
} "¡ À È Ì Ò Ù - El Burro Sabe Más Que Tú!"
::tcltest::cleanupTests