//depot/projects/greylistd/t/01-basic.t#2 – edit change 110 (text) ·revision history
| 1 | #!/usr/bin/perl -w |
| 2 | use strict; |
| 3 | use Test::More tests => 7; |
| 4 | use File::Temp qw(tempdir); |
| 5 | |
| 6 | use_ok('Mail::Greylist'); |
| 7 | |
| 8 | my $dir = tempdir(CLEANUP => 1); |
| 9 | my $gl = Mail::Greylist->new(dbfile => "$dir/t.db", delay => 2); |
| 10 | isa_ok($gl, 'Mail::Greylist'); |
| 11 | |
| 12 | my %req = (client_address => '10.1.2.3', |
| 13 | sender => 'someone@example.com', |
| 14 | recipient => 'nullbyte@ttul.org'); |
| 15 | |
| 16 | like($gl->check(%req), qr/^DEFER/, 'first attempt is deferred'); |
| 17 | like($gl->check(%req), qr/^DEFER/, 'immediate retry still deferred'); |
| 18 | sleep 3; |
| 19 | is($gl->check(%req), 'DUNNO', 'retry after delay is accepted'); |
| 20 | |
| 21 | # same /24 counts as the same sender (job000004) |
| 22 | $req{client_address} = '10.1.2.99'; |
| 23 | is($gl->check(%req), 'DUNNO', 'same /24 is accepted'); |
| 24 | |
| 25 | my $gl2 = Mail::Greylist->new(dbfile => "$dir/t2.db", |
| 26 | whitelist => [ qr/^192\.168\./ ]); |
| 27 | is($gl2->check(%req, client_address => '192.168.0.5'), 'DUNNO', |
| 28 | 'whitelisted network skips the greylist'); |