chiark / gitweb /
Testing: autotest: Introduce "loginas"
[cgi-auth-flexible.git] / tests / autotest
index 0d84c63ffa91934d15bb384beb0c5714e85a7c46..40d6a5728a1182b53469f07d7b8cb2c823130733 100755 (executable)
@@ -15,7 +15,7 @@ log_user 0
 log_file -a $tt/expect.log
 
 spawn -nottycopy \
-w3m -config /dev/null -o cgi_bin=$pwd/tests file:///cgi-bin/wrap
+w3m -config /dev/null -o cgi_bin=$pwd/tests file:///cgi-bin/wrap/Tsuffix
 
 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"
@@ -37,11 +37,55 @@ proc etxt {str} {
      elog -re $str
 }
 
-etxt {You need to log in}
-etxt {Source available}
+proc epage {str} {
+    etxt $str
+}
+
+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
+}
+
+loginas alice bogus "wrong password"
+
+loginas alice
+
+etxt {path = '/Tsuffix'}
+
+send "/Make worms\r"
+submitform-expect "MAKING-worms"
+
+send "/Logout\r"
+submitform-expect "You have been logged out"
+
+send "B\x10/Make sponges\r"
+submitform-expect "You need to log in"
+
+loginas bob
+
+send "/Logout\r"
+submitform-expect "You have been logged out"
+
+send "/Log in again\r"
+submitform-expect "need to log in"
+
+loginas bob
 
-send "\t\ralice\r\t\rbogus\r\t\r"
-etxt "loading file"
-etxt "wrong password"
+send "BBB\x10/Make sponges\r"
+submitform-expect "Login session interrupted"
 
 puts ok