#!/usr/bin/perl
use lib "lib", "t";
BEGIN {
$::SKIP=!eval("require MIME::Types; 1");
}
use MIME::Lite;
use ExtUtils::TBone;
use Utils;
# Make a tester... here are 3 different alternatives:
my $T = typical ExtUtils::TBone; # standard log
$MIME::Lite::VANILLA = 1;
# Begin testing:
$T->begin(1);
if ($::SKIP) {
warn "#\n#Interaction with MIME::Types has not been tested\n#as it doesn't seem to be present.\n";
$T->ok(1,"MIME::Types not available.");
} elsif (eval { MIME::Types->VERSION(1.004) }) {
warn "#\n#Testing MIME::Types interaction\n";
my $msg;
$msg = MIME::Lite->new(
From =>'me@myhost.com',
To =>'you@yourhost.com',
Cc =>'some@other.com, some@more.com',
Subject =>'Helloooooo, nurse!',
Data =>"How's it goin', eh?"
);
# this test requires output in a particular order, so specify it
$msg->field_order(qw(Content-Transfer-Encoding
Content-Type
MIME-Version
From
To
Cc
Subject));
$msg->attach(
Type => 'AUTO',
Path => "./testin/test.html",
ReadNow => 1,
Filename => "test.html");
(my $ret=$msg->stringify)=~s/^Date:.*\n//m;
$T->msg("!!!MESSAGE\n".$ret."!!!/MESSAGE\n");
my $expect=<<'EOFEXPECT';
Content-Transfer-Encoding: 7bit
Content-Type: multipart/mixed; boundary="_----------=_0"
MIME-Version: 1.0
From: me@myhost.com
To: you@yourhost.com
Cc: some@other.com, some@more.com
Subject: Helloooooo, nurse!
This is a multi-part message in MIME format.
--_----------=_0
Content-Disposition: inline
Content-Length: 19
Content-Transfer-Encoding: binary
Content-Type: text/plain
How's it goin', eh?
--_----------=_0
Content-Disposition: inline; filename="test.html"
Content-Transfer-Encoding: 8bit
Content-Type: text/html; name="test.html"
This isn't really html. We are only checking the filename silly.
--_----------=_0--
EOFEXPECT
$T->msg("!!!EXPECT\n".$expect."!!!/EXPECT\n");
$T->ok_eq($ret,$expect);
} else {
warn "#\n#Your version of MIME::Types (".($MIME::Types::VERSION||'undef??').") is too old to use. Please upgrade to the latest.\n";
$T->ok(1,"Your version of MIME::Types (".($MIME::Types::VERSION||'undef??').") is too old to use. Please upgrade to the latest.");
}
$T->end;
__DATA__