View | Details | Raw Unified | Return to bug 10277
Collapse All | Expand All

(-)a/C4/Context.pm (-3 / +7 lines)
Lines 1242-1251 sub tz { Link Here
1242
=cut
1242
=cut
1243
1243
1244
sub IsSuperLibrarian {
1244
sub IsSuperLibrarian {
1245
    my $userenv = C4::Context->userenv
1245
    my $userenv = C4::Context->userenv;
1246
      || carp("C4::Context->userenv not defined!");
1247
1246
1248
    return $userenv->{flags} % 2 == 1;
1247
    unless ( $userenv and exists $userenv->{flags} ) {
1248
      carp("C4::Context->userenv not defined!");
1249
      return 0;
1250
    }
1251
1252
    return $userenv->{flags} % 2;
1249
}
1253
}
1250
1254
1251
1;
1255
1;
(-)a/t/Context.t (-4 / +25 lines)
Lines 1-10 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
use strict;
2
3
use warnings;
3
use Modern::Perl;
4
use DBI;
4
use DBI;
5
use Test::More tests => 1;
5
use Test::More tests => 6;
6
use Test::MockModule;
6
use Test::MockModule;
7
7
8
BEGIN {
8
BEGIN {
9
    use_ok('C4::Context');
9
    use_ok('C4::Context');
10
}
10
}
11
- 
11
12
my $context = new Test::MockModule('C4::Context');
13
my $userenv = {};
14
15
$context->mock('userenv', sub {
16
    return $userenv;
17
});
18
19
local $SIG{__WARN__} = sub { die $_[0] };
20
21
eval { C4::Context::IsSuperLibrarian(); };
22
like ( $@, qr/not defined/, "IsSuperLibrarian logs an error if no userenv is defined" );
23
24
$userenv->{flags} = 42;
25
my $is_super_librarian = eval{ C4::Context::IsSuperLibrarian() };
26
is ( $@, q||, "IsSuperLibrarian does not log an error if userenv is defined" );
27
is ( $is_super_librarian, 0, "With flag=42, it is not a super librarian" );
28
29
$userenv->{flags} = 421;
30
$is_super_librarian = eval{ C4::Context::IsSuperLibrarian() };
31
is ( $@, q||, "IsSuperLibrarian does not log an error if userenv is defined" );
32
is ( $is_super_librarian, 1, "With flag=1, it is a super librarian" );

Return to bug 10277