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
| | # Copyright (C) 2016-2019 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
use strict;
use warnings;
use Test::More;
use Email::MIME;
use_ok 'PublicInbox::Filter::Base';
{
my $f = PublicInbox::Filter::Base->new;
ok($f, 'created stock object');
ok(defined $f->{reject_suffix}, 'rejected suffix redefined');
is(ref($f->{reject_suffix}), 'Regexp', 'reject_suffix should be a RE');
}
{
my $f = PublicInbox::Filter::Base->new(reject_suffix => undef);
ok($f, 'created base object q/o reject_suffix');
ok(!defined $f->{reject_suffix}, 'reject_suffix not defined');
}
{
my $f = PublicInbox::Filter::Base->new;
my $html_body = "<html><body>hi</body></html>";
my $parts = [
Email::MIME->create(
attributes => {
content_type => 'text/xhtml; charset=UTF-8',
encoding => 'base64',
},
body => $html_body,
),
Email::MIME->create(
attributes => {
content_type => 'text/plain',
encoding => 'quoted-printable',
},
body => 'hi = "bye"',
)
];
my $email = Email::MIME->create(
header_str => [
From => 'a@example.com',
Subject => 'blah',
'Content-Type' => 'multipart/alternative'
],
parts => $parts,
);
is($f->delivery($email), 100, "xhtml rejected");
}
{
my $f = PublicInbox::Filter::Base->new;
my $parts = [
Email::MIME->create(
attributes => {
content_type => 'application/vnd.ms-excel',
encoding => 'base64',
},
body => 'junk',
),
Email::MIME->create(
attributes => {
content_type => 'text/plain',
encoding => 'quoted-printable',
},
body => 'junk',
)
];
my $email = Email::MIME->create(
header_str => [
From => 'a@example.com',
Subject => 'blah',
'Content-Type' => 'multipart/mixed'
],
parts => $parts,
);
is($f->delivery($email), 100, 'proprietary format rejected on glob');
}
done_testing();
|