]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/imapd.t
testcommon: allow OR-ing module dependencies
[public-inbox.git] / t / imapd.t
index e3cce2d30f07ee9aa4339e93b475a2a33a755a40..0f48e905557baadd0eac5388be3609a2a4861ca1 100644 (file)
--- a/t/imapd.t
+++ b/t/imapd.t
@@ -8,7 +8,8 @@ use Time::HiRes ();
 use PublicInbox::TestCommon;
 use PublicInbox::Config;
 use PublicInbox::Spawn qw(which);
-require_mods(qw(DBD::SQLite Mail::IMAPClient Mail::IMAPClient::BodyStructure));
+require_mods(qw(DBD::SQLite Mail::IMAPClient Mail::IMAPClient::BodyStructure
+       Email::Address::XS||Mail::Address));
 my $imap_client = 'Mail::IMAPClient';
 my $can_compress = $imap_client->can('compress');
 if ($can_compress) { # hope this gets fixed upstream, soon
@@ -360,43 +361,6 @@ is(scalar keys %$ret, 3, 'got all 3 messages with comma-separated sequence');
 $ret = $mic->fetch_hash('1:*', 'RFC822') or BAIL_OUT "FETCH $@";
 is(scalar keys %$ret, 3, 'got all 3 messages');
 
-SKIP: {
-       # do any clients use non-UID IMAP SEARCH?
-       skip 'Xapian missing', 2 if $level eq 'basic';
-       my $x = $mic->search('all');
-       is_deeply($x, [1, 2, 3], 'MSN SEARCH works before rm');
-       $x = $mic->search(qw(header subject embedded));
-       is_deeply($x, [2], 'MSN SEARCH on Subject works before rm');
-}
-
-{
-       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');
-}
-
-SKIP: {
-       # do any clients use non-UID IMAP SEARCH?  We only ensure
-       # MSN "SEARCH" can return a result which can be retrieved
-       # via MSN "FETCH"
-       skip 'Xapian missing', 3 if $level eq 'basic';
-       my $x = $mic->search(qw(header subject embedded));
-       is(scalar(@$x), 1, 'MSN SEARCH on Subject works after rm');
-       $x = $mic->message_string($x->[0]);
-       is($x, $ret->{2}->{RFC822}, 'message 2 unchanged');
-}
-
-my $r2 = $mic->fetch_hash('1:*', 'BODY.PEEK[]') or BAIL_OUT "FETCH $@";
-is(scalar keys %$r2, 2, 'did not get all 3 messages');
-is($r2->{1}->{'BODY[]'}, $ret->{2}->{RFC822}, 'message 2 unchanged');
-is($r2->{2}->{'BODY[]'}, $ret->{3}->{RFC822}, 'message 3 unchanged');
-$r2 = $mic->fetch_hash(2, 'BODY.PEEK[HEADER.FIELDS (message-id)]')
-                       or BAIL_OUT "FETCH $@";
-is($r2->{2}->{'BODY[HEADER.FIELDS (MESSAGE-ID)]'},
-       'Message-ID: <20200418222508.GA13918@dcvr>'."\r\n\r\n",
-       'BODY.PEEK[HEADER.FIELDS ...] drops .PEEK');
-
 {
        my @new_list = $mic->list;
        # tag differs in [-1]
@@ -405,7 +369,9 @@ is($r2->{2}->{'BODY[HEADER.FIELDS (MESSAGE-ID)]'},
        pop @new_list;
        pop @orig_list;
        # TODO: not sure if sort order matters, imapd_refresh_finalize
-       # sorts, for now, but maybe clients don't care...
+       # doesn't sort, hopefully clients don't care...
+       @new_list = sort @new_list;
+       @orig_list = sort @orig_list;
        is_deeply(\@new_list, \@orig_list, 'LIST identical');
 }
 ok($mic->close, 'CLOSE works');