#!perl
use Cassandane::Tiny;

sub test_include_fileinto_implicit_keep_flags
{
    my ($self) = @_;

    $self->{store}->set_fetch_attributes(qw(uid flags));

    xlog $self, "Install a script which includes another";
    $self->{instance}->install_sieve_script(<<EOF
require ["include"];
include "foo";
# Should implicit keep without \\Seen, but with \\Flagged
EOF
    );

    xlog $self, "Install a script to be included";
    $self->{instance}->install_sieve_script(<<EOF
require ["fileinto", "copy", "imap4flags"];
# This should cancel implicit keep
fileinto :copy :flags "\\\\Seen" "INBOX";
addflag "\\\\Flagged";
EOF
    , name=>'foo');

    xlog $self, "Deliver a message";
    my $msg = $self->{gen}->generate(subject => "Message 1");
    $self->{instance}->deliver($msg);

    xlog $self, "Check that only last copy of the message made it to INBOX";
    $self->{store}->set_folder('INBOX');
    $msg->set_attribute(flags => [ '\\Recent', '\\Flagged' ]);
    $self->check_messages({ 1 => $msg }, check_guid => 0);
}
