use strict;
use warnings;
use Test::More tests => 22;
use_ok 'Email::MIME';
use_ok 'Email::MIME::Modifier';
my $email = Email::MIME->new(<<__MESSAGE__);
Content-Disposition: inline
Engine Engine number nine.
__MESSAGE__
isa_ok $email, 'Email::MIME';
is scalar($email->parts), 1, 'only one part';
$email->parts_set([ Email::MIME->new(<<__MESSAGE__), Email::MIME->new(<<__MESSAGE2__) ]);
Content-Type: text/plain
Part one, part one!
__MESSAGE__
Content-Transfer-Encoding: base64
UGFydCB0d28sIHBhcnQgdHdvIQo=
__MESSAGE2__
is scalar($email->parts), 2, 'two parts';
is +($email->parts)[1]->body, qq[Part two, part two!\n], 'part two decoded';
$email->parts_add([ $email->parts ]);
is scalar($email->parts), 4, 'four parts';
is +($email->parts)[1]->body, qq[Part two, part two!\n], 'part two decoded again';
is +($email->parts)[3]->body, qq[Part two, part two!\n], 'part four decoded';
$email->walk_parts(sub {
my $part = shift;
isa_ok $part, 'Email::MIME';
$part->encoding_set('base64') if $part->parts <= 1;
$part->body_set( "foo\nbar" ) if $part->parts <= 1;
});
$email->walk_parts(sub {
my $part = shift;
if ( $part->parts <= 1 ) {
is $part->header('Content-Transfer-Encoding'), 'base64', 'walkdown encoding worked';
is $part->body, "foo\nbar", 'walkdown body_set worked';
}
});