]> Sergey Matveev's repositories - public-inbox.git/blob - t/filter_subjecttag.t
No ext_urls
[public-inbox.git] / t / filter_subjecttag.t
1 # Copyright (C) 2017-2021 all contributors <meta@public-inbox.org>
2 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
3 use strict;
4 use warnings;
5 use Test::More;
6 use PublicInbox::Eml;
7 use_ok 'PublicInbox::Filter::SubjectTag';
8
9 my $f = eval { PublicInbox::Filter::SubjectTag->new };
10 like($@, qr/tag not defined/, 'error without args');
11 $f = PublicInbox::Filter::SubjectTag->new('-tag', '[foo]');
12 is(ref $f, 'PublicInbox::Filter::SubjectTag', 'new object created');
13
14 my $mime = PublicInbox::Eml->new(<<EOF);
15 To: you <you\@example.com>
16 Subject: =?UTF-8?B?UmU6IFtmb29dIEVsw4PCqWFub3I=?=
17
18 EOF
19
20 $mime = $f->delivery($mime);
21 is($mime->header('Subject'), "Re: El\xc3\xa9anor", 'filtered with Re:');
22
23 $mime->header_str_set('Subject', '[FOO] bar');
24 $mime = $f->delivery($mime);
25 is($mime->header('Subject'), 'bar', 'filtered non-reply');
26
27 $f = PublicInbox::Filter::SubjectTag->new(-tag => '[sox-devel]');
28 my $eml = PublicInbox::Eml->new(<<EOF);
29 Subject: Re: [SoX-devel] =?utf-8?b?xaE?=
30
31 EOF
32 $eml = $f->delivery($eml);
33 my $s = $eml->header('Subject');
34 utf8::encode($s); # to octets
35 is($s, "Re: \xc5\xa1", 'subject filtered correctly');
36
37 done_testing();