| #!/usr/bin/perl -T |
| |
| use lib '.'; use lib 't'; |
| use SATest; |
| |
| use Test::More; |
| plan skip_all => 'AWL SQL Tests not enabled.' if conf_bool('run_awl_sql_tests'); |
| plan tests => 11; |
| diag "Note: Failure may be due to an incorrect config"; |
| |
| sa_t_init("sql_based_whitelist"); |
| |
| my $dbconfig = ''; |
| foreach my $setting (qw( |
| user_awl_dsn |
| user_awl_sql_username |
| user_awl_sql_password |
| user_awl_sql_table |
| )) { |
| my $val = conf($setting); |
| $dbconfig .= "$setting $val\n" if $val; |
| } |
| |
| my $testuser = 'tstusr.'.$$.'.'.time(); |
| |
| tstprefs (" |
| use_auto_whitelist 1 |
| auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList |
| $dbconfig |
| user_awl_sql_override_username $testuser |
| "); |
| |
| # --------------------------------------------------------------------------- |
| |
| %is_nonspam_patterns = ( |
| q{ Subject: Re: [SAtalk] auto-whitelisting}, 'subj', |
| ); |
| %is_spam_patterns = ( |
| q{Subject: 4000 Your Vacation Winning !}, 'subj', |
| ); |
| %is_spam_patterns2 = ( |
| q{ X-Spam-Status: Yes}, 'status', |
| ); |
| |
| %patterns = %is_nonspam_patterns; |
| |
| ok(sarun ("--remove-addr-from-whitelist whitelist_test\@whitelist.spamassassin.taint.org", \&patterns_run_cb)); |
| |
| # 3 times, to get into the whitelist: |
| ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); |
| ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); |
| ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); |
| |
| # Now check |
| ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); |
| ok_all_patterns(); |
| |
| %patterns = %is_spam_patterns; |
| ok(sarun ("-L -t < data/spam/004", \&patterns_run_cb)); |
| ok_all_patterns(); |
| |
| %patterns = %is_spam_patterns2; |
| ok(sarun ("-L -t < data/spam/007", \&patterns_run_cb)); |
| ok_all_patterns(); |
| |
| ok(sarun ("--remove-addr-from-whitelist whitelist_test\@whitelist.spamassassin.taint.org", \&patterns_run_cb)); |
| |