| #!/usr/bin/perl -T |
| |
| use lib '.'; use lib 't'; |
| use SATest; sa_t_init("whitelist_from"); |
| |
| use Test::More; |
| plan skip_all => 'Long running tests disabled' unless conf_bool('run_long_tests'); |
| plan tests => 32; |
| |
| # --------------------------------------------------------------------------- |
| |
| disable_compat "welcomelist_blocklist"; |
| |
| tstpre (" |
| loadplugin Mail::SpamAssassin::Plugin::AWL |
| "); |
| |
| tstprefs (" |
| header USER_IN_WELCOMELIST eval:check_from_in_welcomelist() |
| tflags USER_IN_WELCOMELIST userconf nice noautolearn |
| header USER_IN_DEF_WELCOMELIST eval:check_from_in_default_welcomelist() |
| tflags USER_IN_DEF_WELCOMELIST userconf nice noautolearn |
| meta USER_IN_WHITELIST (USER_IN_WELCOMELIST) |
| tflags USER_IN_WHITELIST userconf nice noautolearn |
| score USER_IN_WHITELIST -100 |
| score USER_IN_WELCOMELIST -0.01 |
| meta USER_IN_DEF_WHITELIST (USER_IN_DEF_WELCOMELIST) |
| tflags USER_IN_DEF_WHITELIST userconf nice noautolearn |
| score USER_IN_DEF_WHITELIST -15 |
| score USER_IN_DEF_WELCOMELIST -0.01 |
| def_whitelist_from_rcvd *\@paypal.com paypal.com |
| def_whitelist_from_rcvd *\@paypal.com ebay.com |
| def_whitelist_from_rcvd mumble\@example.com example.com |
| whitelist_from_rcvd foo\@example.com spamassassin.org |
| whitelist_from_rcvd foo\@example.com example.com |
| whitelist_from_rcvd bar\@example.com example.com |
| whitelist_allows_relays bar\@example.com |
| whitelist_from baz\@example.com |
| whitelist_from bam\@example.com |
| unwhitelist_from bam\@example.com |
| unwhitelist_from_rcvd mumble\@example.com |
| "); |
| |
| # tests 1 - 4 does whitelist_from work? |
| %patterns = ( |
| q{ -100 USER_IN_WHITELIST }, '', |
| ); |
| |
| %anti_patterns = ( |
| q{ FORGED_IN_WHITELIST }, '', |
| q{ USER_IN_DEF_WHITELIST }, '', |
| q{ FORGED_IN_DEF_WHITELIST }, '', |
| ); |
| sarun ("-L -t < data/nice/008", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| # tests 5 - 8 does whitelist_from_rcvd work? |
| sarun ("-L -t < data/nice/009", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| # tests 9 - 12 second relay specified for same addr in whitelist_from_rcvd |
| sarun ("-L -t < data/nice/010", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| %patterns = ( |
| q{ -15 USER_IN_DEF_WHITELIST }, '', |
| ); |
| |
| %anti_patterns = ( |
| q{ USER_IN_WHITELIST }, '', |
| q{ FORGED_IN_WHITELIST }, '', |
| q{ FORGED_IN_DEF_WHITELIST }, '', |
| ); |
| |
| # tests 13 - 16 does def_whitelist_from_rcvd work? |
| sarun ("-L -t < data/nice/011", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| # tests 17 - 20 second relay specified for same addr in def_whitelist_from_rcvd |
| sarun ("-L -t < data/nice/012", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| %patterns = (); |
| |
| %anti_patterns = ( |
| q{ USER_IN_WHITELIST }, '', |
| q{ FORGED_IN_WHITELIST }, '', |
| q{ USER_IN_DEF_WHITELIST }, '', |
| q{ FORGED_IN_DEF_WHITELIST }, '', |
| ); |
| # tests 21 - 24 does whitelist_allows_relays suppress the forged rule without |
| # putting the address on the whitelist? |
| sarun ("-L -t < data/nice/013", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| # tests 25 - 28 does unwhitelist_from work? |
| sarun ("-L -t < data/nice/014", \&patterns_run_cb); |
| ok_all_patterns(); |
| |
| # tests 29 - 32 does unwhitelist_from_rcvd work? |
| sarun ("-L -t < data/nice/015", \&patterns_run_cb); |
| ok_all_patterns(); |
| |