mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-08-06 19:31:40 +00:00
103 lines
2.5 KiB
Raku
Executable File
103 lines
2.5 KiB
Raku
Executable File
#!/usr/bin/perl -T
|
|
|
|
use lib '.'; use lib 't';
|
|
use SATest; sa_t_init("relaycountry");
|
|
|
|
my $tests = 0;
|
|
my %has;
|
|
eval { require MaxMind::DB::Reader; $tests += 2; $has{GEOIP2} = 1 };
|
|
eval { require Geo::IP; $tests += 2; $has{GEOIP} = 1 };
|
|
eval { require IP::Country::Fast; $tests += 2; $has{FAST} = 1 };
|
|
eval { require IP::Country::DB_File;
|
|
if ($DB_File::db_ver > 1 and $DB_File::db_version > 1) {
|
|
$tests += 2;
|
|
$has{DB_FILE} = 1;
|
|
}
|
|
};
|
|
|
|
use Test::More;
|
|
|
|
plan skip_all => "No supported GeoDB module installed" unless $tests;
|
|
plan tests => $tests;
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
tstpre ("
|
|
loadplugin Mail::SpamAssassin::Plugin::RelayCountry
|
|
");
|
|
|
|
if (defined $has{GEOIP2}) {
|
|
tstprefs ("
|
|
geodb_module GeoIP2
|
|
geodb_search_path data/geodb
|
|
add_header all Relay-Country _RELAYCOUNTRY_
|
|
");
|
|
# Check for country of gmail.com mail server
|
|
%patterns = (
|
|
q{ X-Spam-Relay-Country: US }, '',
|
|
);
|
|
ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
clear_pattern_counters();
|
|
}
|
|
else {
|
|
diag "skipping MaxMind::DB::Reader (GeoIP2) tests (not installed)\n";
|
|
}
|
|
|
|
|
|
if (defined $has{GEOIP}) {
|
|
tstprefs ("
|
|
geodb_module Geo::IP
|
|
geodb_search_path data/geodb
|
|
add_header all Relay-Country _RELAYCOUNTRY_
|
|
");
|
|
# Check for country of gmail.com mail server
|
|
%patterns = (
|
|
q{ X-Spam-Relay-Country: US }, '',
|
|
);
|
|
ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
clear_pattern_counters();
|
|
}
|
|
else {
|
|
diag "skipping Geo::IP tests (not installed)\n";
|
|
}
|
|
|
|
|
|
if (defined $has{DB_FILE}) {
|
|
tstprefs ("
|
|
geodb_module DB_File
|
|
geodb_options country:data/geodb/ipcc.db
|
|
add_header all Relay-Country _RELAYCOUNTRY_
|
|
");
|
|
# Check for country of gmail.com mail server
|
|
%patterns = (
|
|
q{ X-Spam-Relay-Country: US }, '',
|
|
);
|
|
ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
clear_pattern_counters();
|
|
}
|
|
else {
|
|
diag "skipping IP::Country::DB_File tests (not installed or DB_File bdb version too old)\n";
|
|
}
|
|
|
|
|
|
if (defined $has{FAST}) {
|
|
tstprefs ("
|
|
geodb_module Fast
|
|
add_header all Relay-Country _RELAYCOUNTRY_
|
|
");
|
|
# Check for country of gmail.com mail server
|
|
%patterns = (
|
|
q{ X-Spam-Relay-Country: US }, '',
|
|
);
|
|
ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
clear_pattern_counters();
|
|
}
|
|
else {
|
|
diag "skipping IP::Country::Fast tests (not installed)\n";
|
|
}
|
|
|