lemonldap-ng/lemonldap-ng-portal/t/28-AuthChoice-Slave-remembe...

75 lines
2.3 KiB
Perl

use Test::More;
use strict;
use IO::String;
require 't/test-lib.pm';
my $res;
my $maintests = 7;
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
authentication => 'Choice',
userDB => 'Same',
passwordDB => 'Choice',
authChoiceParam => 'lmAuth',
authChoiceModules => {
slavechoice => 'Slave;Demo;Demo',
},
slaveUserHeader => 'userid',
slaveDisplayLogo => 1,
rememberAuthChoiceRule => 1,
rememberCookieName => "llngrememberauthchoice",
rememberCookieTimeout => 31536000,
rememberDefaultChecked => 0,
rememberTimer => 10,
}
}
);
# Check web form
ok( $res = $client->_get( '/', accept => 'text/html' ), 'Get authentication portal' );
my @form = ( $res->[2]->[0] =~ m#<form.*?</form>#sg );
ok( @form == 1, 'Display 1 choice' ) or explain( scalar(@form), 1 );
expectForm( [ $res->[0], $res->[1], [ $form[0] ] ], undef, undef, 'lmAuth' );
ok( $form[0] =~ /input type="hidden" id="rememberauthchoice"/ );
# authentication with rememberauthchoice enabled
ok(
$res = $client->_get( '/',
'accept' => 'text/html',
'query' => 'lmAuth=slavechoice&rememberauthchoice=true',
'custom' => { 'HTTP_USERID' => 'dwho' }
),
'Auth query with rememberauthchoice enabled'
);
my $id = expectCookie( $res );
my $remember = expectCookie( $res, "llngrememberauthchoice" );
ok( $remember eq "slavechoice", 'Get cookie with authentication' );
$client->logout($id);
# authentication with rememberauthchoice disabled
ok(
$res = $client->_get( '/',
'accept' => 'text/html',
'query' => 'lmAuth=slavechoice&rememberauthchoice=false',
'custom' => { 'HTTP_USERID' => 'dwho' }
),
'Auth query with rememberauthchoice disabled'
);
$id = expectCookie( $res );
$remember = expectCookie( $res, "llngrememberauthchoice" );
ok( $remember eq "0", 'Get cookie removal' );
$client->logout($id);
count($maintests);
clean_sessions();
done_testing( count() );