Apache-SWIT-Security

 view release on metacpan or  search on metacpan

t/100_manager.t  view on Meta::CPAN

use strict;
use warnings FATAL => 'all';

use Test::More tests => 78;
use File::Temp qw(tempdir);
use File::Slurp;
use Carp;
use Data::Dumper;
use YAML;
use Apache::SWIT::Maker::Config;
use Apache::SWIT::Test::Request;
use Apache::SWIT::Test::Utils;

BEGIN { # $SIG{__DIE__} = sub { diag(Carp::longmess(@_)); };
	use_ok('T::Apache::SWIT::Security::Role::Container');
	use_ok('Apache::SWIT::Security::Maker');
	use_ok('Apache::SWIT::Security::Role::Container');
	use_ok('Apache::SWIT::Security::Role::Loader'); 
	use_ok('Apache::SWIT::Security::Role::Manager'); 
	use_ok('Apache::SWIT::Security', qw(Sealed_Params Hash)); 
}

unlike(read_file('blib/conf/httpd.conf'), qr/SWITSecurityPermissions/);
is(ADMIN_ROLE, 1);
is(USER_ROLE, 2);

my $man = Apache::SWIT::Security::Role::Manager->new({
	"some/url/r" => {
		perms => [ Apache::SWIT::Security::Role::Manager::ALL ],
	}
});
ok($man);
is($man->access_control("some/strange/url"), undef);

is(Hash("foo\n"), 'd3b07384d113edec49eaa6238ad5ff00');

{
	local $ENV{AS_SECURITY_SALT} = 1234;
	is(Hash("foo\n"), '83414769c2c135aef8c4c821af5b4c5f');
};

my $ac = $man->access_control("some/url/r");
ok($ac);

is($ac->check_user, 1);

$ac->{_perms} = [ -1*Apache::SWIT::Security::Role::Manager::ALL ];
is($ac->check_user, undef);

$ac->{_perms} = [ 12 ];
is($ac->check_user, undef);

my @roles = (12);

package User;
sub role_ids { return @roles };

package main;
is($ac->check_user('User'), 1);
@roles = (13);
is($ac->check_user('User'), undef);

$ac->{_perms} = [ 12, 13 ];
is($ac->check_user('User'), 1);
$ac->{_perms} = [ -13, 13 ];
is($ac->check_user('User'), undef);

is($man->access_control("/dynamically/added"), undef);



( run in 1.241 second using v1.01-cache-2.11-cpan-39bf76dae61 )