ACL-Lite
view release on metacpan or search on metacpan
[API CHANGES]
* Add default permissions ("authenticated" or "anonymous") depending
whether you pass uid or not.
0.0002 Wed May 22 15:57:12 2013 CEST
[BUG FIXES]
* Execute POD tests only during release testing.
[ENHANCEMENTS]
* Add permissions method to retrieve list or hash reference of
permissions.
0.0001 Thu Sep 15 22:29:36 2011 CEST
* Initial release.
t/00-load.t view on Meta::CPAN
#!perl -T
use Test::More tests => 1;
BEGIN {
use_ok( 'ACL::Lite' ) || print "Bail out!\n";
}
diag( "Testing ACL::Lite $ACL::Lite::VERSION, Perl $], $^X" );
t/01-simple.t view on Meta::CPAN
#! perl -T
use strict;
use warnings;
use Test::More tests => 27;
use ACL::Lite;
my ($perms, $acl, @parr, $pref, $ret);
# permissions in a string
$perms = 'foo,bar';
$acl = ACL::Lite->new(permissions => $perms);
isa_ok($acl, 'ACL::Lite');
ok($acl->check('foo') eq 'foo');
ok($acl->check('bar') eq 'bar');
ok($acl->check(['foo', 'bar']) eq 'foo');
ok(! defined($acl->check('baz')));
test_return_of_permissions($acl);
# permissions in an array reference
$perms = [qw/foo bar/];
$acl = ACL::Lite->new(permissions => $perms);
isa_ok($acl, 'ACL::Lite');
ok($acl->check('foo') eq 'foo');
ok($acl->check('bar') eq 'bar');
ok($acl->check(['foo', 'bar']) eq 'foo');
ok(! defined($acl->check('baz')));
test_return_of_permissions($acl);
# permissions from a provider
$perms = sub {my %p = (anonymous => 1, foo => 1, bar => 1); return \%p};
$acl = ACL::Lite->new(permissions => $perms);
isa_ok($acl, 'ACL::Lite');
ok($acl->check('foo') eq 'foo');
ok($acl->check('bar') eq 'bar');
ok($acl->check(['foo', 'bar']) eq 'foo');
ok(! defined($acl->check('baz')));
test_return_of_permissions($acl);
# anonymous and authenticated permissions
$acl = ACL::Lite->new(permissions => '', uid => undef);
isa_ok($acl, 'ACL::Lite');
$ret = $acl->check('anonymous');
ok(defined $ret && $ret eq 'anonymous', 'Check for anonymous permission of anonymous user.')
|| diag "Return value: $ret:";
t/01-simple.t view on Meta::CPAN
isa_ok($acl, 'ACL::Lite');
$ret = $acl->check('authenticated');
ok(defined $ret && $ret eq 'authenticated', 'Check for authenticated permission of authenticated user.')
|| diag "Return value: $ret:";
$ret = $acl->check('anonymous');
ok(! defined($ret), 'Check for anonymous permission of authenticated user.')
|| diag "Return value: $ret.";
sub test_return_of_permissions {
my $acl = shift;
@parr = $acl->permissions;
is_deeply([sort @parr], ['anonymous', 'bar', 'foo'], "Test return value of permissions method (array).");
$pref = $acl->permissions;
is_deeply([sort keys %$pref], ['anonymous', 'bar', 'foo'], "Test return value of permissions method (hash reference).");
}
t/boilerplate.t view on Meta::CPAN
#!perl -T
use 5.006;
use strict;
use warnings;
use Test::More tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
while (my $line = <$fh>) {
while (my ($desc, $regex) = each %regex) {
t/manifest.t view on Meta::CPAN
#!perl -T
use strict;
use warnings;
use Test::More;
unless ( $ENV{RELEASE_TESTING} ) {
plan( skip_all => "Author tests not required for installation" );
}
eval "use Test::CheckManifest 0.9";
plan skip_all => "Test::CheckManifest 0.9 required" if $@;
ok_manifest();
t/pod-coverage.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
unless ( $ENV{RELEASE_TESTING} ) {
plan( skip_all => "Author tests not required for installation" );
}
# Ensure a recent version of Test::Pod::Coverage
my $min_tpc = 1.08;
eval "use Test::Pod::Coverage $min_tpc";
plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage"
if $@;
# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version,
# but older versions don't recognize some common documentation styles
my $min_pc = 0.18;
eval "use Pod::Coverage $min_pc";
plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage"
if $@;
all_pod_coverage_ok();
#!perl -T
use strict;
use warnings;
use Test::More;
unless ( $ENV{RELEASE_TESTING} ) {
plan( skip_all => "Author tests not required for installation" );
}
# Ensure a recent version of Test::Pod
my $min_tp = 1.22;
eval "use Test::Pod $min_tp";
plan skip_all => "Test::Pod $min_tp required for testing POD" if $@;
all_pod_files_ok();
( run in 0.648 second using v1.01-cache-2.11-cpan-87723dcf8b7 )