File: env.test

package info (click to toggle)
libapache2-mod-rivet 3.2.6-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,384 kB
  • sloc: tcl: 8,982; xml: 8,619; ansic: 7,074; sh: 5,039; makefile: 195; sql: 91; lisp: 78
file content (48 lines) | stat: -rw-r--r-- 1,825 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#
# testing how the environment variables resolution 
# is handled by mod_rivet
#

set rvttestfilename env.rvt

::tcltest::test env-1.1 {Environment variable} {
    set page [ ::http::geturl "${urlbase}$rvttestfilename?load_env=true" ]
    regexp -line "^env\\(DOCUMENT_NAME\\) = $rvttestfilename\$" [::http::data $page] match
    ::http::cleanup $page
    set match
} "env(DOCUMENT_NAME) = $rvttestfilename"

::tcltest::test env-1.2 {Environment variable} {
    set page [ ::http::geturl "${urlbase}$rvttestfilename?load_env=false" ]
    regexp -line "^env\\(DOCUMENT_NAME\\) = $rvttestfilename\$" [::http::data $page] match
    ::http::cleanup $page
    set match
} "env(DOCUMENT_NAME) = $rvttestfilename"

::tcltest::test env-1.2.1 {CGI Environment variable double translation} {
    set page1 [ ::http::geturl "${urlbase}$rvttestfilename?protocol=1"]
    set match1 [string trim [::http::data $page1]]
    set page2 [ ::http::geturl "${urlbase}$rvttestfilename?protocol=1"]
    set match2 [string trim [::http::data $page2]]
    #puts "proto: $match1 $match2"
    ::http::cleanup $page1
    ::http::cleanup $page2
    expr [string match $match1 $match2]
} "1"

set envmethod env_methods.tcl
set env_vars [list "DATE_LOCAL" "DATE_GMT" "LAST_MODIFIED" "DOCUMENT_URI" "DOCUMENT_PATH_INFO" "DOCUMENT_NAME"  \
                   "QUERY_STRING_UNESCAPED" "RIVET_CACHE_FREE" "RIVET_CACHE_SIZE" "HTTP_ACCEPT" "HTTP_HOST" \
                   "QUERY_STRING" "SCRIPT_FILENAME" "SERVER_NAME" "SERVER_PORT" "SERVER_PROTOCOL"]

puts "comparing ::rivet::env and ::rivet::load_env for variable resolution"
foreach v $env_vars {
    puts -nonewline "$v "
    ::tcltest::test env-1.3 {Environment variable methods} {
        set page [::http::geturl "${urlbase}$envmethod?envvar=$v"]
        ::http::data $page
    } "$v: OK"
}
puts ""