# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Slauth.t'
#########################
# change 'tests => x' to 'tests => last_test_to_print';
use strict;
use Cwd;
BEGIN {
$ENV{SLAUTH_REALM} = "localhost";
$ENV{SLAUTH_CONFIG} = getcwd."/t/slauth.conf";
}
use Apache::Test qw(plan ok have_lwp);
use Apache::TestUtil;
use Apache::TestRequest qw(GET POST);
use Apache2::Const qw(HTTP_OK HTTP_UNAUTHORIZED AUTH_REQUIRED);
use HTTP::Response;
#use Data::Dumper;
BEGIN {
plan tests => 17, have_lwp;
ok(1);
}
use Slauth;
BEGIN {
ok(1);
}
use Slauth::Storage::DB;
BEGIN {
ok(1);
}
use Slauth::Storage::User_DB;
BEGIN {
ok(1);
}
use Slauth::Storage::Session_DB;
BEGIN {
ok(1);
}
use Slauth::User::Web;
BEGIN {
ok(1);
}
#
# post-loading test code begins here
#
my $res;
#
# quick return code tests on the server
#
# Test: access to /slauth should return HTTP OK
$res = GET "/slauth";
ok $res->code, HTTP_OK; # HTTP OK expected
# Test: access to / should return HTTP OK
$res = GET "/";
ok $res->code, HTTP_OK; # HTTP OK expected
# Test: access to /protected/ should return HTTP OK
#$res = GET "/protected/";
#ok $res->code, HTTP_OK; # HTTP OK expected
# Test: access to /basic-protected/ should return HTTP UNAUTHORIZED
#$res = GET "/basic-protected/";
#ok $res->code, HTTP_UNAUTHORIZED; # HTTP UNAUTHORIZED expected
#
# write and read a user record
#
# set up data for user record tests
my %user_data = (
"domain" => "localhost",
"user" => "fnord",
"name" => "Joe Fnord",
"email" => "joe\@fnord.fu",
"password" => "foo",
"group" => [ "foo", "bar", "baz" ],
);
# Test: write a user record
{
# do this in its own scope to prevent any results being used later
my $config = Slauth::Config->new();
ok defined $config;
#print STDERR Dumper($config);
my $storage = $config->get( "storage" );
ok $storage, "Slauth::Storage::DB";
my $user_db = Slauth::Storage::User_DB->new( $config );
ok defined $user_db;
my $status = $user_db->write_record ( $user_data{user}, $user_data{password}, $user_data{name}, $user_data{email}, @{$user_data{group}});
ok (defined $status), 1;
}
# Test: read back the same record
{
my $config = Slauth::Config->new();
ok defined $config;
my ( $user_login, $user_pw_hash, $user_salt, $user_name,
$user_email, $user_groups ) =
Slauth::Storage::User_DB::get_user($user_data{user}, $config);
ok $user_login, $user_data{user};
ok $user_name, $user_data{name};
ok $user_email, $user_data{email};
ok $user_groups, join( ",", @{$user_data{group}});
}
1;