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

(-)a/t/Logger.t (-24 / +18 lines)
Lines 19-48 use Modern::Perl; Link Here
19
19
20
use C4::Context;
20
use C4::Context;
21
use Koha::Logger;
21
use Koha::Logger;
22
use t::lib::Mocks;
22
23
23
use File::Temp qw/tempfile/;
24
use File::Temp qw/tempfile/;
24
use Test::MockModule;
25
use Test::More tests => 1;
25
use Test::More tests => 1;
26
use Test::Warn;
26
use Test::Warn;
27
27
28
subtest 'Test01 -- Simple tests for Koha::Logger' => sub {
28
subtest 'Test01 -- Simple tests for Koha::Logger' => sub {
29
    plan tests => 8;
29
    plan tests => 6;
30
    test01();
31
};
32
33
sub test01 {
34
30
35
    my $ret;
31
    my $ret;
36
    my $mContext = new Test::MockModule('C4::Context');
32
    t::lib::Mocks::mock_config('log4perl_conf', undef);
37
    $mContext->mock( 'config', sub { return; } );
38
33
39
    my $logger= Koha::Logger->get;
34
    eval { Koha::Logger->get };
40
    is( exists $logger->{logger}, '', 'No log4perl config');
35
    ok( $@, 'Logger did not init correctly without config');
41
    my $d= $logger->debug('Message 1');
42
    is( $d, undef, 'No return value for debug call');
43
36
44
    my $log = mytempfile();
37
    my $log = mytempfile();
45
    my $conf = mytempfile( <<"HERE"
38
    my $config_file = mytempfile( <<"HERE"
46
log4perl.logger.intranet = WARN, INTRANET
39
log4perl.logger.intranet = WARN, INTRANET
47
log4perl.appender.INTRANET=Log::Log4perl::Appender::File
40
log4perl.appender.INTRANET=Log::Log4perl::Appender::File
48
log4perl.appender.INTRANET.filename=$log
41
log4perl.appender.INTRANET.filename=$log
Lines 51-71 log4perl.appender.INTRANET.layout=PatternLayout Link Here
51
log4perl.appender.INTRANET.layout.ConversionPattern=[%d] [%p] %m %l %n
44
log4perl.appender.INTRANET.layout.ConversionPattern=[%d] [%p] %m %l %n
52
HERE
45
HERE
53
    );
46
    );
54
    $mContext->mock( 'config', sub { return $conf; } );
47
55
    $logger= Koha::Logger->get({ interface => 'intranet' });
48
    t::lib::Mocks::mock_config('log4perl_conf', $config_file);
49
50
    system("chmod 400 $log");
51
    eval { Koha::Logger->get };
52
    ok( $@, 'Logger did not init correctly without permission');
53
54
    system("chmod 700 $log");
55
    my $logger= Koha::Logger->get({ interface => 'intranet' });
56
    is( exists $logger->{logger}, 1, 'Log4perl config found');
56
    is( exists $logger->{logger}, 1, 'Log4perl config found');
57
    is( $logger->warn('Message 2'), 1, 'Message 2 returned a value' );
57
    is( $logger->warn('Message 1'), 1, '->warn returned a value' );
58
    warning_is { $ret = $logger->catastrophe }
58
    warning_is { $ret = $logger->catastrophe }
59
               "ERROR: Unsupported method catastrophe",
59
               "ERROR: Unsupported method catastrophe",
60
               "Undefined method raises warning";
60
               "Undefined method raises warning";
61
    is( $ret, undef, "'catastrophe' method undefined");
61
    is( $ret, undef, "'catastrophe' method undefined");
62
    system("chmod 400 $log");
62
63
    warnings_are { $ret = $logger->warn('Message 3') }
63
};
64
                 [ "Log file not writable for log4perl",
65
                   "warn: Message 3" ],
66
                 "Warnings raised if log file is not writeable";
67
    is( $ret, undef, 'Message 3 returned undef' );
68
}
69
64
70
sub mytempfile {
65
sub mytempfile {
71
    my ( $fh, $fn ) = tempfile( SUFFIX => '.logger.test', UNLINK => 1 );
66
    my ( $fh, $fn ) = tempfile( SUFFIX => '.logger.test', UNLINK => 1 );
72
- 

Return to bug 25172