#!/usr/bin/perl
use lib "lib", "t";
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;
$MIME::Lite::PARANOID = 1;
# Begin testing:
$T->begin(14);
# New:
my $from = 'me@myhost.com';
my $me = MIME::Lite->build(From => $from,
To => 'you@yourhost.com',
Subject => 'Me!',
Type => 'text/plain',
Data => "Hello!\n");
# Test "get" [4 tests]:
$T->ok_eq(scalar($me->get('From')),
$from,
"get: simple get of 'From'");
$T->ok_eq($me->get('From',0),
$from,
"get: indexed get(0) of 'From' gets first");
$T->ok_eq($me->get('From',-1),
$from,
"get: indexed get(-1) of 'From' gets first");
$T->ok_eq($me->get('FROM',0),
$from,
"get: indexed get(0) of 'FROM' gets From");
# Test "add": add one, then two [6 tests]:
$me->add('Received', 'sined');
$me->add('Received', ['seeled', 'delivered']);
$T->ok_eq(scalar($me->get('Received')),
'sined',
"add: scalar context get of 'Received'");
$T->ok_eq($me->get('Received',0),
'sined',
"add: scalar context get(0) of 'Received'");
$T->ok_eq($me->get('Received',1),
'seeled',
"add: scalar context get(1) of 'Received'");
$T->ok_eq($me->get('Received',2),
'delivered',
"add: scalar context get(2) of 'Received'");
$T->ok_eq($me->get('Received',-1),
'delivered',
"add: scalar context get(-1) of 'Received'");
$T->ok_eq(($me->get('Received'))[1],
'seeled',
"add: array context get of 'Received', indexed to 1'th elem");
# Test "delete" [1 test]:
$me->delete('RECEIVED');
$T->ok(!defined($me->get('Received')),
"delete: deletion of RECEIVED worked");
# Test "replace" [1 test]:
$me->replace('subject', "Hellooooo, nurse!");
$T->ok_eq($me->get('SUBJECT'),
"Hellooooo, nurse!",
"replace: replace of SUBJECT worked");
# Test "attr" [2 tests]:
$me->attr('content-type.charset', 'US-ASCII');
$T->ok_eq($me->attr('content-type.charset'),
'US-ASCII',
"attr: replace of charset worked");
#
my ($ct) = map {($_->[0] eq 'content-type') ? $_->[1] : ()} @{$me->fields};
$T->ok_eq($ct,
'text/plain; charset="US-ASCII"',
"attr: replace of charset worked on whole line");
$T->end;