--- /dev/null
+# -*- Tcl -*-
+
+# This is part of CGI::Auth::Flexible, a perl CGI authentication module.
+#
+# Copyright 2012,2013,2015 Ian Jackson.
+# Copyright 2012,2013,2015 Citrix.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version, with the "CAF Login Exception"
+# as published by Ian Jackson (version 1, or at your option any
+# later version) as an Additional Permission.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+
+set env(CAFTEST_NOSRCDUMP) 0
+
+set timeout [expr {$timeout * 3}]
+
+dospawn
+
+send "B/source available\r"
+
+submitform-expect "Viewing"
+
+loginas alice sesame "Save file to"
+
+set outertar $tt/t-srcdump.tgz
+set sd $tt/t-srcdump.d
+
+send "\x15$outertar\r"
+etxt "Download complete"
+
+exec mkdir $sd
+
+set files [exec tar -C $sd -zvxf - < $outertar]
+
+foreach f {
+ manifest.txt
+ licence.data
+ cgi-auth-flexible.pm
+ .gitignore
+} {
+ set got($f) 0
+}
+
+if {[file exists .git]} {
+ set got(.git/objects/) 0
+}
+
+foreach f $files {
+ switch -glob -- $f {
+ licence.data - manifest.txt {
+ set got($f) 1
+ }
+ *.tar {
+ foreach g [exec tar -C $sd -tf - < $sd/$f] {
+ switch -glob -- $g {
+ cgi-auth-flexible.pm - .gitignore - .git/objects/ {
+ set got($g) 1
+ }
+ *~ {
+ error "file $g inside $f !"
+ }
+ .git/* {
+ }
+ *.db {
+ error "file $g inside $f outside .git !"
+ }
+ }
+ }
+ }
+ }
+}
+
+foreach g [array names got] {
+ if {!$got($g)} {
+ error "file $g missing"
+ }
+}