X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fprecheck.t;h=bcd2091037b3b312e27d549ed6e60e05237644c2;hb=1bbfab375438f149dcff9047dd0c5ed3a08eed53;hp=f9d61d8ef13e19211e281a7581e53df54e0a7550;hpb=b5f82d05569c228544f31627a03477f2a464f74f;p=public-inbox.git diff --git a/t/precheck.t b/t/precheck.t index f9d61d8e..bcd20910 100644 --- a/t/precheck.t +++ b/t/precheck.t @@ -1,33 +1,46 @@ -# Copyright (C) 2014, Eric Wong and all contributors -# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) +# Copyright (C) 2014-2019 all contributors +# License: AGPL-3.0+ use strict; use warnings; use Test::More; use Email::Simple; -use Email::Filter; -use PublicInbox; +use PublicInbox::MDA; sub do_checks { my ($s) = @_; - my $f = Email::Filter->new(data => $s->as_string); - local %ENV; - delete $ENV{ORIGINAL_RECIPIENT}; - - ok(PublicInbox->precheck($f), - "ORIGINAL_RECIPIENT unset is OK"); - - $ENV{ORIGINAL_RECIPIENT} = 'foo@example.com'; - ok(!PublicInbox->precheck($f), + my $recipient = 'foo@example.com'; + ok(!PublicInbox::MDA->precheck($s, $recipient), "wrong ORIGINAL_RECIPIENT rejected"); - $ENV{ORIGINAL_RECIPIENT} = 'b@example.com'; - ok(PublicInbox->precheck($f), + $recipient = 'b@example.com'; + ok(PublicInbox::MDA->precheck($s, $recipient), "ORIGINAL_RECIPIENT in To: is OK"); - $ENV{ORIGINAL_RECIPIENT} = 'c@example.com'; - ok(PublicInbox->precheck($f), + $recipient = 'c@example.com'; + ok(PublicInbox::MDA->precheck($s, $recipient), "ORIGINAL_RECIPIENT in Cc: is OK"); + + $recipient = [ 'c@example.com', 'd@example.com' ]; + ok(PublicInbox::MDA->precheck($s, $recipient), + "alias list is OK"); +} + +{ + my $s = Email::Simple->create( + header => [ + From => 'abc@example.com', + To => 'abc@example.com', + Cc => 'c@example.com, another-list@example.com', + 'Content-Type' => 'text/plain', + Subject => 'list is fine', + 'Message-ID' => '', + Date => 'Wed, 09 Apr 2014 01:28:34 +0000', + ], + body => "hello world\n", + ); + my $addr = [ 'c@example.com', 'd@example.com' ]; + ok(PublicInbox::MDA->precheck($s, $addr), 'Cc list is OK'); } { @@ -38,7 +51,8 @@ sub do_checks { Cc => 'c@example.com', 'Content-Type' => 'text/plain', Subject => 'this is a subject', - 'Message-ID' => '', + 'Message-ID' => '', + Date => 'Wed, 09 Apr 2014 01:28:34 +0000', ], body => "hello world\n", )); @@ -52,26 +66,28 @@ sub do_checks { Cc => 'John Doe ', 'Content-Type' => 'text/plain', Subject => 'this is a subject', - 'Message-ID' => '', + 'Message-ID' => '', + Date => 'Wed, 09 Apr 2014 01:28:34 +0000', ], body => "hello world\n", )); } { - $ENV{ORIGINAL_RECIPIENT} = 'b@example.com'; + my $recipient = 'b@example.com'; my $s = Email::Simple->create( header => [ To => 'b@example.com', Cc => 'c@example.com', 'Content-Type' => 'text/plain', Subject => 'this is a subject', - 'Message-ID' => '', + 'Message-ID' => '', + Date => 'Wed, 09 Apr 2014 01:28:34 +0000', ], body => "hello world\n", ); - my $f = Email::Filter->new(data => $s->as_string); - ok(!PublicInbox->precheck($f), "missing From: is rejected"); + ok(!PublicInbox::MDA->precheck($s, $recipient), + "missing From: is rejected"); } done_testing();