#!/usr/bin/expect -f
-set tt tests/tmp
+set testfile [lindex $argv 0]
+
+switch -glob -- $testfile {
+ tests/*.at {
+ regsub {^tests/} $testfile {tests/tmp/} tt
+ regsub {\.at$} $tt {} tt
+ }
+ * {
+ set tt tests/tmp/[info pid]
+ }
+}
exec rm -rf $tt
-exec mkdir $tt
+file mkdir tests/tmp $tt
set pwd [pwd]
set env(HOME) $tt
set env(CAFTEST_CAF) $pwd
+set env(CAFTEST_TMP) $pwd/$tt
set env(TERM) vt100
+set env(CAFTEST_NOSRCDUMP) 1
+set env(LC_ALL) en_GB.utf-8
log_user 0
log_file -a $tt/expect.log
-spawn -nottycopy \
-w3m -config /dev/null -o cgi_bin=$pwd/tests file:///cgi-bin/wrap
-
proc timeout-abort {} {
send_log "\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
error "aborting due to timeout"
}
-set timeout 5
+set timeout 15
expect_after timeout timeout-abort
elog -re $str
}
-etxt {You need to log in}
-etxt {Source available}
+proc epage {str} {
+ etxt $str
+}
+
+proc dospawn {} {
+ global pwd spawn_id
+
+ spawn -nottycopy \
+ w3m -config /dev/null -o cgi_bin=$pwd/tests file:///cgi-bin/wrap/Tsuffix
+
+ epage {You need to log in}
+}
+
+proc fillformfield {value} {
+ send "\t\r$value\r"
+}
+
+proc submitform-expect {wanttxt} {
+ send "\r"
+ etxt "loading file"
+ epage $wanttxt
+}
+
+proc loginas {user {password sesame} {wanttxt ACCESSGRANTED}} {
+ fillformfield $user
+ fillformfield $password
+ send "\t"
+ submitform-expect $wanttxt
+}
-send "\t\ralice\r\t\rbogus\r\t\r"
-etxt "loading file"
-etxt "wrong password"
+source $testfile
puts ok