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