File: 03_logger.t

package info (click to toggle)
libdancer-perl 1.3521%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,460 kB
  • sloc: perl: 7,436; xml: 2,211; sh: 54; makefile: 32; sql: 5
file content (60 lines) | stat: -rw-r--r-- 1,678 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use Test::More import => ['!pass'];

use Dancer ':syntax';
use Dancer::FileUtils;

use File::Spec qw/catfile/;

plan skip_all => "File::Temp 0.22 required"
    unless Dancer::ModuleLoader->load( 'File::Temp', '0.22' );

plan tests => 15;

my $dir = File::Temp::tempdir(CLEANUP => 1, TMPDIR => 1);
set appdir => $dir;

eval { set logger => 'foobar' };
like($@, qr/unable to load logger/, 'invalid logger detected');

ok(set(logger => 'file'), 'file-based logger correctly set');

my $message = 'this is a test log message';

ok(debug($message), "debug sent");
ok(warning($message), "warning sent");
ok(error($message), "error sent");

my $logdir = Dancer::FileUtils::path(setting('appdir'), 'logs');
ok((-d $logdir), "log directory exists");

my $dev_logfile = Dancer::FileUtils::path($logdir, "development.log");
ok((-r $dev_logfile), "logfile exists");

open LOGFILE, '<', $dev_logfile;
my @content = <LOGFILE>;
close LOGFILE;

ok(grep(/debug \@.*$message/, @content), 'debug message found');
ok(grep(/warn \@.*$message/, @content), 'warning message found');
ok(grep(/error \@.*$message/, @content), 'error message found');

set environment => 'test';
set logger => 'file';

my $test_logfile = Dancer::FileUtils::path($logdir, "test.log");
ok((-r $test_logfile), "environment logfile exists");

open LOGFILE, '<', $test_logfile;
@content = <LOGFILE>;
close LOGFILE;

ok(set(log => 'warning'), 'log level set to warning');

ok(!debug($message), 'debug message is dropped');
ok(warning($message), 'warning message is logged');
ok(error($message), 'error message is logged');

Dancer::Logger::logger->{fh}->close;
unlink $dev_logfile;
unlink $test_logfile;
File::Temp::cleanup();