|
Lines 29-37
use Koha::Patrons;
Link Here
|
| 29 |
use t::lib::Mocks; |
29 |
use t::lib::Mocks; |
| 30 |
use t::lib::TestBuilder; |
30 |
use t::lib::TestBuilder; |
| 31 |
|
31 |
|
| 32 |
my $t = Test::Mojo->new('Koha::REST::V1'); |
|
|
| 33 |
my $schema = Koha::Database->new->schema; |
32 |
my $schema = Koha::Database->new->schema; |
| 34 |
my $builder = t::lib::TestBuilder->new(); |
33 |
my $builder = t::lib::TestBuilder->new(); |
|
|
34 |
my $t = Test::Mojo->new('Koha::REST::V1'); |
| 35 |
|
35 |
|
| 36 |
my $remote_address = '127.0.0.1'; |
36 |
my $remote_address = '127.0.0.1'; |
| 37 |
my $tx; |
37 |
my $tx; |
|
Lines 44-50
t::lib::Mocks::mock_preference( 'SessionStorage', 'tmp' );
Link Here
|
| 44 |
subtest 'token-based tests' => sub { |
44 |
subtest 'token-based tests' => sub { |
| 45 |
|
45 |
|
| 46 |
if ( can_load( modules => { 'Net::OAuth2::AuthorizationServer' => undef } ) ) { |
46 |
if ( can_load( modules => { 'Net::OAuth2::AuthorizationServer' => undef } ) ) { |
| 47 |
plan tests => 12; |
47 |
plan tests => 14; |
| 48 |
} |
48 |
} |
| 49 |
else { |
49 |
else { |
| 50 |
plan skip_all => 'Net::OAuth2::AuthorizationServer not available'; |
50 |
plan skip_all => 'Net::OAuth2::AuthorizationServer not available'; |
|
Lines 95-106
subtest 'token-based tests' => sub {
Link Here
|
| 95 |
ok( defined $embed, 'The embed hashref is generated and stashed' ); |
95 |
ok( defined $embed, 'The embed hashref is generated and stashed' ); |
| 96 |
is_deeply( $embed, { fund => {} }, 'The embed data structure is correct' ); |
96 |
is_deeply( $embed, { fund => {} }, 'The embed data structure is correct' ); |
| 97 |
|
97 |
|
|
|
98 |
my $mock = Test::MockModule->new('Koha::REST::V1::Patrons'); |
| 99 |
$mock->mock( list => sub { |
| 100 |
my $c = shift; |
| 101 |
return $c->render( |
| 102 |
status => 200, |
| 103 |
json => { userenv => C4::Context->userenv() } |
| 104 |
); |
| 105 |
}); |
| 106 |
|
| 107 |
$tx = $t->ua->build_tx(GET => '/api/v1/patrons'); |
| 108 |
$tx->req->headers->authorization("Bearer $access_token"); |
| 109 |
$t->request_ok($tx) |
| 110 |
->json_is('/userenv/number' => $patron->borrowernumber ); |
| 111 |
|
| 98 |
$schema->storage->txn_rollback; |
112 |
$schema->storage->txn_rollback; |
| 99 |
}; |
113 |
}; |
| 100 |
|
114 |
|
| 101 |
subtest 'cookie-based tests' => sub { |
115 |
subtest 'cookie-based tests' => sub { |
| 102 |
|
116 |
|
| 103 |
plan tests => 6; |
117 |
plan tests => 8; |
| 104 |
|
118 |
|
| 105 |
$schema->storage->txn_begin; |
119 |
$schema->storage->txn_begin; |
| 106 |
|
120 |
|
|
Lines 119-124
subtest 'cookie-based tests' => sub {
Link Here
|
| 119 |
is( ref($user), 'Koha::Patron', 'Stashed koha.user object type is Koha::Patron') and |
133 |
is( ref($user), 'Koha::Patron', 'Stashed koha.user object type is Koha::Patron') and |
| 120 |
is( $user->borrowernumber, $borrowernumber, 'The stashed user is the right one' ); |
134 |
is( $user->borrowernumber, $borrowernumber, 'The stashed user is the right one' ); |
| 121 |
|
135 |
|
|
|
136 |
my $mock = Test::MockModule->new('Koha::REST::V1::Patrons'); |
| 137 |
$mock->mock( list => sub { |
| 138 |
my $c = shift; |
| 139 |
return $c->render( |
| 140 |
status => 200, |
| 141 |
json => { userenv => C4::Context->userenv() } |
| 142 |
); |
| 143 |
}); |
| 144 |
|
| 145 |
$tx = $t->ua->build_tx(GET => '/api/v1/patrons'); |
| 146 |
$tx->req->cookies( { name => 'CGISESSID', value => $session_id } ); |
| 147 |
$tx->req->env( { REMOTE_ADDR => $remote_address } ); |
| 148 |
$t->request_ok($tx) |
| 149 |
->json_is('/userenv/number' => $borrowernumber ); |
| 150 |
|
| 122 |
subtest 'logged-out tests' => sub { |
151 |
subtest 'logged-out tests' => sub { |
| 123 |
plan tests => 3; |
152 |
plan tests => 3; |
| 124 |
|
153 |
|