added tests for mod-secdownload

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@623 152afb58-edef-0310-8abb-c4023f1b3aa9
svn/tags/lighttpd-1.4.2
Jan Kneschke 17 years ago
parent 79d3bc4491
commit 9359e21514
  1. 2
      tests/LightyTest.pm
  2. 6
      tests/lighttpd.conf
  3. 63
      tests/mod-secdownload.t

@ -74,7 +74,7 @@ sub start_proc {
select(undef, undef, undef, 0.1);
} else {
system("valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --logfile=foo ".$self->{LIGHTTPD_PATH}." -D -f /tmp/cfg.file &");
select(undef, undef, undef, 1);
select(undef, undef, undef, 2);
}

@ -19,6 +19,7 @@ server.dir-listing = "enable"
server.modules = (
"mod_rewrite",
"mod_setenv",
"mod_secdownload",
"mod_access",
"mod_auth",
# "mod_httptls",
@ -64,6 +65,11 @@ mimetype.assign = ( ".png" => "image/png",
compress.cache-dir = "/tmp/lighttpd/cache/compress/"
compress.filetype = ("text/plain", "text/html")
secdownload.secret = "verysecret"
secdownload.document-root = "/tmp/lighttpd/servers/www.example.org/pages/"
secdownload.uri-prefix = "/sec/"
secdownload.timeout = 120
setenv.add-environment = ( "TRAC_ENV" => "foo")
setenv.add-request-header = ( "FOO" => "foo")
setenv.add-response-header = ( "BAR" => "foo")

@ -0,0 +1,63 @@
#! /usr/bin/perl -w
BEGIN {
# add current source dir to the include-path
# we need this for make distcheck
(my $srcdir = $0) =~ s#/[^/]+$#/#;
unshift @INC, $srcdir;
}
use strict;
use IO::Socket;
use Test::More tests => 3;
use LightyTest;
use Digest::MD5 qw(md5_hex);
my $tf = LightyTest->new();
my $t;
ok($tf->start_proc == 0, "Starting lighttpd") or die();
my $secret = "verysecret";
my $f = "/index.html";
my $thex = sprintf("%08x", time);
my $m = md5_hex($secret.$f.$thex);
# mod-cgi
#
$t->{REQUEST} = ( <<EOF
GET /sec/$m/$thex$f HTTP/1.0
EOF
);
$t->{RESPONSE} = ( { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } );
ok($tf->handle_http($t) == 0, 'secdownload');
$thex = sprintf("%08x", time - 1800);
$m = md5_hex($secret.$f.$thex);
# mod-cgi
#
$t->{REQUEST} = ( <<EOF
GET /sec/$m/$thex$f HTTP/1.0
EOF
);
$t->{RESPONSE} = ( { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 408 } );
ok($tf->handle_http($t) == 0, 'secdownload - timeout');
$f = "/noexists";
$thex = sprintf("%08x", time);
$m = md5_hex($secret.$f.$thex);
# mod-cgi
#
$t->{REQUEST} = ( <<EOF
GET /sec/$m/$thex$f HTTP/1.0
EOF
);
$t->{RESPONSE} = ( { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404 } );
ok($tf->handle_http($t) == 0, 'secdownload - timeout');
ok($tf->stop_proc == 0, "Stopping lighttpd");
Loading…
Cancel
Save