From e06c2e9d3e37d48dde36c9c76ada51fc2da6503d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 2 Nov 2015 17:43:44 +0000 Subject: [PATCH] Testing: Provide srcdump-login test This tests requesting source code while not logged in - the most usual workflow. Signed-off-by: Ian Jackson --- tests/srcdump-login.at | 84 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 tests/srcdump-login.at diff --git a/tests/srcdump-login.at b/tests/srcdump-login.at new file mode 100644 index 0000000..8fbfb8c --- /dev/null +++ b/tests/srcdump-login.at @@ -0,0 +1,84 @@ +# -*- 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" + } +} -- 2.30.2