t/freemail_welcome_block.t (104 lines of code) (raw):

#!/usr/bin/perl -T use lib '.'; use lib 't'; use SATest; sa_t_init("freemail"); use Test::More; plan tests => 23; # --------------------------------------------------------------------------- # Global tstprefs (" freemail_domains gmail.com "); ## Standard + welcomelist should not hit tstlocalrules (q{ freemail_import_welcomelist_auth 0 welcomelist_auth test@gmail.com header FREEMAIL_FROM eval:check_freemail_from() score FREEMAIL_FROM 3.3 header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply') score FREEMAIL_REPLYXX 3.3 header FREEMAIL_REPLYTO eval:check_freemail_replyto('replyto') score FREEMAIL_REPLYTO 3.3 header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply') score FREEMAIL_REPLYXX 3.3 header FREEMAIL_ENVFROM_END_DIGIT eval:check_freemail_header('EnvelopeFrom', '\d@') score FREEMAIL_ENVFROM_END_DIGIT 3.3 header FREEMAIL_REPLYTO_END_DIGIT eval:check_freemail_header('Reply-To', '\d@') score FREEMAIL_REPLYTO_END_DIGIT 3.3 header FREEMAIL_HDR_REPLYTO eval:check_freemail_header('Reply-To') score FREEMAIL_HDR_REPLYTO 3.3 }); %patterns = ( q{ 3.3 FREEMAIL_FROM }, '', ); %anti_patterns = ( # No Reply-To or body q{ FREEMAIL_REPLYTO }, '', q{ FREEMAIL_REPLYXX }, '', q{ FREEMAIL_ENVFROM_END_DIGIT }, '', q{ FREEMAIL_REPLYTO_END_DIGIT }, '', q{ FREEMAIL_HDR_REPLYTO }, '', ); ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb); ok_all_patterns(); clear_pattern_counters(); ## Now test with freemail_import_welcomelist_auth, should not hit %patterns = (); %anti_patterns = ( q{ FREEMAIL_FROM }, '', ); tstlocalrules (q{ freemail_import_welcomelist_auth 1 welcomelist_auth test@gmail.com header FREEMAIL_FROM eval:check_freemail_from() score FREEMAIL_FROM 3.3 }); ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb); ok_all_patterns(); ## From and Reply-To different %patterns = ( q{ 3.3 FREEMAIL_FROM }, '', q{ 3.3 FREEMAIL_REPLYTO }, '', q{ 3.3 FREEMAIL_REPLYXX }, '', q{ 3.3 FREEMAIL_ENVFROM_END_DIGIT }, '', q{ 3.3 FREEMAIL_REPLYTO_END_DIGIT }, '', q{ 3.3 FREEMAIL_HDR_REPLYTO }, '', ); %anti_patterns = (); tstlocalrules (q{ header FREEMAIL_FROM eval:check_freemail_from() score FREEMAIL_FROM 3.3 header FREEMAIL_REPLYTO eval:check_freemail_replyto('replyto') score FREEMAIL_REPLYTO 3.3 header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply') score FREEMAIL_REPLYXX 3.3 header FREEMAIL_ENVFROM_END_DIGIT eval:check_freemail_header('EnvelopeFrom', '\d@') score FREEMAIL_ENVFROM_END_DIGIT 3.3 header FREEMAIL_REPLYTO_END_DIGIT eval:check_freemail_header('Reply-To', '\d@') score FREEMAIL_REPLYTO_END_DIGIT 3.3 header FREEMAIL_HDR_REPLYTO eval:check_freemail_header('Reply-To') score FREEMAIL_HDR_REPLYTO 3.3 }); ok sarun ("-L -t < data/spam/freemail1", \&patterns_run_cb); ok_all_patterns(); ## Multiple Reply-To values, no email on body %patterns = ( q{ 3.3 FREEMAIL_REPLYTO }, '', q{ 3.3 FREEMAIL_REPLYXX }, '', q{ 3.3 FREEMAIL_REPLYTO_END_DIGIT }, '', q{ 3.3 FREEMAIL_HDR_REPLYTO }, '', ); %anti_patterns = (); tstlocalrules (q{ header FREEMAIL_REPLYTO eval:check_freemail_replyto('replyto') score FREEMAIL_REPLYTO 3.3 header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply') score FREEMAIL_REPLYXX 3.3 header FREEMAIL_REPLYTO_END_DIGIT eval:check_freemail_header('Reply-To', '\d@') score FREEMAIL_REPLYTO_END_DIGIT 3.3 header FREEMAIL_HDR_REPLYTO eval:check_freemail_header('Reply-To') score FREEMAIL_HDR_REPLYTO 3.3 }); ok sarun ("-L -t < data/spam/freemail2", \&patterns_run_cb); ok_all_patterns(); ## No Reply-To, another freemail in body %patterns = ( q{ 3.3 FREEMAIL_REPLYXX }, '', ); %anti_patterns = (); tstlocalrules (q{ header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply') score FREEMAIL_REPLYXX 3.3 }); ok sarun ("-L -t < data/spam/freemail3", \&patterns_run_cb); ok_all_patterns();