From 6c559dae69e244895fd7e6c5a9ae29f58d03058e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 28 Oct 2019 10:45:24 +0000 Subject: inboxwritable: add assert_usable_dir sub And use it for mda, since "0" could be a usable directory if somebody insists on using relative paths... --- t/import.t | 8 ++++++++ t/v2writable.t | 12 ++++++++++++ 2 files changed, 20 insertions(+) (limited to 't') diff --git a/t/import.t b/t/import.t index 4ec3c4f3..d309eec5 100644 --- a/t/import.t +++ b/t/import.t @@ -96,4 +96,12 @@ is(undef, $im->checkpoint, 'checkpoint works before ->done'); $im->done; is(undef, $im->checkpoint, 'checkpoint works after ->done'); $im->checkpoint; + +my $nogit = PublicInbox::Git->new("$dir/non-existent/dir"); +eval { + my $nope = PublicInbox::Import->new($nogit, 'nope', 'no@example.com'); + $nope->add($mime); +}; +ok($@, 'Import->add fails on non-existent dir'); + done_testing(); diff --git a/t/v2writable.t b/t/v2writable.t index c2daac2f..06dafe98 100644 --- a/t/v2writable.t +++ b/t/v2writable.t @@ -260,4 +260,16 @@ EOF $im->done; } +my $tmp = { + inboxdir => "$inboxdir/non-existent/subdir", + name => 'nope', + version => 2, + -primary_address => 'test@example.com', +}; +eval { + my $nope = PublicInbox::V2Writable->new($tmp); + $nope->add($mime); +}; +ok($@, 'V2Writable fails on non-existent dir'); + done_testing(); -- cgit v1.2.3-24-ge0c7 From 74a3206babe0572a1494500d21267a31873af7b0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 28 Oct 2019 10:45:26 +0000 Subject: mda: support multiple List-ID matches While it's not RFC2919-conformant, mail software can theoretically set multiple List-ID headers. Deliver to all inboxes which match a given List-ID since that's likely the intended. Cc: Eric W. Biederman Link: https://public-inbox.org/meta/87pniltscf.fsf@x220.int.ebiederm.org/ --- t/mda.t | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 't') diff --git a/t/mda.t b/t/mda.t index 99592b2d..35811ac6 100644 --- a/t/mda.t +++ b/t/mda.t @@ -308,6 +308,25 @@ EOF my $cur = `git --git-dir=$maindir diff HEAD~1..HEAD`; like($cur, qr/this message would not be accepted without --no-precheck/, '--no-precheck delivered message anyways'); + + # try a message with multiple List-ID headers + $in = < +List-ID: <$list_id> +Message-ID: <2lids\@example> +Subject: two List-IDs +From: user +To: $addr +Date: Fri, 02 Oct 1993 00:00:00 +0000 + +EOF + ($out, $err) = ('', ''); + IPC::Run::run([$mda], \$in, \$out, \$err); + is($?, 0, 'mda OK with multiple List-Id matches'); + $cur = `git --git-dir=$maindir diff HEAD~1..HEAD`; + like($cur, qr/Message-ID: <2lids\@example>/, + 'multi List-ID match delivered'); + like($err, qr/multiple List-ID/, 'warned about multiple List-ID'); } done_testing(); -- cgit v1.2.3-24-ge0c7