The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;

# assume we are run from a subdirectory of the top-level SpamAssassin
# build dir
use lib '../lib';
use lib '../../lib';

use Apache::Test qw(:withtestmore);
use Test::More;
use Apache::TestUtil;
use Mail::SpamAssassin::Client;

plan tests => 7, need_apache 2, need_module 'perl';

ok 1, 'loaded';

# This doesn't support IPv6, obviously.  It doesn't only look weird,
# it *is* weird.  Apache::Test could use some improvements.
my $hostport = Apache::TestRequest::hostport(Apache::Test::config());
my ($host, $port) = split /:/, $hostport;

my $client = Mail::SpamAssassin::Client->new(
	{
		port     => $port,
		host     => $host,
		username => 'someuser',
	}
  )
  or BAIL_OUT('Mail::SpamAssassin::Client->new failed');

ok 2, 'started M::SA::Client';

SKIP: {
	eval 'use Mail::SpamAssassin 3.001004 ()';
	skip 'M::SA::C->ping is broken before v3.1.4', 1 if $@;
	ok $client->ping, 'ping';
}

my $gtube =
    "foo: bar\n\n"
  . 'XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X'
  . "\n";

my $result;

$result = $client->process($gtube);
ok($result, 'processed GTUBE message');
ok($result->{isspam}, 'GTUBE identified as spam by PROCESS');

$result = $client->check($gtube);
ok($result, 'checked GTUBE message');
ok($result->{isspam}, 'GTUBE identified as spam by CHECK');


# vim: ts=4 sw=4 noet