]> Sergey Matveev's repositories - public-inbox.git/blobdiff - xt/net_writer-imap.t
net_writer: use "FLAGS.SILENT" to set keywords
[public-inbox.git] / xt / net_writer-imap.t
index 11a10e742d68abe13fd1f62541457aa15b9004dc..1298b958f683ba5d40404146e8162651736fc087 100644 (file)
@@ -157,8 +157,13 @@ test_lei(sub {
 
        lei_ok qw(import -F eml), $f, \'import local copy w/o keywords';
 
-       $nwr->imap_set_kw($folder_uri, $uid[0], [ 'seen' ])->expunge
-               or BAIL_OUT "expunge $@";
+       $mic = $nwr->mic_for_folder($folder_uri);
+       # dummy set to ensure second set_kw clobbers
+       $nwr->imap_set_kw($mic, $uid[0], [ qw(seen answered flagged) ]
+                       )->expunge or BAIL_OUT "expunge $@";
+       $nwr->imap_set_kw($mic, $uid[0], [ 'seen' ]
+                       )->expunge or BAIL_OUT "expunge $@";
+       $mic = undef;
        @res = ();
        $nwr->imap_each($folder_uri, $imap_slurp_all, \@res);
        is_deeply(\@res, [ [ ['seen'], $exp ] ], 'seen flag set') or
@@ -173,17 +178,18 @@ test_lei(sub {
        is_deeply([@$res{qw(m kw)}], ['testmessage@example.com', ['seen']],
                'kw set');
 
+       # prepare messages for watch
        $mic = $nwr->mic_for_folder($folder_uri);
-       for my $kw (qw(Deleted Seen Answered Draft)) {
+       for my $kw (qw(Deleted Seen Answered Draft forwarded)) {
                my $buf = <<EOM;
 From: x\@example.com
 Message-ID: <$kw\@test.example.com>
 
 EOM
-               $mic->append_string($folder_uri->mailbox, $buf, "\\$kw")
+               my $f = $kw eq 'forwarded' ? '$Forwarded' : "\\$kw";
+               $mic->append_string($folder_uri->mailbox, $buf, $f)
                        or BAIL_OUT "append $kw $@";
        }
-       # $mic->expunge or BAIL_OUT "expunge: $@";
        $mic->disconnect;
 
        my $inboxdir = "$ENV{HOME}/wtest";
@@ -214,6 +220,13 @@ EOM
                '-watch ignored \\Deleted');
        ok(!defined($mm->num_for('Draft@test.example.com')),
                '-watch ignored \\Draft');
+       ok(defined($mm->num_for('forwarded@test.example.com')),
+               '-watch takes forwarded message');
+       undef $w; # done with watch
+       lei_ok qw(import), $$folder_uri;
+       lei_ok qw(q m:forwarded@test.example.com);
+       is_deeply(json_utf8->decode($lei_out)->[0]->{kw}, ['forwarded'],
+               'forwarded kw imported from IMAP');
 });
 
 undef $cleanup; # remove temporary folder