X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=cgi-auth-flexible.git;a=blobdiff_plain;f=tests%2Fcgi;h=1e486d3cd8c2eded4617858dc6e07fe0fea80723;hp=b73e6aae57a0f4a7dcdc51e12df9c28ae5b19b71;hb=413be458170c3e3e0eaf15d7e0d525228bf9651c;hpb=71abfbffcb5c784a85589aaff02f9ab7ef4c93bc diff --git a/tests/cgi b/tests/cgi index b73e6aa..1e486d3 100755 --- a/tests/cgi +++ b/tests/cgi @@ -1,5 +1,23 @@ #!/usr/bin/perl -w +# 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. + + use strict; use warnings; use CGI qw/escapeHTML/;; @@ -10,7 +28,7 @@ use Data::Dumper; #use Carp::Always; $SIG{__DIE__} = sub { Carp::confess(@_) }; -my $dump = "$ENV{'CAFTEST_CAF'}/tests/tmp"; +my $dump = $ENV{'CAFTEST_TMP'} // 'tests/tmp'; my $q = CGI->new; @@ -28,10 +46,16 @@ my @verifier_params =( promise_check_mutate => 1, dir => $dump, srcdump_filter_cwd => 0, + srcdump_needlogin => 1, debug => sub { print STDERR "DEBUG ", @_[2..@_-1]; }, get_url => sub { return $url }, ); +push @verifier_params, ( + srcdump_prepare => sub { }, + ) + if $ENV{'CAFTEST_NOSRCDUMP'}; + my $verifier = CGI::Auth::Flexible->new_verifier(@verifier_params); END { $verifier->disconnect() if $verifier; } @@ -48,22 +72,38 @@ Content-Type: text/html Set-Cookie: $cookie TITLE -

H1

-

again

- -

info

-
+

ACCESSGRANTED

END my $newurl = $authreq->url_with_query_params($authreq->chain_params()); my $newurl_esc = escapeHTML($newurl); +my $incrurl = $authreq->url_with_query_params + ({ counter => [ ($q->param('counter')//0) + 1 ]}); +my $incrurl_esc = escapeHTML($incrurl); + +my @critters = qw(sponges worms); + +foreach my $make (@critters) { + my $param = $q->param("test_cgi_$make"); + if (!$param) { + print "NO-$make\n"; + } else { + $authreq->check_mutate(); + print "MAKING-$make\n"; + } +} + +print <info

+
+END
+
 my $txt = Data::Dumper->Dump([$authreq->get_username(),
- $q->request_method eq 'POST' ? $authreq->check_mutate() : "(not POST)",
                               $q->path_info(),
                               $authreq->chain_params(),
                               scalar $q->Vars()],
-                             [qw(username mutate_ok path
+                             [qw(username path
                                  authreq->chain_params() cgi->params())]);
 foreach my $l (split /\n/, $txt) {
     print escapeHTML($l),"\n";
@@ -71,11 +111,17 @@ foreach my $l (split /\n/, $txt) {
 
 print <
-$newurl_esc
+self=$newurl_esc
+increment=$incrurl_esc
 
$hiddenhtml - - +END + +print < +END + +print <