From 30de51fa0c707322ce95a318df72ec5d7b5d3eb0 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 12 Apr 2019 01:11:19 +0000 Subject: [PATCH] Bug 22692: Unit tests 1 - Apply just this patch 2 - prove -v t/db_dependent/Auth.t 3 - Failure 4 - Apply second patch 5 - prove -v t/db_dependent/Auth.t 6 - Success Signed-off-by: Martin Renvoize Signed-off-by: Chris Cormack Signed-off-by: Nick Clemens --- t/db_dependent/Auth.t | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/t/db_dependent/Auth.t b/t/db_dependent/Auth.t index d59dfc3801..e1676744bd 100644 --- a/t/db_dependent/Auth.t +++ b/t/db_dependent/Auth.t @@ -138,6 +138,30 @@ subtest 'no_set_userenv parameter tests' => sub { isnt( C4::Context->userenv->{branch}, $library->branchcode, 'Userenv branch is overwritten if no_set_userenv is false' ); }; +subtest 'checkpw lockout tests' => sub { + + plan tests => 5; + + my $library = $builder->build_object( { class => 'Koha::Libraries' } ); + my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + my $password = 'password'; + t::lib::Mocks::mock_preference( 'RequireStrongPassword', 0 ); + t::lib::Mocks::mock_preference( 'FailedLoginAttempts', 1 ); + $patron->set_password({ password => $password }); + + my ( $checkpw, undef, undef ) = checkpw( $dbh, $patron->cardnumber, $password, undef, undef, 1 ); + ok( $checkpw, 'checkpw returns true with right password when logging in via cardnumber' ); + ( $checkpw, undef, undef ) = checkpw( $dbh, $patron->userid, "wrong_password", undef, undef, 1 ); + is( $checkpw, 0, 'checkpw returns false when given wrong password' ); + $patron = $patron->get_from_storage; + is( $patron->account_locked, 1, "Account is locked from failed login"); + ( $checkpw, undef, undef ) = checkpw( $dbh, $patron->userid, $password, undef, undef, 1 ); + is( $checkpw, undef, 'checkpw returns undef with right password when account locked' ); + ( $checkpw, undef, undef ) = checkpw( $dbh, $patron->cardnumber, $password, undef, undef, 1 ); + is( $checkpw, undef, 'checkpw returns undefwith right password when logging in via cardnumber if account locked' ); + +}; + # get_template_and_user tests { # Tests for the language URL parameter -- 2.39.5