aboutsummaryrefslogtreecommitdiff
path: root/t/tests/sietima/role/headers.t
diff options
context:
space:
mode:
Diffstat (limited to 't/tests/sietima/role/headers.t')
-rw-r--r--t/tests/sietima/role/headers.t60
1 files changed, 50 insertions, 10 deletions
diff --git a/t/tests/sietima/role/headers.t b/t/tests/sietima/role/headers.t
index 9f3e664..6dcfff3 100644
--- a/t/tests/sietima/role/headers.t
+++ b/t/tests/sietima/role/headers.t
@@ -12,31 +12,46 @@ package Sietima::Role::ForTesting {
$self->$orig->%*,
test1 => AddressFromStr->coerce('name <someone@example.com>'),
'test+2' => 'http://test.example.com',
+ test3 => ['name (comment) <other@example.com>','mailto:thing@example.com' ],
};
};
};
-my $s = make_sietima(
- with_traits => ['Headers','WithOwner','ForTesting'],
- name => 'test-list',
- owner => 'owner@example.com',
- subscribers => [
- 'one@users.example.com',
- 'two@users.example.com',
- ],
-);
+package Sietima::Role::ForTesting2 {
+ use Moo::Role;
+ use Sietima::Policy;
+ use Sietima::Types qw(AddressFromStr);
+
+ around list_addresses => sub($orig,$self) {
+ return {
+ $self->$orig->%*,
+ post => 0,
+ };
+ };
+};
subtest 'list headers should be added' => sub {
+ my $s = make_sietima(
+ with_traits => ['Headers','WithOwner','ForTesting'],
+ name => 'test-list',
+ owner => 'owner@example.com',
+ subscribers => [
+ 'one@users.example.com',
+ 'two@users.example.com',
+ ],
+ );
+
test_sending(
sietima => $s,
mails => [
object {
- call sub { +{ shift->header_str_pairs } } => hash {
+ call sub { +{ shift->header_raw_pairs } } => hash {
field 'List-Id' => 'test-list <sietima-test.list.example.com>';
field 'List-Owner' => '<mailto:owner@example.com>';
field 'List-Post' => '<mailto:sietima-test@list.example.com>';
field 'List-Test1' => '<mailto:someone@example.com>';
field 'List-Test-2' => '<http://test.example.com>';
+ field 'List-Test3' => '<mailto:other@example.com> (comment), <mailto:thing@example.com>';
field 'Date' => D();
field 'MIME-Version' => D();
@@ -53,4 +68,29 @@ subtest 'list headers should be added' => sub {
);
};
+subtest 'no-post list' => sub {
+ my $s = make_sietima(
+ with_traits => ['Headers','WithOwner','ForTesting2'],
+ name => 'test-list',
+ owner => 'owner@example.com',
+ subscribers => [
+ 'one@users.example.com',
+ 'two@users.example.com',
+ ],
+ );
+
+ test_sending(
+ sietima => $s,
+ mails => [
+ object {
+ call sub { +{ shift->header_raw_pairs } } => hash {
+ field 'List-Post' => 'NO';
+
+ etc;
+ };
+ },
+ ],
+ );
+};
+
done_testing;