#!perl -w use strict; use warnings; use Qpsmtpd::Constants; my $r; sub register_tests { my $self = shift; eval 'use Mail::SPF'; return if $@; $self->register_test('test_is_in_relayclients', 2); $self->register_test('test_is_special_recipient', 5); } sub test_is_in_relayclients { my $self = shift; my $transaction = $self->qp->transaction; $self->qp->connection->remote_ip('192.1.7.8'); ok( ! $self->is_in_relayclients( $transaction ), "is_in_relayclients -"); $self->qp->connection->relay_client(0); $self->qp->connection->remote_ip('192.0.7.5'); my $client_ip = $self->qp->connection->remote_ip; ok( $client_ip, "relayclients ($client_ip)"); }; sub test_is_special_recipient { my $self = shift; my $transaction = $self->qp->transaction; my $address = Qpsmtpd::Address->new('user@example.com'); ok( ! $self->is_special_recipient( $address ), "not special"); foreach my $user ( qw/ postmaster abuse mailer-daemon root / ) { $address = Qpsmtpd::Address->new("$user\@example.com"); ok( $self->is_special_recipient( $address ), "special: $user"); }; };