Lines 32-38
my $t = Test::Mojo->new('Koha::REST::V1');
Link Here
|
32 |
|
32 |
|
33 |
subtest 'success tests' => sub { |
33 |
subtest 'success tests' => sub { |
34 |
|
34 |
|
35 |
plan tests => 10; |
35 |
plan tests => 2; |
36 |
|
36 |
|
37 |
$schema->storage->txn_begin; |
37 |
$schema->storage->txn_begin; |
38 |
|
38 |
|
Lines 40-78
subtest 'success tests' => sub {
Link Here
|
40 |
|
40 |
|
41 |
my $password = 'AbcdEFG123'; |
41 |
my $password = 'AbcdEFG123'; |
42 |
|
42 |
|
43 |
my $patron = $builder->build_object( |
43 |
my $patron = $builder->build_object( { class => 'Koha::Patrons', value => { userid => 'tomasito' } } ); |
44 |
{ class => 'Koha::Patrons', value => { userid => 'tomasito', flags => 2**4 } } ); |
44 |
$patron->set_password( { password => $password } ); |
45 |
$patron->set_password({ password => $password }); |
45 |
|
46 |
my $userid = $patron->userid; |
46 |
my $userid = $patron->userid; |
|
|
47 |
my $cardnumber = $patron->cardnumber; |
47 |
|
48 |
|
48 |
my $stash; |
49 |
my $stash; |
49 |
my $interface; |
50 |
my $interface; |
50 |
my $userenv; |
51 |
my $userenv; |
51 |
|
52 |
|
52 |
$t->app->hook(after_dispatch => sub { |
53 |
$t->app->hook( |
53 |
$stash = shift->stash; |
54 |
after_dispatch => sub { |
54 |
$interface = C4::Context->interface; |
55 |
$stash = shift->stash; |
55 |
$userenv = C4::Context->userenv; |
56 |
$interface = C4::Context->interface; |
56 |
}); |
57 |
$userenv = C4::Context->userenv; |
|
|
58 |
} |
59 |
); |
57 |
|
60 |
|
58 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
61 |
subtest '`userid` login' => sub { |
59 |
->status_is( 200, 'Successful authentication and permissions check' ); |
|
|
60 |
|
62 |
|
61 |
my $user = $stash->{'koha.user'}; |
63 |
plan tests => 10; |
62 |
ok( defined $user, 'The \'koha.user\' object is defined in the stash') and |
|
|
63 |
is( ref($user), 'Koha::Patron', 'Stashed koha.user object type is Koha::Patron') and |
64 |
is( $user->borrowernumber, $patron->borrowernumber, 'The stashed user is the right one' ); |
65 |
is( $userenv->{number}, $patron->borrowernumber, 'userenv set correctly' ); |
66 |
is( $interface, 'api', "Interface correctly set to \'api\'" ); |
67 |
|
64 |
|
68 |
$patron->flags(undef)->store; |
65 |
$patron->flags( 2**4 )->store; |
69 |
|
66 |
|
70 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
67 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
71 |
->status_is( 403, 'Successful authentication and not enough permissions' ) |
68 |
->status_is( 200, 'Successful authentication and permissions check' ); |
72 |
->json_is( |
69 |
|
73 |
'/error' => 'Authorization failure. Missing required permission(s).', |
70 |
my $user = $stash->{'koha.user'}; |
74 |
'Error message returned' |
71 |
ok( defined $user, 'The \'koha.user\' object is defined in the stash' ) |
75 |
); |
72 |
and is( ref($user), 'Koha::Patron', 'Stashed koha.user object type is Koha::Patron' ) |
|
|
73 |
and is( $user->borrowernumber, $patron->borrowernumber, 'The stashed user is the right one' ); |
74 |
is( $userenv->{number}, $patron->borrowernumber, 'userenv set correctly' ); |
75 |
is( $interface, 'api', "Interface correctly set to \'api\'" ); |
76 |
|
77 |
$patron->flags(undef)->store; |
78 |
|
79 |
$t->get_ok("//$userid:$password@/api/v1/patrons") |
80 |
->status_is( 403, 'Successful authentication and not enough permissions' )->json_is( |
81 |
'/error' => 'Authorization failure. Missing required permission(s).', |
82 |
'Error message returned' |
83 |
); |
84 |
}; |
85 |
|
86 |
subtest '`cardnumber` login' => sub { |
87 |
|
88 |
plan tests => 10; |
89 |
|
90 |
$patron->flags( 2**4 )->store; |
91 |
|
92 |
$t->get_ok("//$cardnumber:$password@/api/v1/patrons") |
93 |
->status_is( 200, 'Successful authentication and permissions check' ); |
94 |
|
95 |
my $user = $stash->{'koha.user'}; |
96 |
ok( defined $user, 'The \'koha.user\' object is defined in the stash' ) |
97 |
and is( ref($user), 'Koha::Patron', 'Stashed koha.user object type is Koha::Patron' ) |
98 |
and is( $user->borrowernumber, $patron->borrowernumber, 'The stashed user is the right one' ); |
99 |
is( $userenv->{number}, $patron->borrowernumber, 'userenv set correctly' ); |
100 |
is( $interface, 'api', "Interface correctly set to \'api\'" ); |
101 |
|
102 |
$patron->flags(undef)->store; |
103 |
|
104 |
$t->get_ok("//$cardnumber:$password@/api/v1/patrons") |
105 |
->status_is( 403, 'Successful authentication and not enough permissions' )->json_is( |
106 |
'/error' => 'Authorization failure. Missing required permission(s).', |
107 |
'Error message returned' |
108 |
); |
109 |
}; |
76 |
|
110 |
|
77 |
$schema->storage->txn_rollback; |
111 |
$schema->storage->txn_rollback; |
78 |
}; |
112 |
}; |
79 |
- |
|
|