1#!/usr/bin/env perl
2#
3# Test installing a log callback
4#
5
6use strict;
7use warnings;
8
9use Mail::Message::Test;
10use Mail::Reporter;
11
12use Test::More tests => 13;
13
14my ($thing, $level, @text);
15sub callback($$@) { ($thing, $level, @text) = @_ }
16
17my ($l, $t) = Mail::Reporter->defaultTrace(PROGRESS => \&callback);
18ok(defined $l);
19ok(defined $t);
20
21is($l, 'NONE',                      'string log level');
22cmp_ok($l, '==',  6,                'numeric log level');
23
24is($t, 'PROGRESS',                  'string trace level');
25cmp_ok($t, '==',  3,                'string trace level');
26
27Mail::Reporter->log(ERROR => 'one', 'two');
28
29is($thing, 'Mail::Reporter',        'class call');
30is($level, 'ERROR',                 'string trace level');
31cmp_ok(@text, '==', 1,              'text');
32is($text[0], "onetwo");
33
34($thing, $level, @text) = ();
35Mail::Reporter->log(NOTICE => 'three');
36ok(!defined $thing,                 'too low level, nothing');
37ok(!defined $level,                 'no level');
38cmp_ok(@text, '==', 0,              'no text');
39
40