From 9bf8142ee77dbacceca0cb17ed5f56ec07b3771c Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 21 Apr 2017 18:44:05 -0300 Subject: [PATCH] Bug 18442: Add a test Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize Signed-off-by: Kyle M Hall --- C4/Auth.pm | 1 + t/db_dependent/Auth.t | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index fd4f79da4c..8a4166d251 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -1021,6 +1021,7 @@ sub checkauth { # $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)); diff --git a/t/db_dependent/Auth.t b/t/db_dependent/Auth.t index 705832d8ef..b8f2b2e72f 100644 --- a/t/db_dependent/Auth.t +++ b/t/db_dependent/Auth.t @@ -33,7 +33,7 @@ $schema->storage->txn_begin; subtest 'checkauth() tests' => sub { - plan tests => 1; + plan tests => 2; my $patron = $builder->build({ source => 'Borrower', value => { flags => undef } })->{userid}; @@ -47,6 +47,20 @@ subtest 'checkauth() tests' => sub { 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'); -- 2.39.5