added some tests for data_respond
This commit is contained in:
parent
e9497d7e51
commit
d6fabb2b40
@ -23,6 +23,7 @@ __helo_no_host();
|
|||||||
__helo_repeat_host();
|
__helo_repeat_host();
|
||||||
__helo_respond('helo_respond');
|
__helo_respond('helo_respond');
|
||||||
__helo_respond('ehlo_respond');
|
__helo_respond('ehlo_respond');
|
||||||
|
__data_respond('data_respond');
|
||||||
|
|
||||||
done_testing();
|
done_testing();
|
||||||
|
|
||||||
@ -79,14 +80,14 @@ sub __helo_respond {
|
|||||||
undef,
|
undef,
|
||||||
"$func DONE",
|
"$func DONE",
|
||||||
);
|
);
|
||||||
|
|
||||||
$smtpd->$func(DENY, ["Very bad hair day"], ['helo.example.com']);
|
$smtpd->$func(DENY, ["Very bad hair day"], ['helo.example.com']);
|
||||||
is_deeply(
|
is_deeply(
|
||||||
$smtpd->{_response},
|
$smtpd->{_response},
|
||||||
[550, 'Very bad hair day'],
|
[550, 'Very bad hair day'],
|
||||||
"$func DENY",
|
"$func DENY",
|
||||||
);
|
);
|
||||||
|
|
||||||
$smtpd->$func(DENYSOFT, ["Bad hair day"], ['helo.example.com']),
|
$smtpd->$func(DENYSOFT, ["Bad hair day"], ['helo.example.com']),
|
||||||
is_deeply(
|
is_deeply(
|
||||||
$smtpd->{_response},
|
$smtpd->{_response},
|
||||||
@ -114,3 +115,60 @@ sub __helo_respond {
|
|||||||
|
|
||||||
#warn Data::Dumper::Dumper($smtpd->{_response});
|
#warn Data::Dumper::Dumper($smtpd->{_response});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub __data_respond {
|
||||||
|
is( $smtpd->data_respond(DONE), 1, 'data_respond, DONE' );
|
||||||
|
is( $smtpd->data_respond(DENY), 1, 'data_respond, DENY' );
|
||||||
|
is( $smtpd->data_respond(DENYSOFT), 1, 'data_respond, DENYSOFT' );
|
||||||
|
is( $smtpd->data_respond(DENY_DISCONNECT), 1, 'data_respond, DENY_DISCONNECT' );
|
||||||
|
is( $smtpd->data_respond(DECLINED), 1, 'data_respond, DECLINED' );
|
||||||
|
|
||||||
|
# the tests above all return 1 early due to DATA checks. Once the
|
||||||
|
# transaction is populated, only checks that fail early will return.
|
||||||
|
($smtpd) = _new_transaction();
|
||||||
|
is( $smtpd->data_respond(DONE), 1, 'data_respond, DONE' );
|
||||||
|
|
||||||
|
($smtpd) = _new_transaction();
|
||||||
|
is( $smtpd->data_respond(DENY), 1, 'data_respond, DENY' );
|
||||||
|
|
||||||
|
($smtpd) = _new_transaction();
|
||||||
|
is( $smtpd->data_respond(DENYSOFT), 1, 'data_respond, DENYSOFT' );
|
||||||
|
|
||||||
|
($smtpd) = _new_transaction();
|
||||||
|
is( $smtpd->data_respond(DENY_DISCONNECT), 1, 'data_respond, DENY_DISCONNECT' );
|
||||||
|
|
||||||
|
# data_respond also runs the data_post hooks, so this will require a bit
|
||||||
|
# more work to get under test...
|
||||||
|
#($smtpd) = _new_transaction();
|
||||||
|
#is( $smtpd->data_respond(DECLINED, _test_message()), 1, 'data_respond, DECLINED' );
|
||||||
|
}
|
||||||
|
|
||||||
|
sub _new_transaction () {
|
||||||
|
my ($smtpd, $conn) = Test::Qpsmtpd->new_conn();
|
||||||
|
$smtpd->transaction->sender(Qpsmtpd::Address->new('sender@example.com'));
|
||||||
|
$smtpd->transaction->add_recipient(Qpsmtpd::Address->new('recip@example.com'));
|
||||||
|
return $smtpd;
|
||||||
|
};
|
||||||
|
|
||||||
|
sub _test_message {
|
||||||
|
# with \r\n (aka CRLF) endings, as a proper SMTP formatted email would
|
||||||
|
return <<"EOM"
|
||||||
|
From: Jennifer <jennifer\@example.com>\r
|
||||||
|
Subject: Persian New Year's Soup with Beans, Noodles, and Herbs Recipe at Epicurious.com\r
|
||||||
|
Date: Sun, 02 Oct 2011 14:06:06 -0700\r
|
||||||
|
Message-id: <67CC87B2-095C-45C6-BF9B-5A589AD6C264\@example.com>\r
|
||||||
|
To: Matt <matt\@example.net>\r
|
||||||
|
\r
|
||||||
|
\r
|
||||||
|
--Boundary_(ID_lBFzGVLdxsIk2GYiWhQRRQ)\r
|
||||||
|
Content-type: text/plain; CHARSET=US-ASCII\r
|
||||||
|
Content-transfer-encoding: 7BIT\r
|
||||||
|
\r
|
||||||
|
This sounds good. Can we do have it this week?\r
|
||||||
|
\r
|
||||||
|
http://www.epicurious.com/recipes/food/views/Persian-New-Years-Soup-with-Beans-Noodles-and-Herbs-em-Ash-e-reshteh-em-363446\r
|
||||||
|
\r
|
||||||
|
.\r
|
||||||
|
EOM
|
||||||
|
;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user