about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-06-10 07:04:16 +0000
committerEric Wong <e@yhbt.net>2020-06-13 07:55:45 +0000
commit5bdad8b561cb1fd45a43e2f007341fd198769f89 (patch)
tree926d81ec5822c6336118e207f6b0368885045bda /t
parent3601eee7e9370ea6c84052459c6dc4a97efd3e37 (diff)
downloadpublic-inbox-5bdad8b561cb1fd45a43e2f007341fd198769f89.tar.gz
We'll return dummy messages for now when sequence numbers go
missing, in case clients can't handle missing messages.
Diffstat (limited to 't')
-rw-r--r--t/imapd.t18
1 files changed, 18 insertions, 0 deletions
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');