X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=t%2Fprecheck.t;h=360dc74f88f748d0bd081929f6d786be193d3849;hp=3f2c5d5b76230dab8bee16128da41ddc607d9cab;hb=4eee5af6011cc8cdefb66c9729952c7eff5c0b0b;hpb=f76f265a851944b5dedcc3be5f3b5224b6ebda89 diff --git a/t/precheck.t b/t/precheck.t index 3f2c5d5b..360dc74f 100644 --- a/t/precheck.t +++ b/t/precheck.t @@ -1,79 +1,88 @@ -# Copyright (C) 2014-2015 all contributors -# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) +# Copyright (C) 2014-2021 all contributors +# License: AGPL-3.0+ use strict; use warnings; use Test::More; -use Email::Simple; -use Email::Filter; +use PublicInbox::Eml; use PublicInbox::MDA; sub do_checks { my ($s) = @_; - my $f = Email::Filter->new(data => $s->as_string); - my $recipient = 'foo@example.com'; - ok(!PublicInbox::MDA->precheck($f, $recipient), + ok(!PublicInbox::MDA->precheck($s, $recipient), "wrong ORIGINAL_RECIPIENT rejected"); $recipient = 'b@example.com'; - ok(PublicInbox::MDA->precheck($f, $recipient), + ok(PublicInbox::MDA->precheck($s, $recipient), "ORIGINAL_RECIPIENT in To: is OK"); $recipient = 'c@example.com'; - ok(PublicInbox::MDA->precheck($f, $recipient), + ok(PublicInbox::MDA->precheck($s, $recipient), "ORIGINAL_RECIPIENT in Cc: is OK"); $recipient = [ 'c@example.com', 'd@example.com' ]; - ok(PublicInbox::MDA->precheck($f, $recipient), + ok(PublicInbox::MDA->precheck($s, $recipient), "alias list is OK"); } { - do_checks(Email::Simple->create( - header => [ - From => 'a@example.com', - To => 'b@example.com', - Cc => 'c@example.com', - 'Content-Type' => 'text/plain', - Subject => 'this is a subject', - 'Message-ID' => '', - Date => 'Wed, 09 Apr 2014 01:28:34 +0000', - ], - body => "hello world\n", - )); + my $s = PublicInbox::Eml->new(<<'EOF'); +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 + +hello world +EOF + my $addr = [ 'c@example.com', 'd@example.com' ]; + ok(PublicInbox::MDA->precheck($s, $addr), 'Cc list is OK'); +} + +{ + do_checks(PublicInbox::Eml->new(<<'EOF')); +From: a@example.com +To: b@example.com +Cc: c@example.com +Content-Type: text/plain +Subject: this is a subject +Message-ID: +Date: Wed, 09 Apr 2014 01:28:34 +0000 + +hello world +EOF } { - do_checks(Email::Simple->create( - header => [ - From => 'a@example.com', - To => 'b+plus@example.com', - Cc => 'John Doe ', - 'Content-Type' => 'text/plain', - Subject => 'this is a subject', - 'Message-ID' => '', - Date => 'Wed, 09 Apr 2014 01:28:34 +0000', - ], - body => "hello world\n", - )); + do_checks(PublicInbox::Eml->new(<<'EOF')); +From: a@example.com +To: b+plus@example.com +Cc: John Doe +Content-Type: text/plain +Subject: this is a subject +Message-ID: +Date: Wed, 09 Apr 2014 01:28:34 +0000 + +hello world +EOF } { 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' => '', - Date => 'Wed, 09 Apr 2014 01:28:34 +0000', - ], - body => "hello world\n", - ); - my $f = Email::Filter->new(data => $s->as_string); - ok(!PublicInbox::MDA->precheck($f, $recipient), + my $s = PublicInbox::Eml->new(<<'EOF'); +To: b@example.com +Cc: c@example.com +Content-Type: text/plain +Subject: this is a subject +Message-ID: +Date: Wed, 09 Apr 2014 01:28:34 +0000 + +hello world +EOF + ok(!PublicInbox::MDA->precheck($s, $recipient), "missing From: is rejected"); }