Bug 16492: Test that no_set_userenv will not set userenv if not exist yet

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit bb6e70fe7d)
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
This commit is contained in:
Jonathan Druart 2016-05-25 17:33:00 +01:00 committed by Frédéric Demians
parent 57086a241e
commit f69eeca6c4
1 changed files with 24 additions and 19 deletions

View File

@ -8,7 +8,7 @@ use Modern::Perl;
use CGI qw ( -utf8 );
use Test::MockModule;
use List::MoreUtils qw/all any none/;
use Test::More tests => 18;
use Test::More tests => 20;
use Test::Warn;
use t::lib::Mocks;
use t::lib::TestBuilder;
@ -27,6 +27,29 @@ $schema->storage->txn_begin;
my $builder = t::lib::TestBuilder->new;
my $dbh = C4::Context->dbh;
my $hash1 = hash_password('password');
my $hash2 = hash_password('password');
{ # tests no_set_userenv parameter
my $patron = $builder->build( { source => 'Borrower' } );
changepassword( $patron->{userid}, $patron->{borrowernumber}, $hash1 );
my $library = $builder->build(
{
source => 'Branch',
}
);
ok( checkpw( $dbh, $patron->{userid}, 'password', undef, undef, 1 ), 'checkpw returns true' );
is( C4::Context->userenv, undef, 'Userenv should be undef as required' );
C4::Context->_new_userenv('DUMMY SESSION');
C4::Context->set_userenv(0,0,0,'firstname','surname', $library->{branchcode}, 'Library 1', 0, '', '');
is( C4::Context->userenv->{branch}, $library->{branchcode}, 'Userenv gives correct branch' );
ok( checkpw( $dbh, $patron->{userid}, 'password', undef, undef, 1 ), 'checkpw returns true' );
is( C4::Context->userenv->{branch}, $library->{branchcode}, 'Userenv branch is preserved if no_set_userenv is true' );
ok( checkpw( $dbh, $patron->{userid}, 'password', undef, undef, 0 ), 'checkpw still returns true' );
isnt( C4::Context->userenv->{branch}, $library->{branchcode}, 'Userenv branch is overwritten if no_set_userenv is false' );
}
# get_template_and_user tests
{ # Tests for the language URL parameter
@ -172,23 +195,5 @@ my ( $template2 );
ok( ( any { 'OPACBaseURL' eq $_ } keys %{$template2->{VARS}} ),
'OPACBaseURL is in Staff template' );
my $hash1 = hash_password('password');
my $hash2 = hash_password('password');
ok(C4::Auth::checkpw_hash('password', $hash1), 'password validates with first hash');
ok(C4::Auth::checkpw_hash('password', $hash2), 'password validates with second hash');
my $patron = $builder->build( { source => 'Borrower' } );
changepassword( $patron->{userid}, $patron->{borrowernumber}, $hash1 );
my $library = $builder->build(
{
source => 'Branch',
}
);
C4::Context->set_userenv(0,0,0,'firstname','surname', $library->{branchcode}, 'Library 1', 0, '', '');
is( C4::Context->userenv->{branch}, $library->{branchcode}, 'Userenv gives correct branch' );
ok( checkpw( $dbh, $patron->{userid}, 'password', undef, undef, 1 ), 'checkpw returns true' );
is( C4::Context->userenv->{branch}, $library->{branchcode}, 'Userenv branch is preserved if no_set_userenv is true' );
ok( checkpw( $dbh, $patron->{userid}, 'password', undef, undef, 0 ), 'checkpw still returns true' );
isnt( C4::Context->userenv->{branch}, $library->{branchcode}, 'Userenv branch is overwritten if no_set_userenv is false' );