chiark / gitweb /
1cea707f8df1a4263a988a6196659c0acd8f6cee
[cgi-auth-flexible.git] / tests / autotest
1 #!/usr/bin/expect -f
2
3 set testfile [lindex $argv 0]
4
5 switch -glob -- $testfile {
6     tests/*.at {
7         regsub {^tests/} $testfile {} id
8         regsub {\.at$} $id {} id
9         set tt "tests/tmp/$id"
10     }
11     * {
12         set id "\[[info pid]\]"
13         set tt tests/tmp/[info pid]
14     }
15 }
16
17 exec rm -rf $tt
18 file mkdir tests/tmp $tt
19
20 set pwd [pwd]
21
22 set env(HOME) $tt
23 set env(CAFTEST_CAF) $pwd
24 set env(CAFTEST_TMP) $pwd/$tt
25 set env(TERM) vt100
26 set env(CAFTEST_NOSRCDUMP) 1
27 set env(LC_ALL) en_GB.utf-8
28
29 log_user 0
30 log_file -a $tt/expect.log
31
32 proc timeout-abort {} {
33      send_log "\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
34      error "$id: aborting due to timeout"
35 }
36 set timeout 10
37
38 proc elog {args} {
39     global id
40      set m "[list expect [lindex $args end]]"
41      puts stderr "$id: $m"
42 #     send_log "\n$m\n"
43      eval expect $args
44 }
45
46 proc etxt {str} {
47      regsub -all { } $str {\W{0,3}\w?} str
48      elog -re $str
49 }
50
51 proc epage {str} {
52     etxt $str
53 }
54
55 proc dospawn {} {
56      global pwd spawn_id
57
58      spawn -nottycopy \
59      w3m -config /dev/null -o cgi_bin=$pwd/tests file:///cgi-bin/wrap/Tsuffix
60
61      expect_after timeout timeout-abort
62
63      epage {You need to log in}
64 }
65
66 proc fillformfield {value} {
67     send "\t\r$value\r"
68 }
69
70 proc submitform-expect {wanttxt} {
71     send "\r"
72     etxt "loading file"
73     epage $wanttxt
74 }
75
76 proc loginas {user {password sesame} {wanttxt ACCESSGRANTED}} {
77      fillformfield $user
78      fillformfield $password
79      send "\t"
80      submitform-expect $wanttxt
81 }
82
83 source $testfile
84
85 puts "$id: ok"