From 5cca53bdfa7a45291c974bf6d46af269ecf29ac4 Mon Sep 17 00:00:00 2001 From: David Cook Date: Wed, 16 Aug 2023 02:51:43 +0000 Subject: [PATCH] Bug 34513: Add checkauth unit test for resetting auth state when changing users Signed-off-by: Nick Clemens Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi (cherry picked from commit abbbc5924de287a73c7d91c0f8ab70f8d7461508) Signed-off-by: Fridolin Somers (cherry picked from commit 6c1b969a1f5014c3ae4ea6405a91ff54f7c8afbe) Signed-off-by: Jacob O'Mara --- t/db_dependent/Auth.t | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/t/db_dependent/Auth.t b/t/db_dependent/Auth.t index 98496d2281..4aebb55b53 100755 --- a/t/db_dependent/Auth.t +++ b/t/db_dependent/Auth.t @@ -41,7 +41,7 @@ $schema->storage->txn_begin; subtest 'checkauth() tests' => sub { - plan tests => 8; + plan tests => 9; my $patron = $builder->build_object({ class => 'Koha::Patrons', value => { flags => undef } }); @@ -153,31 +153,29 @@ subtest 'checkauth() tests' => sub { }; subtest 'Reset auth state when changing users' => sub { - #NOTE: It's easiest to detect this when changing to a non-existent user, since #that should trigger a redirect to login (instead of returning a session cookie) plan tests => 2; - my $patron = $builder->build_object( { class => 'Koha::Patrons', value => { flags => undef } } ); + my $patron = $builder->build_object({ class => 'Koha::Patrons', value => { flags => undef } }); my $session = C4::Auth::get_session(); - $session->param( 'number', $patron->id ); - $session->param( 'id', $patron->userid ); - $session->param( 'ip', '1.2.3.4' ); - $session->param( 'lasttime', time() ); - $session->param( 'interface', 'intranet' ); + $session->param( 'number', $patron->id ); + $session->param( 'id', $patron->userid ); + $session->param( 'ip', '1.2.3.4' ); + $session->param( 'lasttime', time() ); + $session->param( 'interface', 'intranet' ); $session->flush; my $sessionID = $session->id; C4::Context->_new_userenv($sessionID); - my ($return) = - C4::Auth::check_cookie_auth( $sessionID, undef, { skip_version_check => 1, remote_addr => '1.2.3.4' } ); + my ( $return ) = C4::Auth::check_cookie_auth( $sessionID, undef, { skip_version_check => 1, remote_addr => '1.2.3.4' } ); is( $return, 'ok', 'Patron authenticated' ); my $mock1 = Test::MockModule->new('C4::Auth'); - $mock1->mock( 'safe_exit', sub { return 'safe_exit_redirect' } ); + $mock1->mock( 'safe_exit', sub {return 'safe_exit_redirect'} ); my $mock2 = Test::MockModule->new('CGI'); $mock2->mock( 'request_method', 'POST' ); - $mock2->mock( 'cookie', sub { return $sessionID; } ); # oversimplified.. + $mock2->mock( 'cookie', sub { return $sessionID; } ); # oversimplified.. my $cgi = CGI->new; $cgi->param( -name => 'userid', -value => 'Bond' ); @@ -192,7 +190,7 @@ subtest 'checkauth() tests' => sub { @return = C4::Auth::checkauth( $cgi, 0, {} ); close STDOUT; } - is( $return[0], 'safe_exit_redirect', 'Changing to non-existent user causes a redirect to login' ); + is( $return[0], 'safe_exit_redirect', 'Changing to non-existent user causes a redirect to login'); }; -- 2.39.5