-
Notifications
You must be signed in to change notification settings - Fork 4
/
Email.t
82 lines (71 loc) · 2 KB
/
Email.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
use strict;
use warnings;
use Test::More tests => 14;
use VegGuide::Email;
VegGuide::Email->TestMode();
{
Email::Send::Test->clear();
VegGuide::Email->Send(
to => 'to@example.com',
from => 'from@example.com',
subject => 'Testing',
body => 'Test',
);
my @emails = Email::Send::Test->emails();
is( scalar @emails, 1, 'one email was sent' );
my $email = $emails[0];
is(
$email->header('To'), 'to@example.com',
'check To address'
);
is(
$email->header('From'), 'from@example.com',
'check From address'
);
is(
$email->header('Reply-To'), q|"VegGuide.Org" <guide@vegguide.org>|,
'check Reply-To address'
);
is(
$email->header('Subject'), 'Testing',
'check Subject'
);
is(
$email->header('Content-Transfer-Encoding'), '8bit',
'check Content-Transfer-Encoding'
);
is(
$email->header('X-Sender'), 'VegGuide::Email',
'check X-Sender'
);
is(
$email->content_type(), q|text/plain; charset="UTF-8"|,
'check Content-Type'
);
is(
$email->header('Content-Disposition'), 'inline',
'check Content-Disposition'
);
ok( $email->header('Message-ID'), 'header has Message-ID' );
ok( $email->header('Date'), 'header has Date' );
is( $email->body(), 'Test', 'check body' );
}
{
Email::Send::Test->clear();
my $body = '12345679 ' x 20;
VegGuide::Email->Send(
to => 'to@example.com',
from => 'from@example.com',
subject => 'Testing',
body => $body,
);
my @emails = Email::Send::Test->emails();
is( scalar @emails, 1, 'one email was sent' );
my $sent_body = $emails[0]->body();
my $max_length = 0;
for my $line ( split /\n/, $sent_body ) {
$max_length = length $line
if length $line > $max_length;
}
ok( $max_length <= 72, 'no line in body is longer than 72 characters' );
}