lemonldap-ng/lemonldap-ng-handler/t/64-Lemonldap-NG-Handler-PSGI-DevOps.t

88 lines
1.8 KiB
Perl
Raw Normal View History

2017-02-22 07:35:19 +01:00
use Test::More;
use JSON;
use Data::Dumper;
use MIME::Base64;
use LWP::UserAgent;
BEGIN {
require 't/test-psgi-lib.pm';
}
init('Lemonldap::NG::Handler::Server');
my $res;
2017-02-22 09:12:55 +01:00
# Authorizated queries
2017-03-03 18:25:03 +01:00
ok(
$res = $client->_get(
'/', undef,
'test3.example.com', "lemonldap=$sessionId",
VHOSTTYPE => 'DevOps'
),
'Authorizated query'
);
2017-02-22 07:35:19 +01:00
ok( $res->[0] == 200, 'Code is 200' ) or explain( $res->[0], 200 );
2017-02-22 09:12:55 +01:00
count(2);
2017-03-03 18:25:03 +01:00
ok(
$res = $client->_get(
'/testyes', undef,
'test3.example.com', "lemonldap=$sessionId",
VHOSTTYPE => 'DevOps'
),
'Authorizated query'
);
2017-02-22 09:12:55 +01:00
ok( $res->[0] == 200, 'Code is 200' ) or explain( $res->[0], 200 );
count(2);
# Denied queries
2017-03-03 18:25:03 +01:00
ok(
$res = $client->_get(
'/deny', undef,
'test3.example.com', "lemonldap=$sessionId",
VHOSTTYPE => 'DevOps'
),
'Denied query'
);
2017-02-22 09:12:55 +01:00
ok( $res->[0] == 403, 'Code is 403' ) or explain( $res->[0], 403 );
count(2);
2017-02-22 07:35:19 +01:00
2017-03-03 18:25:03 +01:00
ok(
$res = $client->_get(
'/testno', undef,
'test3.example.com', "lemonldap=$sessionId",
VHOSTTYPE => 'DevOps'
),
'Denied query'
);
2017-02-22 09:12:55 +01:00
ok( $res->[0] == 403, 'Code is 403' ) or explain( $res->[0], 403 );
2017-02-22 07:35:19 +01:00
count(2);
done_testing( count() );
clean();
# Redefine LWP methods for tests
no warnings 'redefine';
sub LWP::UserAgent::request {
my ( $self, $req ) = @_;
my $httpResp;
my $s = '{
"rules": {
2017-02-22 09:12:55 +01:00
"^/deny": "deny",
"^/testno": "$uid ne qq{dwho}",
"^/testyes": "$uid eq qq{dwho}",
2017-02-22 07:35:19 +01:00
"default": "accept"
},
"headers": {
"User": "$uid"
}
}';
$httpResp = HTTP::Response->new( 200, 'OK' );
2017-03-03 18:25:03 +01:00
$httpResp->header( 'Content-Type', 'application/json' );
2017-02-22 07:35:19 +01:00
$httpResp->header( 'Content-Length', length($s) );
$httpResp->content($s);
return $httpResp;
}