Apache-Roaming
view release on metacpan or search on metacpan
t/10methods.t view on Meta::CPAN
# -*- perl -*-
require File::Spec;
require Symbol;
my $test_num = 0;
my($cfg, $pid, $lwp);
sub Test ($;$) {
my $result = shift; my $msg = shift;
$msg = '' unless defined($msg);
++$test_num;
print "not " unless $result;
print "ok $test_num$msg\n";
$result;
}
sub Request ($$$;$$@) {
my($ua, $method, $url, $type, $contents, @headers) = @_;
$url = 'http://127.0.0.1:' . $cfg->{'httpd_port'} . $url;
my $req = HTTP::Request->new($method => $url);
Test($req);
$req->content_type($type) if defined($type);
$req->content($contents) if defined($contents);
$req->authorization_basic('foo bar', 'eoj');
while (@headers) {
my $key = shift @headers;
my $val = shift @headers;
$req->header($key => $val);
}
my $res = $ua->request($req);
Test($res->is_success())
or print("Error:", $res->error_as_HTML(), "\n");
$res;
}
sub TestContents ($$) {
my $file = shift; my $expected = shift;
Test(-f $file)
or print "File $file doesn't exist.\n";
my $fh = Symbol::gensym();
Test(open($fh, "<$file"))
or print "Cannot open file $file: $!\n";
local $/ = undef;
my $got = <$fh>;
Test(defined($got))
or print "Failed to read file $file: $!\n";
Test($got eq $expected)
or print "File $file doesn't match expected contents.\n";
}
eval {
$cfg = require ".status";
mkdir $cfg->{'t_dir'}, 0755 unless -d $cfg->{'t_dir'};
mkdir $cfg->{'output_dir'}, 0755 unless -d $cfg->{'output_dir'};
mkdir $cfg->{'roaming_dir'}, 0755 unless -d $cfg->{'roaming_dir'};
mkdir $cfg->{'log_dir'}, 0755 unless -d $cfg->{'log_dir'};
unlink $cfg->{'pid_file'} if -f $cfg->{'pid_file'};
open(USER, ">$cfg->{'user_file'}")
or die "Error while creating user file: $!";
printf USER ("%s:%s\n", "foo bar", crypt("eoj", "foo bar"))
or die "Error while writing user file: $!";
close(USER)
or die "Error while closing user file: $!";
$pid = fork ();
$lwp = require LWP::UserAgent;
};
if ($@ or !defined($pid) or !$cfg or !$lwp) {
print "1..0\n";
exit 0;
}
sub KillHttpd { system "kill $pid" if $pid };
$SIG{'CHLD'} = sub { my $p = wait; undef $pid if $pid = $p };
$SIG{'ALRM'} = sub { KillHttpd() };
( run in 1.472 second using v1.01-cache-2.11-cpan-39bf76dae61 )