Skip to content

Commit

Permalink
Murder.pm: refactor annotation fetch/store to use RFC 5464
Browse files Browse the repository at this point in the history
  • Loading branch information
rsto committed May 8, 2017
1 parent 35aea5a commit c243bef
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 20 deletions.
29 changes: 11 additions & 18 deletions Cassandane/Cyrus/Metadata.pm
Original file line number Diff line number Diff line change
Expand Up @@ -2573,46 +2573,39 @@ sub folder_delete_mboxa_common
my $imaptalk = $self->{store}->get_client();
# data thanks to hipsteripsum.me
my $folder = 'INBOX.williamsburg';
my $fentry = '/comment';
my $fattrib = 'value.priv';
my $fentry = '/private/comment';
my $data = $self->make_random_data(0.3, maxreps => 15);

xlog "create a mailbox";
$imaptalk->create($folder)
or die "Cannot create mailbox $folder: $@";

xlog "set and then get the same back again";
$imaptalk->setannotation($folder, $fentry, [ $fattrib, $data ])
or die "Cannot setannotation: $@";
$imaptalk->setmetadata($folder, $fentry, $data)
or die "Cannot setmetadata: $@";
$self->assert_str_equals('ok', $imaptalk->get_last_completion_response());

my $res = $imaptalk->getannotation($folder, $fentry, $fattrib)
or die "Cannot getannotation: $@";
my $res = $imaptalk->getmetadata($folder, $fentry)
or die "Cannot getmetadata: $@";
$self->assert_str_equals('ok', $imaptalk->get_last_completion_response());
$self->assert_deep_equals({
$folder => { $fentry => { $fattrib => $data } }
$folder => { $fentry => $data }
}, $res);

xlog "delete the mailbox";
$imaptalk->delete($folder)
or die "Cannot delete mailbox $folder: $@";

xlog "cannot get metadata for deleted mailbox";
# $res = $imaptalk->getannotation($folder, $fentry, $fattrib)
# or die "Cannot getannotation: $@";
# $self->assert_str_equals('no', $imaptalk->get_last_completion_response());
# $self->assert($imaptalk->get_last_error() =~ m/does not exist/i);

xlog "create a new mailbox with the same name";
$imaptalk->create($folder)
or die "Cannot create mailbox $folder: $@";

xlog "new mailbox reports NIL for the per-mailbox metadata";
$res = $imaptalk->getannotation($folder, $fentry, $fattrib)
or die "Cannot getannotation: $@";
$res = $imaptalk->getmetadata($folder, $fentry)
or die "Cannot getmetadata: $@";
$self->assert_str_equals('ok', $imaptalk->get_last_completion_response());
$self->assert_deep_equals({
$folder => { $fentry => { $fattrib => undef }}
$folder => { $fentry => undef }
}, $res);
}

Expand Down Expand Up @@ -2729,7 +2722,7 @@ sub test_folder_delete_mboxa_dmimm
{
my ($self) = @_;

xlog "test that per-mailbox GETANNOTATION annotations are";
xlog "test that per-mailbox GETMETADATA annotations are";
xlog "deleted with the mailbox; delete_mode = immediate (BZ2685)";

$self->assert_str_equals('immediate',
Expand All @@ -2743,7 +2736,7 @@ sub test_folder_delete_mboxa_dmdel
{
my ($self) = @_;

xlog "test that per-mailbox GETANNOTATION annotations are";
xlog "test that per-mailbox GETMETADATA annotations are";
xlog "deleted with the mailbox; delete_mode = delayed (BZ2685)";

$self->assert_str_equals('delayed',
Expand Down
4 changes: 2 additions & 2 deletions pop3showafter.pl
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,13 @@ ($$$$)
#
# Check the value of the pop3-show-after annotation
#
my $showafter_anno = '/vendor/cmu/cyrus-imapd/pop3showafter';
my $showafter_anno = '/private/vendor/cmu/cyrus-imapd/pop3showafter';

sub get_pop3showafter
{
my ($store) = @_;

my $annos = $store->get_client()->getannotation($store->{folder}, $showafter_anno, '*')
my $annos = $store->get_client()->getmetadata($store->{folder}, $showafter_anno)
or die "Cannot get annotation $showafter_anno: $@";

if ($annos eq "Completed")
Expand Down

0 comments on commit c243bef

Please sign in to comment.