|
Lines 104-109
subtest 'AuthenticatePatron test' => sub {
Link Here
|
| 104 |
}; |
104 |
}; |
| 105 |
|
105 |
|
| 106 |
|
106 |
|
|
|
107 |
subtest 'AuthenticatePatron Secure Password test' => sub { |
| 108 |
|
| 109 |
plan tests => 10; |
| 110 |
|
| 111 |
$schema->storage->txn_begin; |
| 112 |
|
| 113 |
my $plain_password = 'tomasito'; |
| 114 |
|
| 115 |
$builder->build({ |
| 116 |
source => 'Borrower', |
| 117 |
value => { |
| 118 |
cardnumber => undef, |
| 119 |
} |
| 120 |
}); |
| 121 |
|
| 122 |
my $borrower = $builder->build({ |
| 123 |
source => 'Borrower', |
| 124 |
value => { |
| 125 |
cardnumber => undef, |
| 126 |
password => Koha::AuthUtils::hash_password( $plain_password ) |
| 127 |
} |
| 128 |
}); |
| 129 |
|
| 130 |
my $query = new CGI; |
| 131 |
$query->param( 'username', $borrower->{userid}); |
| 132 |
$query->param( 'password', $plain_password); |
| 133 |
|
| 134 |
my $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); |
| 135 |
is( $reply->{id}, $borrower->{borrowernumber}, "userid and password - Patron authenticated" ); |
| 136 |
is( $reply->{code}, undef, "Error code undef"); |
| 137 |
|
| 138 |
t::lib::Mocks::mock_preference( 'minPasswordLength', 10 ); |
| 139 |
$reply = C4::ILSDI::Services::AuthenticatePatron( $query ); |
| 140 |
is( $reply->{id}, $borrower->{borrowernumber}, "existing user"); |
| 141 |
is( $reply->{code}, 'PatronPasswordNotSecure', "PasswordNotSecure" ); |
| 142 |
is( $reply->{securePasswordLabel}, 'too_short', "PasswordTooShort" ); |
| 143 |
is( $reply->{securePasswordPattern}, '.{10}', "Password must be at least 10 char" ); |
| 144 |
|
| 145 |
t::lib::Mocks::mock_preference( 'RequireStrongPassword', 1 ); |
| 146 |
t::lib::Mocks::mock_preference( 'minPasswordLength', 5 ); |
| 147 |
$reply = C4::ILSDI::Services::AuthenticatePatron( $query ); |
| 148 |
is( $reply->{id}, $borrower->{borrowernumber}, "existing user"); |
| 149 |
is( $reply->{code}, 'PatronPasswordNotSecure', "PasswordNotSecure" ); |
| 150 |
is( $reply->{securePasswordLabel}, 'too_weak', "PasswordTooWeak" ); |
| 151 |
is( $reply->{securePasswordPattern}, '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{5}', "Password must be strong (pattern match)" ); |
| 152 |
|
| 153 |
$schema->storage->txn_rollback; |
| 154 |
}; |
| 155 |
|
| 156 |
|
| 107 |
subtest 'GetPatronInfo/GetBorrowerAttributes test for extended patron attributes' => sub { |
157 |
subtest 'GetPatronInfo/GetBorrowerAttributes test for extended patron attributes' => sub { |
| 108 |
|
158 |
|
| 109 |
plan tests => 5; |
159 |
plan tests => 5; |
| 110 |
- |
|
|