diff options
Diffstat (limited to 't/tests/sietima/role')
-rw-r--r-- | t/tests/sietima/role/headers.t | 60 | ||||
-rw-r--r-- | t/tests/sietima/role/manualsubscription.t | 2 |
2 files changed, 51 insertions, 11 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; diff --git a/t/tests/sietima/role/manualsubscription.t b/t/tests/sietima/role/manualsubscription.t index f99805d..ade2062 100644 --- a/t/tests/sietima/role/manualsubscription.t +++ b/t/tests/sietima/role/manualsubscription.t @@ -17,7 +17,7 @@ subtest '(un)sub headers should be added' => sub { sietima => $s, mails => [ object { - call sub { +{ shift->header_str_pairs } } => hash { + call sub { +{ shift->header_raw_pairs } } => hash { field 'List-Subscribe' => '<mailto:owner@example.com?subject=Please+add+me+to+test-list>'; field 'List-Unsubscribe' => '<mailto:owner@example.com?subject=Please+remove+me+from+test-list>'; |