From 5bdad8b561cb1fd45a43e2f007341fd198769f89 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 10 Jun 2020 07:04:16 +0000 Subject: imap: support sequence number FETCH We'll return dummy messages for now when sequence numbers go missing, in case clients can't handle missing messages. --- t/imapd.t | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 't') diff --git a/t/imapd.t b/t/imapd.t index fcbbdc09..fc90948e 100644 --- a/t/imapd.t +++ b/t/imapd.t @@ -306,6 +306,24 @@ Content-Disposition: attachment; filename="embed2x\.eml"\r EOF }); # each_inbox +# message sequence numbers :< +is($mic->Uid(0), 0, 'disable UID on '.ref($mic)); +ok($mic->reconnect, 'reconnected'); +$ret = $mic->fetch_hash('1:*', 'RFC822') or BAIL_OUT "FETCH $@"; +is(scalar keys %$ret, 3, 'got all 3 messages'); +{ + my $rdr = { 0 => \($ret->{1}->{RFC822}) }; + my $env = { HOME => $ENV{HOME} }; + my @cmd = qw(-learn rm --all); + run_script(\@cmd, $env, $rdr) or BAIL_OUT('-learn rm'); +} +my $r2 = $mic->fetch_hash('1:*', 'RFC822') or BAIL_OUT "FETCH $@"; +is(scalar keys %$r2, 3, 'still got all 3 messages'); +like($r2->{1}->{RFC822}, qr/dummy message #1/, 'got dummy message 1'); +is($r2->{2}->{RFC822}, $ret->{2}->{RFC822}, 'message 2 unchanged'); +is($r2->{3}->{RFC822}, $ret->{3}->{RFC822}, 'message 3 unchanged'); +ok($mic->logout, 'logged out'); + $td->kill; $td->join; is($?, 0, 'no error in exited process'); -- cgit v1.2.3-24-ge0c7