#!/usr/bin/perl -w
use strict;
# The test script is purely created to cover all the branches and
# conditionals that Devel::Cover highlighted weren't tested.
use Test::More tests => 14;
use Mail::File;
use File::Path;
my $path = 'mailfiles';
my $temp = 'mailfiles/mail-XXXXXX.eml';
# ensure a path is auto-created
my $mail = Mail::File->new(template => $temp);
ok(!-d $path);
# ensure unknown subs are caught
eval { $mail->BadHeader('blah'); };
like($@,qr/Unknown sub Mail::File::BadHeader/);
# check X-Header settings
my $retval = $mail->XHeader('Z-Header-1','This is a test');
is($retval, undef);
$retval = $mail->XHeader('X-Header-1','This is a test');
is($retval, 'This is a test');
$retval = $mail->XHeader('X-Header-1');
is($retval, 'This is a test');
# check we can't send without the default 4 fields
ok(!-d $path);
is($mail->send(), undef);
ok(-d $path);
$mail->From('me@example.com');
is($mail->send(), undef);
$mail->To('you@example.com');
is($mail->send(), undef);
$mail->Subject('Blah Blah Blah');
is($mail->send(), undef);
$mail->Body('Yadda Yadda Yadda');
my $file = $mail->send();
is(-r $file,1);
rmtree $path;
# check we can create a local file, from the default template
$mail = Mail::File->new();
$mail->From('me@example.com');
$mail->To('you@example.com');
$mail->Subject('Blah Blah Blah');
$mail->Body('Yadda Yadda Yadda');
$file = $mail->send();
is(-r $file,1);
unlink $file;
# check we can create a local file in the current directory
$temp = 'test-XXXXXX.eml';
$mail = Mail::File->new(template => $temp);
$mail->From('me@example.com');
$mail->To('you@example.com');
$mail->Subject('Blah Blah Blah');
$mail->Body('Yadda Yadda Yadda');
$file = $mail->send();
is(-r $file,1);
unlink $file;