blob: ee29c4a539c074facb18906bb90d906a1ab120d5 [file] [log] [blame]
#!/usr/bin/perl -T
use lib '.'; use lib 't';
use SATest; sa_t_init("duplicates");
use Test::More tests => 21;
$ENV{'LANGUAGE'} = $ENV{'LC_ALL'} = 'C'; # a cheat, but we need the patterns to work
# ---------------------------------------------------------------------------
%patterns = (
q{ FOO1 } => '', # use default names
q{ FOO2 } => '',
q{ HDR1 } => '',
q{ HDR2 } => '',
q{ META1 } => '',
q{ META2 } => '',
q{ META3 } => '',
q{ HDREVAL1 } => '',
q{ HDREVAL2 } => '',
q{ ran body rule FOO1 ======> got hit } => '',
q{ ran header rule HDR1 ======> got hit } => '',
q{ rules: FOO1 merged duplicates: FOO2 } => '',
q{ rules: HDR1 merged duplicates: HDR2 } => '',
q{ rules: META3 merged duplicates: META1 } => '',
q{ ran eval rule HDREVAL1 ======> got hit } => '',
q{ ran eval rule HDREVAL2 ======> got hit } => '',
);
%anti_patterns = (
q{ FOO3 } => '',
q{ RAWFOO } => '',
q{ ran body rule FOO2 ======> got hit } => '',
q{ ran header rule HDR2 ======> got hit } => '',
);
tstprefs (qq{
$default_cf_lines
loadplugin Mail::SpamAssassin::Plugin::Test
body FOO1 /click here and e= nter your/i
describe FOO1 Test rule
body FOO2 /click here and e= nter your/i
describe FOO2 Test rule
# should not be found, not a dup (/i)
body FOO3 /click here and e= nter your/
describe FOO3 Test rule
# should not be found, not dup since different type
rawbody RAWFOO /click here and e= nter your/i
describe RAWFOO Test rule
header HDR1 Subject =~ /stained/
describe HDR1 Test rule
header HDR2 Subject =~ /stained/
describe HDR2 Test rule
# should not be merged -- eval rules (bug 5959)
header HDREVAL1 eval:check_test_plugin()
describe HDREVAL1 Test rule
header HDREVAL2 eval:check_test_plugin()
describe HDREVAL2 Test rule
meta META1 (1)
describe META1 Test rule
meta META2 (META1 && META3)
describe META2 Test rule
meta META3 (1)
priority META3 -500
describe META3 Test rule
});
sarun ("-L -t -D < data/spam/006 2>&1", \&patterns_run_cb);
ok ok_all_patterns();