# $return: 1 = valid user, 2 = superlibrarian
if ($return) {
+ # If DB user is logged in
$userid ||= $q_userid if $return == 2;
#_session_log(sprintf "%20s from %16s logged in at %30s.\n", $userid,$ENV{'REMOTE_ADDR'},(strftime '%c', localtime));
subtest 'checkauth() tests' => sub {
- plan tests => 1;
+ plan tests => 2;
my $patron = $builder->build({ source => 'Borrower', value => { flags => undef } })->{userid};
is( $userid, undef, 'checkauth() returns undef for userid if no logged in user (Bug 18275)' );
+ my $db_user_id = C4::Context->config('user');
+ my $db_user_pass = C4::Context->config('pass');
+ $cgi = Test::MockObject->new();
+ $cgi->mock( 'cookie', sub { return; } );
+ $cgi->mock( 'param', sub {
+ my ( $self, $param ) = @_;
+ if ( $param eq 'userid' ) { return $db_user_id; }
+ elsif ( $param eq 'password' ) { return $db_user_pass; }
+ else { return; }
+ });
+ ( $userid, $cookie, $sessionID, $flags ) = C4::Auth::checkauth( $cgi, $authnotrequired );
+ is ( $userid, $db_user_id, 'If DB user is logging in, it should be considered as logged in, i.e. checkauth return the relevant userid' );
+ C4::Context->_new_userenv; # For next tests
+
};
my $hash1 = hash_password('password');