######################################################################
# Test suite for Mail::DWIM
# by Mike Schilli <cpan@perlmeister.com>
######################################################################
use warnings;
use strict;
use Test::More;
use Mail::DWIM qw(mail);
use File::Temp qw(tempfile);
use Log::Log4perl qw(:easy);
#Log::Log4perl->easy_init($DEBUG);
plan tests => 10;
# no raise_error
my $rc = mail(
from => 'foo@foo.com',
to => 'bar@bar.com',
subject => 'subject test 1',
text => 'text test 2',
transport => 'smtp',
raise_error => 0,
);
ok(!$rc, "SMTP server missing");
like(Mail::DWIM::error(), qr/No smtp_server set/, "Error set in error()");
my($fh, $file) = tempfile( UNLINK=>1 );
$ENV{MAIL_DWIM_TEST} = $file;
#
mail(
from => 'foo@foo.com',
to => 'bar@bar.com',
subject => 'subject test 1',
text => 'text test 2',
);
my $data = Mail::DWIM::slurp($file);
like($data, qr/\n\ntext test 2/, "regular mail");
like($data, qr/^To: bar\@bar.com/m, "regular mail");
Mail::DWIM::blurt("", $file);
SKIP: {
if(! Mail::DWIM::html_requirements()) {
skip "@Mail::DWIM::HTML_MODULES not installed", 3;
}
# html test
mail(
from => 'foo@foo.com',
to => 'bar@bar.com',
subject => 'subject test 1',
text => 'text <i>test</i> 2',
html_compat => 1
);
$data = Mail::DWIM::slurp($file);
like($data, qr/^Subject: subject test 1/m, "html mail");
like($data, qr/^Content-Type: multipart\/alternative/m, "html mail");
like($data, qr/multi-part/m, "html mail");
};
Mail::DWIM::blurt("", $file);
my($tfh, $tmpfile) = tempfile(UNLINK => 1);
Mail::DWIM::blurt("text yaya", $tmpfile);
SKIP: {
if(! Mail::DWIM::attach_requirements()) {
skip "@Mail::DWIM::ATTACH_MODULES not installed", 3;
}
# attach test
mail(
from => 'foo@foo.com',
to => 'bar@bar.com',
subject => 'subject test 1',
text => 'here is a pic',
attach => [ $tmpfile ],
);
$data = Mail::DWIM::slurp($file);
like($data, qr/^Subject: subject test 1/m, "attach mail");
like($data, qr/^Content-Type: multipart\/mixed/m, "attach mail");
like($data, qr/multi-part/m, "attach mail");
};