mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-08-13 14:35:30 +00:00
76 lines
2.5 KiB
Perl
Executable File
76 lines
2.5 KiB
Perl
Executable File
#!/usr/bin/perl -T
|
|
|
|
use lib '.'; use lib 't';
|
|
use SATest; sa_t_init("mimeheader");
|
|
use Test::More tests => 18;
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%patterns = (
|
|
q{ 1.0 MIMEHEADER_TEST1 }, '',
|
|
q{ 1.0 MIMEHEADER_TEST2 }, '',
|
|
q{ 1.0 MATCH_NL_NONRAW }, '',
|
|
q{ 1.0 MATCH_NL_RAW }, '',
|
|
q{ 1.0 MIMEHEADER_FOUND1 }, '',
|
|
q{ 1.0 MIMEHEADER_FOUND2 }, '',
|
|
q{ 1.0 MIMEHEADER_CONCAT1 }, '',
|
|
q{ 1.0 MIMEHEADER_RANGE1 }, '',
|
|
q{ 1.0 MIMEHEADER_RANGE2 }, '',
|
|
q{ 1.0 MIMEHEADER_RANGE3 }, '',
|
|
q{ 1.0 MIMEHEADER_RANGE4 }, '',
|
|
q{ 1.0 MIMEHEADER_MULTI1 }, '',
|
|
q{ 1.0 MIMEHEADER_MULTIMETA1 }, '',
|
|
q{ 1.0 MIMEHEADER_MULTI2 }, '',
|
|
q{ 1.0 MIMEHEADER_MULTIMETA2 }, '',
|
|
q{ 1.0 MIMEHEADER_CAPTURE1 }, '',
|
|
qr/tag MIMECAP1 is now ready, value: text\/plain\n/, '',
|
|
);
|
|
|
|
%anti_patterns = (
|
|
'MIMEHEADER_NOTFOUND', '',
|
|
);
|
|
|
|
tstprefs (q{
|
|
|
|
mimeheader MIMEHEADER_TEST1 content-type =~ /application\/msword/
|
|
mimeheader MIMEHEADER_TEST2 content-type =~ m!APPLICATION/MSWORD!i
|
|
|
|
mimeheader MATCH_NL_NONRAW Content-Type =~ /msword; name/
|
|
mimeheader MATCH_NL_RAW Content-Type:raw =~ /msword;\n\tname/
|
|
|
|
mimeheader MIMEHEADER_NOTFOUND1 xyzzy =~ /foobar/
|
|
mimeheader MIMEHEADER_FOUND1 xyzzy =~ /foobar/ [if-unset: xyzfoobarxyz]
|
|
|
|
mimeheader MIMEHEADER_FOUND2 Content-Type !~ /xyzzy/
|
|
|
|
# ALL and concat
|
|
mimeheader MIMEHEADER_CONCAT1 ALL =~ /\nContent-Type: multipart\/mixed;.*?\nContent-Type: multipart\/alternative;.*?\nContent-Type: text\/plain/s
|
|
tflags MIMEHEADER_CONCAT1 concat
|
|
|
|
# range
|
|
mimeheader MIMEHEADER_RANGE1 Content-Type =~ /^multipart\/mixed;/
|
|
tflags MIMEHEADER_RANGE1 range=1
|
|
mimeheader MIMEHEADER_RANGE2 Content-Type =~ /^multipart\/alternative.*?text\/plain; charset="iso-8859-2"$/s
|
|
tflags MIMEHEADER_RANGE2 range=2-3 concat
|
|
mimeheader MIMEHEADER_RANGE3 Content-Type =~ /Jurek/
|
|
tflags MIMEHEADER_RANGE3 range=2- concat
|
|
mimeheader MIMEHEADER_RANGE4 Content-Type =~ /Jurek/
|
|
tflags MIMEHEADER_RANGE4 range=-10
|
|
|
|
# multiple
|
|
mimeheader MIMEHEADER_MULTI1 Content-Type =~ /-[82]/ # iso-8859-2, two matches
|
|
tflags MIMEHEADER_MULTI1 multiple
|
|
meta MIMEHEADER_MULTIMETA1 MIMEHEADER_MULTI1 == 2
|
|
mimeheader MIMEHEADER_MULTI2 ALL =~ /^X-/m # Count X- starting headers
|
|
tflags MIMEHEADER_MULTI2 multiple
|
|
meta MIMEHEADER_MULTIMETA2 MIMEHEADER_MULTI2 == 4
|
|
|
|
# named regex capture
|
|
mimeheader MIMEHEADER_CAPTURE1 Content-Type =~ /(?<MIMECAP1>text\/\w+)/
|
|
});
|
|
|
|
# Check debug needed for tag check
|
|
sarun ("-D check -L -t < data/nice/004 2>&1", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
|