aboutsummaryrefslogtreecommitdiff
path: root/t/tests
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2016-06-21 16:36:33 +0100
committerdakkar <dakkar@thenautilus.net>2016-06-21 16:55:21 +0100
commit34f5eaf6328cf9d6695d5e799e9258aa65c043e4 (patch)
treeadf623270f17437102ccececf0671a6e0a8d78b2 /t/tests
parentSietima::Message has subscribers as recipients (diff)
downloadSietima-34f5eaf6328cf9d6695d5e799e9258aa65c043e4.tar.gz
Sietima-34f5eaf6328cf9d6695d5e799e9258aa65c043e4.tar.bz2
Sietima-34f5eaf6328cf9d6695d5e799e9258aa65c043e4.zip
role: ReplyTo
per-user reply-to munging! also: * deliveries_are can now test whole messages * deliveries_are fails on extra recipients * easier-to-use Subscriber-from-HashRef coercion * nomail.t checks more
Diffstat (limited to 't/tests')
-rw-r--r--t/tests/sietima/role/nomail.t48
-rw-r--r--t/tests/sietima/role/replyto.t113
2 files changed, 147 insertions, 14 deletions
diff --git a/t/tests/sietima/role/nomail.t b/t/tests/sietima/role/nomail.t
index fe64e84..a0be192 100644
--- a/t/tests/sietima/role/nomail.t
+++ b/t/tests/sietima/role/nomail.t
@@ -5,20 +5,40 @@ use 5.024;
use lib 't/lib';
use Test::Sietima;
-my $s = make_sietima(
- with_traits => ['NoMail'],
- subscribers => [
- {
- raw_address => 'one@users.example.com',
- wants_mail => 0,
- },
- 'two@users.example.com',
- ],
-);
+subtest 'disabled' => sub {
+ my $s = make_sietima(
+ with_traits => ['NoMail'],
+ subscribers => [
+ {
+ address => 'one@users.example.com',
+ wants_mail => 0,
+ },
+ 'two@users.example.com',
+ ],
+ );
-test_sending(
- sietima => $s,
- to => ['two@users.example.com'],
-);
+ test_sending(
+ sietima => $s,
+ to => ['two@users.example.com'],
+ );
+};
+
+subtest 'enabled' => sub {
+ my $s = make_sietima(
+ with_traits => ['NoMail'],
+ subscribers => [
+ {
+ address => 'one@users.example.com',
+ wants_mail => 1,
+ },
+ 'two@users.example.com',
+ ],
+ );
+
+ test_sending(
+ sietima => $s,
+ to => ['one@users.example.com','two@users.example.com'],
+ );
+};
done_testing;
diff --git a/t/tests/sietima/role/replyto.t b/t/tests/sietima/role/replyto.t
new file mode 100644
index 0000000..1bd2d02
--- /dev/null
+++ b/t/tests/sietima/role/replyto.t
@@ -0,0 +1,113 @@
+#!perl
+use strict;
+use warnings;
+use 5.024;
+use lib 't/lib';
+use Test::Sietima;
+
+subtest 'disabled' => sub {
+ my $s = make_sietima(
+ with_traits => ['ReplyTo'],
+ munge_reply_to => 0,
+ subscribers => [
+ 'one@users.example.com',
+ 'two@users.example.com',
+ ],
+ );
+
+ test_sending(
+ sietima => $s,
+ mails => [
+ object {
+ call [ header_str => 'reply-to' ] => undef;
+ },
+ ],
+ );
+};
+
+subtest 'enabled' => sub {
+ my $s = make_sietima(
+ with_traits => ['ReplyTo'],
+ munge_reply_to => 1,
+ subscribers => [
+ 'one@users.example.com',
+ 'two@users.example.com',
+ ],
+ );
+
+ test_sending(
+ sietima => $s,
+ mails => [
+ object {
+ call [ header_str => 'reply-to' ] => $s->return_path->address;
+ },
+ ],
+ );
+};
+
+subtest 'enabled for some' => sub {
+ my $s = make_sietima(
+ with_traits => ['ReplyTo'],
+ munge_reply_to => 0,
+ subscribers => [
+ {
+ address => 'one@users.example.com',
+ munge_reply_to => 1,
+ },
+ 'two@users.example.com',
+ ],
+ );
+
+ test_sending(
+ sietima => $s,
+ mails => [
+ {
+ o => object {
+ call [ header_str => 'reply-to' ] => $s->return_path->address;
+ },
+ to => [ 'one@users.example.com' ],
+ },
+ {
+ o => object {
+ call [ header_str => 'reply-to' ] => undef;
+ },
+ to => [ 'two@users.example.com' ],
+ },
+ ],
+ );
+};
+
+
+subtest 'disabled for some' => sub {
+ my $s = make_sietima(
+ with_traits => ['ReplyTo'],
+ munge_reply_to => 1,
+ subscribers => [
+ {
+ address => 'one@users.example.com',
+ munge_reply_to => 0,
+ },
+ 'two@users.example.com',
+ ],
+ );
+
+ test_sending(
+ sietima => $s,
+ mails => [
+ {
+ o => object {
+ call [ header_str => 'reply-to' ] => $s->return_path->address;
+ },
+ to => [ 'two@users.example.com' ],
+ },
+ {
+ o => object {
+ call [ header_str => 'reply-to' ] => undef;
+ },
+ to => [ 'one@users.example.com' ],
+ },
+ ],
+ );
+};
+
+done_testing;