diff --git a/57.patch b/57.patch deleted file mode 100644 index aa3f478..0000000 --- a/57.patch +++ /dev/null @@ -1,5711 +0,0 @@ -From 82c6216183dfe2669ef377c033790aefc81e7447 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Tue, 22 May 2018 17:33:43 +1000 -Subject: [PATCH 01/11] BuildInfo: split build info parser out of Instance - object - ---- - Cassandane/BuildInfo.pm | 89 +++++++++++++++++++++++++++++++++++++++++ - Cassandane/Cyrus/Autocreate.pm | 2 +- - Cassandane/Cyrus/CaldavAlarm.pm | 2 +- - Cassandane/Cyrus/ClamAV.pm | 2 +- - Cassandane/Cyrus/SearchFuzzy.pm | 4 +- - Cassandane/Instance.pm | 30 ++------------ - 6 files changed, 98 insertions(+), 31 deletions(-) - create mode 100644 Cassandane/BuildInfo.pm - -diff --git a/Cassandane/BuildInfo.pm b/Cassandane/BuildInfo.pm -new file mode 100644 -index 0000000..8c87410 ---- /dev/null -+++ b/Cassandane/BuildInfo.pm -@@ -0,0 +1,89 @@ -+#!/usr/bin/perl -+# -+# Copyright (c) 2011-2018 FastMail Pty Ltd. All rights reserved. -+# -+# Redistribution and use in source and binary forms, with or without -+# modification, are permitted provided that the following conditions -+# are met: -+# -+# 1. Redistributions of source code must retain the above copyright -+# notice, this list of conditions and the following disclaimer. -+# -+# 2. Redistributions in binary form must reproduce the above copyright -+# notice, this list of conditions and the following disclaimer in -+# the documentation and/or other materials provided with the -+# distribution. -+# -+# 3. The name "Fastmail Pty Ltd" must not be used to -+# endorse or promote products derived from this software without -+# prior written permission. For permission or any legal -+# details, please contact -+# FastMail Pty Ltd -+# PO Box 234 -+# Collins St West 8007 -+# Victoria -+# Australia -+# -+# 4. Redistributions of any form whatsoever must retain the following -+# acknowledgment: -+# "This product includes software developed by Fastmail Pty. Ltd." -+# -+# FASTMAIL PTY LTD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -+# EVENT SHALL OPERA SOFTWARE AUSTRALIA BE LIABLE FOR ANY SPECIAL, INDIRECT -+# OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF -+# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE -+# OF THIS SOFTWARE. -+# -+ -+package Cassandane::BuildInfo; -+use JSON; -+ -+use lib '.'; -+use Cassandane::Cassini; -+use Cassandane::Util::Log; -+ -+sub new { -+ my $class = shift; -+ my %params = @_; -+ my $self = {}; -+ -+ my $cassini = Cassandane::Cassini->instance(); -+ -+ my $prefix = $cassini->val("cyrus default", 'prefix', '/usr/cyrus'); -+ $prefix = $params{cyrus_prefix} -+ if defined $params{cyrus_prefix}; -+ -+ my $destdir = $cassini->val("cyrus default", 'destdir', ''); -+ $destdir = $params{cyrus_destdir} -+ if defined $params{cyrus_destdir}; -+ -+ $self->{data} = _read_buildinfo($destdir, $prefix); -+ -+ return bless $self, $class; -+} -+ -+sub _read_buildinfo -+{ -+ my ($destdir, $prefix) = @_; -+ -+ my $cyr_buildinfo = "$destdir$prefix/sbin/cyr_buildinfo"; -+ return if not -x $cyr_buildinfo; -+ -+ my $jsondata = qx($cyr_buildinfo); -+ return if not $jsondata; -+ -+ return JSON::decode_json($jsondata); -+ -+} -+ -+sub get -+{ -+ my ($self, $category, $key) = @_; -+ -+ return if not exists $self->{data}->{$category}->{$key}; -+ return $self->{data}->{$category}->{$key}; -+} -+ -+1; -diff --git a/Cassandane/Cyrus/Autocreate.pm b/Cassandane/Cyrus/Autocreate.pm -index 32e4c8d..7ce7e8f 100644 ---- a/Cassandane/Cyrus/Autocreate.pm -+++ b/Cassandane/Cyrus/Autocreate.pm -@@ -72,7 +72,7 @@ sub set_up - { - my ($self) = @_; - $self->SUPER::set_up(); -- if (not $self->{instance}->{buildinfo}->{component}->{autocreate}) { -+ if (not $self->{instance}->{buildinfo}->get('component', 'autocreate')) { - xlog "autocreate not enabled. Skipping tests."; - return; - } -diff --git a/Cassandane/Cyrus/CaldavAlarm.pm b/Cassandane/Cyrus/CaldavAlarm.pm -index f00ee51..3467389 100644 ---- a/Cassandane/Cyrus/CaldavAlarm.pm -+++ b/Cassandane/Cyrus/CaldavAlarm.pm -@@ -84,7 +84,7 @@ sub set_up - expandurl => 1, - ); - -- if (not $self->{instance}->{buildinfo}->{component}->{calalarmd}) { -+ if (not $self->{instance}->{buildinfo}->get('component', 'calalarmd')) { - xlog "calalarmd not enabled. Skipping tests."; - return; - } -diff --git a/Cassandane/Cyrus/ClamAV.pm b/Cassandane/Cyrus/ClamAV.pm -index 394d149..d199b66 100644 ---- a/Cassandane/Cyrus/ClamAV.pm -+++ b/Cassandane/Cyrus/ClamAV.pm -@@ -79,7 +79,7 @@ sub set_up - { - my ($self) = @_; - $self->SUPER::set_up(); -- if (not $self->{instance}->{buildinfo}->{dependency}->{clamav}) { -+ if (not $self->{instance}->{buildinfo}->get('dependency', 'clamav')) { - xlog "clamav not enabled. Skipping tests."; - return; - } -diff --git a/Cassandane/Cyrus/SearchFuzzy.pm b/Cassandane/Cyrus/SearchFuzzy.pm -index c3b95ab..e88cbba 100644 ---- a/Cassandane/Cyrus/SearchFuzzy.pm -+++ b/Cassandane/Cyrus/SearchFuzzy.pm -@@ -61,7 +61,7 @@ sub set_up - my ($self) = @_; - $self->SUPER::set_up(); - -- if (not $self->{instance}->{buildinfo}->{search}->{xapian}) { -+ if (not $self->{instance}->{buildinfo}->get('search', 'xapian')) { - xlog "No xapian support enabled. Skipping tests."; - return; - } -@@ -71,7 +71,7 @@ sub set_up - # if using our fork of xapian, or "none" if the Cyrus being tested isn't - # new enough to know the difference. - $self->{xapian_flavor} = -- $self->{instance}->{buildinfo}->{search}->{xapian_flavor} || "none"; -+ $self->{instance}->{buildinfo}->get('search', 'xapian_flavor') || "none"; - - xlog "Xapian flavor '$self->{xapian_flavor}' detected.\n"; - -diff --git a/Cassandane/Instance.pm b/Cassandane/Instance.pm -index 1561143..debd793 100644 ---- a/Cassandane/Instance.pm -+++ b/Cassandane/Instance.pm -@@ -72,6 +72,7 @@ use Cassandane::MasterEvent; - use Cassandane::Cassini; - use Cassandane::PortManager; - use Cassandane::Net::SMTPServer; -+use Cassandane::BuildInfo; - require Cyrus::DList; - - my $__cached_rootdir; -@@ -646,7 +647,7 @@ sub _generate_imapd_conf - event_groups => 'mailbox message flags', - ); - } -- if ($self->{buildinfo}->{search}->{xapian}) { -+ if ($self->{buildinfo}->get('search', 'xapian')) { - my %xapian_defaults = ( - search_engine => 'xapian', - search_index_headers => 'no', -@@ -663,30 +664,6 @@ sub _generate_imapd_conf - $self->{config}->generate($self->_imapd_conf()); - } - --sub _read_buildinfo --{ -- my ($self) = @_; -- -- # don't choke if we don't have cyr_buildinfo -- eval { -- $self->_find_binary('cyr_buildinfo'); -- }; -- return if $@; -- -- my $filename = $self->{basedir} . "/buildinfo.out"; -- $self->run_command({ -- cyrus => 1, -- redirects => { stdout => $filename } -- }, 'cyr_buildinfo'); -- -- local $/; -- open FH, '<', $filename -- or die "Cannot open $filename for reading: $!"; -- my $str = ; -- $self->{buildinfo} = JSON::decode_json($str); -- close FH; --} -- - sub _emit_master_entry - { - my ($self, $entry) = @_; -@@ -1086,7 +1063,8 @@ sub start - $self->_build_skeleton(); - # TODO: system("echo 1 >/proc/sys/kernel/core_uses_pid"); - # TODO: system("echo 1 >/proc/sys/fs/suid_dumpable"); -- $self->_read_buildinfo(); -+ $self->{buildinfo} = Cassandane::BuildInfo->new($self->{cyrus_destdir}, -+ $self->{cyrus_prefix}); - $self->_generate_imapd_conf(); - $self->_generate_master_conf(); - $self->_fix_ownership(); - -From 78eac0a9786cebae62637be7cc400b02babc7fdf Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Tue, 22 May 2018 15:29:16 +1000 -Subject: [PATCH 02/11] TestCase: add ':needs_foo_bar' attr to limit tests by - feature - -So if your test needs, say, Sieve to have been compiled in, -tag your test function with :needs_component_sieve and the test -won't bother to run if Cyrus was built with --disable-sieve. - -See cyr_buildinfo output for valid values of foo and bar :) ---- - Cassandane/Cyrus/TestCase.pm | 39 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - -diff --git a/Cassandane/Cyrus/TestCase.pm b/Cassandane/Cyrus/TestCase.pm -index 565f7bf..4e44c53 100644 ---- a/Cassandane/Cyrus/TestCase.pm -+++ b/Cassandane/Cyrus/TestCase.pm -@@ -41,6 +41,7 @@ package Cassandane::Cyrus::TestCase; - use strict; - use warnings; - use attributes; -+use Data::Dumper; - use Mail::JMAPTalk; - use Net::CalDAVTalk 0.09; - use Net::CardDAVTalk 0.03; -@@ -126,6 +127,42 @@ sub new - return $self; - } - -+sub list_tests -+{ -+ my ($class) = @_; -+ -+ my %tests; -+ @tests{$class->SUPER::list_tests()} = undef; -+ -+ # filter the list for tests that require cyr_buildinfo features -+ # which aren't currently enabled -+ # -+ # XXX could probably do the skip_version stuff here too actually -+ foreach my $name (keys %tests) { -+ my $sub = $class->can($name); -+ if (defined $sub) { -+ foreach my $a (attributes::get($sub)) { -+ my $m = lc($a); -+ next if $a !~ m/^needs_(\w+)_([\w_]+)$/; -+ xlog "found attributed test: $name $a"; -+ -+ my $buildinfo = Cassandane::BuildInfo->new(); -+ -+ if (not $buildinfo) { -+ xlog "Cyrus build info unreadable, " . -+ "cannot skip tests for missing features"; -+ } -+ elsif (not $buildinfo->get($1, $2)) { -+ xlog "$1.$2 not enabled, $name will be skipped"; -+ delete $tests{$name}; -+ } -+ } -+ } -+ } -+ -+ return sort keys %tests; -+} -+ - # will magically cause some special actions to be taken during test - # setup. This used to be a horrible hack to enable a replica instance - # if the test name contained the word "replication", but now it's more -@@ -268,6 +305,8 @@ sub _run_magic - my $m = lc($a); - # ignore min/max version attribution here - next if $a =~ m/^(?:min|max)_version_/; -+ # ignore feature test attribution here -+ next if $a =~ m/^needs_/; - die "Unknown attribute $a" - unless defined $magic_handlers{$m}; - next if $seen{$m}; - -From 6e7c4a97212a2e6ea97a32c78bb56b83d3bbd229 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 13:17:18 +1000 -Subject: [PATCH 03/11] TestCase: reimplement :needs_foo_bar as a filter - instead - -Test::Unit::TestCase::list_unit() inverts the usual inheritance chain -in a really annoying way, so if you override it you basically can't -call SUPER to extend the default behaviour, uggh. Just because you -can, doesn't mean you should! - -Implementing it as a filter is less than ideal, as it confuses the -number-of-tests counter, but it's what we've got to work with. ---- - Cassandane/Cyrus/TestCase.pm | 36 ------------------------------------ - Cassandane/Unit/TestCase.pm | 18 ++++++++++++++++++ - testrunner.pl | 7 +++---- - 3 files changed, 21 insertions(+), 40 deletions(-) - -diff --git a/Cassandane/Cyrus/TestCase.pm b/Cassandane/Cyrus/TestCase.pm -index 4e44c53..b519c6d 100644 ---- a/Cassandane/Cyrus/TestCase.pm -+++ b/Cassandane/Cyrus/TestCase.pm -@@ -127,42 +127,6 @@ sub new - return $self; - } - --sub list_tests --{ -- my ($class) = @_; -- -- my %tests; -- @tests{$class->SUPER::list_tests()} = undef; -- -- # filter the list for tests that require cyr_buildinfo features -- # which aren't currently enabled -- # -- # XXX could probably do the skip_version stuff here too actually -- foreach my $name (keys %tests) { -- my $sub = $class->can($name); -- if (defined $sub) { -- foreach my $a (attributes::get($sub)) { -- my $m = lc($a); -- next if $a !~ m/^needs_(\w+)_([\w_]+)$/; -- xlog "found attributed test: $name $a"; -- -- my $buildinfo = Cassandane::BuildInfo->new(); -- -- if (not $buildinfo) { -- xlog "Cyrus build info unreadable, " . -- "cannot skip tests for missing features"; -- } -- elsif (not $buildinfo->get($1, $2)) { -- xlog "$1.$2 not enabled, $name will be skipped"; -- delete $tests{$name}; -- } -- } -- } -- } -- -- return sort keys %tests; --} -- - # will magically cause some special actions to be taken during test - # setup. This used to be a horrible hack to enable a replica instance - # if the test name contained the word "replication", but now it's more -diff --git a/Cassandane/Unit/TestCase.pm b/Cassandane/Unit/TestCase.pm -index c67a189..c804896 100644 ---- a/Cassandane/Unit/TestCase.pm -+++ b/Cassandane/Unit/TestCase.pm -@@ -48,10 +48,14 @@ use lib '.'; - use Cassandane::Util::Log; - - my $enabled; -+my $buildinfo; - - sub new - { - my $class = shift; -+ if (not $buildinfo) { -+ $buildinfo = Cassandane::BuildInfo->new(); -+ } - return $class->SUPER::new(@_); - } - -@@ -128,6 +132,20 @@ sub filter - } - return; - }, -+ skip_missing_features => sub -+ { -+ return if not exists $self->{_name}; -+ my $sub = $self->can($self->{_name}); -+ return if not defined $sub; -+ foreach my $attr (attributes::get($sub)) { -+ next if $attr !~ m/^needs_(\w+)_([\w_]+)$/; -+ if (not $buildinfo->get($1, $2)) { -+ xlog "$1.$2 not enabled, $self->{_name} will be skipped"; -+ return 1; -+ } -+ } -+ return; -+ } - }; - } - -diff --git a/testrunner.pl b/testrunner.pl -index 7411ea3..dbc9b1e 100755 ---- a/testrunner.pl -+++ b/testrunner.pl -@@ -108,28 +108,27 @@ - }; - }; - -- - my %runners = - ( - tap => sub - { - my ($plan, $fh) = @_; - my $runner = Cassandane::Unit::Runner->new($fh); -- $runner->filter('x', 'skip_version'); -+ $runner->filter('x', 'skip_version', 'skip_missing_features'); - return $runner->do_run($plan, 0); - }, - pretty => sub - { - my ($plan, $fh) = @_; - my $runner = Cassandane::Unit::RunnerPretty->new({}, $fh); -- $runner->filter('x', 'skip_version'); -+ $runner->filter('x', 'skip_version', 'skip_missing_features'); - return $runner->do_run($plan, 0); - }, - prettier => sub - { - my ($plan, $fh) = @_; - my $runner = Cassandane::Unit::RunnerPretty->new({quiet=>1}, $fh); -- $runner->filter('x', 'skip_version'); -+ $runner->filter('x', 'skip_version', 'skip_missing_features'); - return $runner->do_run($plan, 0); - }, - ); - -From 4af3e5528ce704186ce7a0f23b12f27ea9aed518 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Tue, 22 May 2018 15:28:47 +1000 -Subject: [PATCH 04/11] Sieve: tag sieve tests as :needs_component_sieve - ---- - Cassandane/Cyrus/Autocreate.pm | 2 +- - Cassandane/Cyrus/Replication.pm | 5 +++++ - Cassandane/Cyrus/Sieve.pm | 33 ++++++++++++++++++++++++++++++++- - 3 files changed, 38 insertions(+), 2 deletions(-) - -diff --git a/Cassandane/Cyrus/Autocreate.pm b/Cassandane/Cyrus/Autocreate.pm -index 7ce7e8f..b258ce7 100644 ---- a/Cassandane/Cyrus/Autocreate.pm -+++ b/Cassandane/Cyrus/Autocreate.pm -@@ -117,7 +117,7 @@ sub test_autocreate_specialuse - } - - sub test_autocreate_sieve_script_generation -- :min_version_3_0 -+ :min_version_3_0 :needs_component_sieve - { - my ($self) = @_; - return unless $self->{test_autocreate}; -diff --git a/Cassandane/Cyrus/Replication.pm b/Cassandane/Cyrus/Replication.pm -index 6c8e331..93259f8 100644 ---- a/Cassandane/Cyrus/Replication.pm -+++ b/Cassandane/Cyrus/Replication.pm -@@ -444,6 +444,7 @@ sub assert_sieve_matches - } - - sub test_sieve_replication -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -487,6 +488,7 @@ EOF - } - - sub test_sieve_replication_exists -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -531,6 +533,7 @@ EOF - } - - sub test_sieve_replication_different -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -592,6 +595,7 @@ EOF - } - - sub test_sieve_replication_stale -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -657,6 +661,7 @@ EOF - } - - sub test_sieve_replication_delete_unactivate -+ :needs_component_sieve - { - my ($self) = @_; - -diff --git a/Cassandane/Cyrus/Sieve.pm b/Cassandane/Cyrus/Sieve.pm -index dd232a8..b5b793b 100644 ---- a/Cassandane/Cyrus/Sieve.pm -+++ b/Cassandane/Cyrus/Sieve.pm -@@ -205,7 +205,9 @@ sub compile_sieve_script - return $self->$meth($name, $script); - } - --sub test_vacation_with_following_rules { -+sub test_vacation_with_following_rules -+ :needs_component_sieve -+{ - my ($self) = @_; - - my $target = "INBOX.target"; -@@ -246,6 +248,7 @@ EOF - } - - sub test_deliver -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -285,6 +288,7 @@ EOF - - sub test_deliver_specialuse - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -320,6 +324,7 @@ EOF - - sub test_deliver_compile - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -429,6 +434,7 @@ sub badscript_common - } - - sub test_badscript_sievec -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -438,6 +444,7 @@ sub test_badscript_sievec - } - - sub test_badscript_timsieved -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -447,6 +454,7 @@ sub test_badscript_timsieved - } - - sub test_dup_keep_keep -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -474,6 +482,7 @@ EOF - # tested for here. - - sub test_dup_keep_fileinto -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -497,6 +506,7 @@ EOF - - sub test_deliver_fileinto_dot - :UnixHierarchySep -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -543,6 +553,7 @@ EOF - # on shared mailboxes in 2.5. - sub XXXtest_shared_delivery_addflag - :Admin -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -594,6 +605,7 @@ EOF - - sub test_rfc5490_create - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -645,6 +657,7 @@ EOF - - sub test_rfc5490_mailboxexists - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -701,6 +714,7 @@ EOF - - sub test_rfc5490_mailboxexists_variables - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -758,6 +772,7 @@ EOF - - sub test_rfc5490_metadata - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -812,6 +827,7 @@ EOF - - sub test_rfc5490_metadata_matches - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -869,6 +885,7 @@ EOF - - sub test_rfc5490_metadataexists - :min_version_3_0 :AnnotationAllowUndefined -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -923,6 +940,7 @@ EOF - - sub test_rfc5490_servermetadata - :min_version_3_0 :AnnotationAllowUndefined -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -981,6 +999,7 @@ EOF - - sub test_rfc5490_servermetadataexists - :min_version_3_0 :AnnotationAllowUndefined -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1037,6 +1056,7 @@ EOF - - sub test_variables_basic - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1092,6 +1112,7 @@ EOF - - sub test_sieve_setflag - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1132,6 +1153,7 @@ EOF - - sub test_variables_regex - :min_version_3_0 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1186,6 +1208,7 @@ EOF - } - - sub test_nested_tests_and_discard -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1213,6 +1236,7 @@ EOF - - sub test_editheader - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1248,6 +1272,7 @@ EOF - - sub test_duplicate - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1295,6 +1320,7 @@ EOF - - sub test_ereject - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1320,6 +1346,7 @@ EOF - - sub test_specialuse_exists - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1376,6 +1403,7 @@ EOF - - sub test_specialuse - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1407,6 +1435,7 @@ EOF - - sub test_specialuse_create - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1434,6 +1463,7 @@ EOF - - sub test_vacation_with_fcc - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - -@@ -1477,6 +1507,7 @@ EOF - - sub test_github_issue_complex_variables - :min_version_3_1 -+ :needs_component_sieve - { - my ($self) = @_; - - -From 844c0481f73135be35240e805a269688b99755a8 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 14:35:06 +1000 -Subject: [PATCH 05/11] Autocreate: tag tests as :needs_component_autocreate - ---- - Cassandane/Cyrus/Autocreate.pm | 11 ++--------- - 1 file changed, 2 insertions(+), 9 deletions(-) - -diff --git a/Cassandane/Cyrus/Autocreate.pm b/Cassandane/Cyrus/Autocreate.pm -index b258ce7..6c0d497 100644 ---- a/Cassandane/Cyrus/Autocreate.pm -+++ b/Cassandane/Cyrus/Autocreate.pm -@@ -72,11 +72,6 @@ sub set_up - { - my ($self) = @_; - $self->SUPER::set_up(); -- if (not $self->{instance}->{buildinfo}->get('component', 'autocreate')) { -- xlog "autocreate not enabled. Skipping tests."; -- return; -- } -- $self->{test_autocreate} = 1; - } - - sub tear_down -@@ -86,10 +81,9 @@ sub tear_down - } - - sub test_autocreate_specialuse -- :min_version_3_0 -+ :min_version_3_0 :needs_component_autocreate - { - my ($self) = @_; -- return unless $self->{test_autocreate}; - - my $svc = $self->{instance}->get_service('imap'); - my $store = $svc->create_store(username => 'foo'); -@@ -117,10 +111,9 @@ sub test_autocreate_specialuse - } - - sub test_autocreate_sieve_script_generation -- :min_version_3_0 :needs_component_sieve -+ :min_version_3_0 :needs_component_autocreate :needs_component_sieve - { - my ($self) = @_; -- return unless $self->{test_autocreate}; - - my $basedir = $self->{instance}->get_basedir(); - my $sieve_script_path = $basedir . "/conf/foo_sieve.script"; - -From dcb1fb73e620cc6166ac015351e6fc5a3243d9be Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 14:45:43 +1000 -Subject: [PATCH 06/11] CaldavAlarm: tag tests as :needs_component_calalarmd - ---- - Cassandane/Cyrus/CaldavAlarm.pm | 60 +++++++++++++---------------------------- - 1 file changed, 18 insertions(+), 42 deletions(-) - -diff --git a/Cassandane/Cyrus/CaldavAlarm.pm b/Cassandane/Cyrus/CaldavAlarm.pm -index 3467389..df791b6 100644 ---- a/Cassandane/Cyrus/CaldavAlarm.pm -+++ b/Cassandane/Cyrus/CaldavAlarm.pm -@@ -83,13 +83,6 @@ sub set_up - url => '/', - expandurl => 1, - ); -- -- if (not $self->{instance}->{buildinfo}->get('component', 'calalarmd')) { -- xlog "calalarmd not enabled. Skipping tests."; -- return; -- } -- $self->{test_calalarmd} = 1; -- - } - - sub _can_match { -@@ -159,10 +152,9 @@ sub tear_down - } - - sub test_simple -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -241,10 +233,9 @@ EOF - } - - sub test_simple_reconstruct -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -329,10 +320,9 @@ EOF - } - - sub test_reschedule_later -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -431,10 +421,9 @@ EOF - } - - sub test_override -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -539,10 +528,9 @@ EOF - } - - sub test_override_exception -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -649,10 +637,9 @@ EOF - } - - sub test_floating_notz -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -721,10 +708,9 @@ EOF - } - - sub test_floating_sametz -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -806,7 +792,7 @@ EOF - } - - sub test_floating_differenttz -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; - return if not $self->{test_calalarmd}; -@@ -902,10 +888,9 @@ EOF - } - - sub test_replication_at1 -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - $self->assert_not_null($self->{replica}); - -@@ -1035,10 +1020,9 @@ EOF - } - - sub test_override_double -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -1147,10 +1131,9 @@ EOF - } - - sub test_allday_notz -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -1220,10 +1203,9 @@ EOF - } - - sub test_allday_sametz -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -1306,10 +1288,9 @@ EOF - } - - sub test_replication_withalarms_in_tz_with_dst -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -1413,10 +1394,9 @@ EOF - } - - sub test_replication_withalarms_in_tz_without_dst -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -1512,10 +1492,9 @@ EOF - } - - sub test_reschedule_exception -- :min_version_3_0 -+ :min_version_3_0 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - # FIXME disable this test until calalarmd is fixed - return; -@@ -1698,10 +1677,9 @@ EOF - } - - sub test_simple_multiuser -- :min_version_3_1 -+ :min_version_3_1 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -1851,10 +1829,9 @@ EOF - } - - sub test_override_multiuser -- :min_version_3_1 -+ :min_version_3_1 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - -@@ -2036,10 +2013,9 @@ EOF - } - - sub test_simple_multiuser_sametime -- :min_version_3_1 -+ :min_version_3_1 :needs_component_calalarmd - { - my ($self) = @_; -- return if not $self->{test_calalarmd}; - - my $CalDAV = $self->{caldav}; - - -From f7afc06127d9e08021339182a72de68876bcb882 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 14:57:19 +1000 -Subject: [PATCH 07/11] ClamAV: tag tests as :needs_dependency_clamav - ---- - Cassandane/Cyrus/ClamAV.pm | 10 ++-------- - 1 file changed, 2 insertions(+), 8 deletions(-) - -diff --git a/Cassandane/Cyrus/ClamAV.pm b/Cassandane/Cyrus/ClamAV.pm -index d199b66..15394f1 100644 ---- a/Cassandane/Cyrus/ClamAV.pm -+++ b/Cassandane/Cyrus/ClamAV.pm -@@ -79,17 +79,11 @@ sub set_up - { - my ($self) = @_; - $self->SUPER::set_up(); -- if (not $self->{instance}->{buildinfo}->get('dependency', 'clamav')) { -- xlog "clamav not enabled. Skipping tests."; -- return; -- } - - # set up a shared folder that's easy to write to - my $admintalk = $self->{adminstore}->get_client(); - $admintalk->create('shared.folder'); - $admintalk->setacl('shared.folder', 'cassandane' => 'lrswipkxtecd'); -- -- $self->{test_clamav} = 1; - } - - sub tear_down -@@ -99,18 +93,18 @@ sub tear_down - } - - sub test_aaasetup -+ :needs_dependency_clamav - { - my ($self) = @_; -- return if not $self->{test_clamav}; - - # does everything set up and tear down cleanly? - $self->assert(1); - } - - sub test_remove_infected -+ :needs_dependency_clamav - { - my ($self) = @_; -- return if not $self->{test_clamav}; - - $self->{store}->set_fetch_attributes(qw(uid flags)); - - -From af006bbccdd2d4e8dafc423098e983c11ddbea5c Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 15:12:12 +1000 -Subject: [PATCH 08/11] SearchFuzzy: tag tests as :needs_search_xapian - ---- - Cassandane/Cyrus/SearchFuzzy.pm | 55 ++++++++++++++--------------------------- - 1 file changed, 18 insertions(+), 37 deletions(-) - -diff --git a/Cassandane/Cyrus/SearchFuzzy.pm b/Cassandane/Cyrus/SearchFuzzy.pm -index e88cbba..e928939 100644 ---- a/Cassandane/Cyrus/SearchFuzzy.pm -+++ b/Cassandane/Cyrus/SearchFuzzy.pm -@@ -61,12 +61,6 @@ sub set_up - my ($self) = @_; - $self->SUPER::set_up(); - -- if (not $self->{instance}->{buildinfo}->get('search', 'xapian')) { -- xlog "No xapian support enabled. Skipping tests."; -- return; -- } -- $self->{test_fuzzy_search} = 1; -- - # This will be "vanilla" if using a standard/distro xapian, "cyruslibs" - # if using our fork of xapian, or "none" if the Cyrus being tested isn't - # new enough to know the difference. -@@ -140,6 +134,7 @@ sub create_testmessages - } - - sub test_copy_messages -+ :needs_search_xapian - { - my ($self) = @_; - -@@ -155,10 +150,9 @@ sub test_copy_messages - } - - sub test_stem_verbs -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - $self->create_testmessages(); - - my $talk = $self->{store}->get_client(); -@@ -189,10 +183,9 @@ sub test_stem_verbs - } - - sub test_stem_any -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - $self->create_testmessages(); - - my $talk = $self->{store}->get_client(); -@@ -218,10 +211,9 @@ sub test_stem_any - } - - sub test_snippet_wildcard -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - # Set up Xapian database - xlog "Generate and index test messages"; -@@ -267,10 +259,9 @@ sub test_snippet_wildcard - } - - sub test_mix_fuzzy_and_nonfuzzy -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - $self->create_testmessages(); - my $talk = $self->{store}->get_client(); - -@@ -286,7 +277,7 @@ sub test_mix_fuzzy_and_nonfuzzy - } - - sub test_weird_crasher -- :Conversations :min_version_3_0 -+ :Conversations :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; - return if not $self->{test_fuzzy_search}; -@@ -303,10 +294,9 @@ sub test_weird_crasher - } - - sub test_stopwords -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - # This test assumes that "the" is a stopword and is configured with - # the search_stopword_path in cassandane.ini. If the option is not -@@ -368,10 +358,9 @@ sub test_stopwords - } - - sub test_normalize_snippets -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - # Set up test message with funny characters - my $body = "foo gären советской diĝir naïve léger"; -@@ -417,10 +406,9 @@ sub test_normalize_snippets - } - - sub test_skipdiacrit -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - # Set up test messages - my $body = "Die Trauben gären."; -@@ -469,10 +457,9 @@ sub test_skipdiacrit - } - - sub test_snippets_termcover -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - my $body = - "The 'charset' portion of an 'encoded-word' specifies the character ". -@@ -553,10 +540,9 @@ sub test_snippets_termcover - } - - sub test_cjk_words -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - xlog "Generate and index test messages."; - -@@ -635,10 +621,9 @@ sub test_cjk_words - } - - sub test_subject_isutf8 -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - xlog "Generate and index test messages."; - # that's: "nuff réunion critères duff" -@@ -699,9 +684,9 @@ sub test_subject_isutf8 - } - - sub test_noindex_multipartheaders -+ :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - my $talk = $self->{store}->get_client(); - -@@ -771,9 +756,9 @@ sub test_noindex_multipartheaders - } - - sub test_xattachmentname -+ :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - my $talk = $self->{store}->get_client(); - -@@ -825,10 +810,9 @@ sub test_xattachmentname - - - sub test_xapianv2 -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - my $talk = $self->{store}->get_client(); - -@@ -906,10 +890,9 @@ sub test_xapianv2 - } - - sub test_snippets_escapehtml -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - xlog "Generate and index test messages."; - $self->make_message("Test1 subject with an unescaped & in it", -@@ -953,10 +936,9 @@ sub test_snippets_escapehtml - } - - sub test_search_exactmatch -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - xlog "Generate and index test messages."; - $self->make_message("test1", -@@ -995,10 +977,9 @@ sub test_search_exactmatch - } - - sub test_search_subjectsnippet -- :min_version_3_0 -+ :min_version_3_0 :needs_search_xapian - { - my ($self) = @_; -- return if not $self->{test_fuzzy_search}; - - xlog "Generate and index test messages."; - $self->make_message("[plumbing] Re: log server v0 live", - -From fa60d4d01175922af6659fd6f380a437719dc3aa Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 15:40:01 +1000 -Subject: [PATCH 09/11] JMAP*: remove :JMAP magic, just set up config in the - usual way - ---- - Cassandane/Cyrus/JMAPCalendars.pm | 142 +++++++++--------- - Cassandane/Cyrus/JMAPContacts.pm | 58 ++++---- - Cassandane/Cyrus/JMAPCore.pm | 20 ++- - Cassandane/Cyrus/JMAPMail.pm | 300 ++++++++++++++++++++------------------ - Cassandane/Cyrus/TestCase.pm | 13 +- - 5 files changed, 279 insertions(+), 254 deletions(-) - -diff --git a/Cassandane/Cyrus/JMAPCalendars.pm b/Cassandane/Cyrus/JMAPCalendars.pm -index eeb9f0d..80eadeb 100644 ---- a/Cassandane/Cyrus/JMAPCalendars.pm -+++ b/Cassandane/Cyrus/JMAPCalendars.pm -@@ -60,10 +60,18 @@ sub new - { - my ($class, @args) = @_; - my $config = Cassandane::Config->default()->clone(); -- $config->set(caldav_historical_age => -1); -+ $config->set(caldav_realm => 'Cassandane', -+ caldav_historical_age => -1, -+ conversations => 'yes', -+ httpmodules => 'carddav caldav jmap', -+ httpallowcompress => 'no'); -+ - return $class->SUPER::new({ -- config => $config, -- }, @args); -+ config => $config, -+ jmap => 1, -+ adminstore => 1, -+ services => [ 'imap', 'http' ] -+ }, @args); - } - - sub set_up -@@ -73,7 +81,7 @@ sub set_up - } - - sub test_calendar_get -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -117,7 +125,7 @@ sub test_calendar_get - } - - sub test_calendar_get_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -185,7 +193,7 @@ sub test_calendar_get_shared - - - sub test_calendar_get_default -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -200,7 +208,7 @@ sub test_calendar_get_default - } - - sub test_calendar_set -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -261,7 +269,7 @@ sub test_calendar_set - } - - sub test_calendar_set_state -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -362,7 +370,7 @@ sub test_calendar_set_state - } - - sub test_calendar_set_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -471,7 +479,7 @@ sub test_calendar_set_shared - - - sub test_calendar_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -575,7 +583,7 @@ sub test_calendar_changes - } - - sub test_calendar_set_error -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -664,7 +672,7 @@ sub test_calendar_set_error - } - - sub test_calendar_set_badname -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -688,7 +696,7 @@ sub test_calendar_set_badname - } - - sub test_calendar_set_destroydefault -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -911,7 +919,7 @@ sub icalfile - } - - sub test_calendarevent_get_simple -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -940,7 +948,7 @@ sub test_calendarevent_get_simple - } - - sub test_calendarevent_get_privacy -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -952,7 +960,7 @@ sub test_calendarevent_get_privacy - } - - sub test_calendarevent_get_properties -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -968,7 +976,7 @@ sub test_calendarevent_get_properties - } - - sub test_calendarevent_get_relatedto -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -985,7 +993,7 @@ sub test_calendarevent_get_relatedto - } - - sub test_calendarevent_get_links -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1009,7 +1017,7 @@ sub test_calendarevent_get_links - - - sub test_calendarevent_get_rscale -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1026,7 +1034,7 @@ sub test_calendarevent_get_rscale - } - - sub test_calendarevent_get_endtimezone -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1045,7 +1053,7 @@ sub test_calendarevent_get_endtimezone - } - - sub test_calendarevent_get_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1059,7 +1067,7 @@ sub test_calendarevent_get_keywords - } - - sub test_calendarevent_get_description -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1072,7 +1080,7 @@ sub test_calendarevent_get_description - } - - sub test_calendarevent_get_participants -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1113,7 +1121,7 @@ sub test_calendarevent_get_participants - } - - sub test_calendarevent_get_recurrence -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1146,7 +1154,7 @@ sub test_calendarevent_get_recurrence - } - - sub test_calendarevent_get_rdate_period -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1162,7 +1170,7 @@ sub test_calendarevent_get_rdate_period - - - sub test_calendarevent_get_recurrenceoverrides -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1192,7 +1200,7 @@ sub test_calendarevent_get_recurrenceoverrides - } - - sub test_calendarevent_get_alerts -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1253,7 +1261,7 @@ sub test_calendarevent_get_alerts - } - - sub test_calendarevent_get_locations -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1266,7 +1274,7 @@ sub test_calendarevent_get_locations - } - - sub test_calendarevent_get_locations_uri -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1280,7 +1288,7 @@ sub test_calendarevent_get_locations_uri - } - - sub test_calendarevent_get_locations_geo -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1293,7 +1301,7 @@ sub test_calendarevent_get_locations_geo - } - - sub test_calendarevent_get_locations_apple -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1307,7 +1315,7 @@ sub test_calendarevent_get_locations_apple - } - - sub test_calendarevent_get_locations_conference -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1334,7 +1342,7 @@ sub test_calendarevent_get_locations_conference - } - - sub test_calendarevent_get_infinite_delegates -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1427,7 +1435,7 @@ sub createcalendar - } - - sub test_calendarevent_set_type -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1473,7 +1481,7 @@ sub test_calendarevent_set_type - - - sub test_calendarevent_set_simple -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1506,7 +1514,7 @@ sub test_calendarevent_set_simple - } - - sub test_calendarevent_set_bymonth --:JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1547,7 +1555,7 @@ sub test_calendarevent_set_bymonth - } - - sub test_calendarevent_set_relatedto -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1582,7 +1590,7 @@ sub test_calendarevent_set_relatedto - } - - sub test_calendarevent_set_prodid -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1613,7 +1621,7 @@ sub test_calendarevent_set_prodid - } - - sub test_calendarevent_set_endtimezone -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1654,7 +1662,7 @@ sub test_calendarevent_set_endtimezone - } - - sub test_calendarevent_set_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1678,7 +1686,7 @@ sub test_calendarevent_set_keywords - } - - sub test_calendarevent_set_endtimezone_recurrence -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1720,7 +1728,7 @@ sub test_calendarevent_set_endtimezone_recurrence - } - - sub test_calendarevent_set_description -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1750,7 +1758,7 @@ sub test_calendarevent_set_description - } - - sub test_calendarevent_set_links -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1798,7 +1806,7 @@ sub test_calendarevent_set_links - } - - sub test_calendarevent_set_locations -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1881,7 +1889,7 @@ sub test_calendarevent_set_locations - } - - sub test_calendarevent_set_locations_single -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1925,7 +1933,7 @@ sub test_calendarevent_set_locations_single - } - - sub test_calendarevent_set_recurrence -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1964,7 +1972,7 @@ sub test_calendarevent_set_recurrence - } - - sub test_calendarevent_set_recurrenceoverrides -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2041,7 +2049,7 @@ sub test_calendarevent_set_recurrenceoverrides - } - - sub test_calendarevent_set_participants -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2145,7 +2153,7 @@ sub test_calendarevent_set_participants - } - - sub test_calendarevent_set_alerts -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2211,7 +2219,7 @@ sub test_calendarevent_set_alerts - } - - sub test_calendarevent_set_participantid -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2256,7 +2264,7 @@ sub test_calendarevent_set_participantid - - - sub test_calendarevent_set_isallday -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2305,7 +2313,7 @@ sub test_calendarevent_set_isallday - } - - sub test_calendarevent_set_move -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2379,7 +2387,7 @@ sub test_calendarevent_set_move - } - - sub test_calendarevent_set_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2540,7 +2548,7 @@ sub test_calendarevent_set_shared - - - sub test_calendarevent_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2711,7 +2719,7 @@ sub test_calendarevent_changes - } - - sub test_calendarevent_query --:JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2841,7 +2849,7 @@ sub test_calendarevent_query - } - - sub test_calendarevent_query_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3002,7 +3010,7 @@ sub test_calendarevent_query_shared - } - - sub test_calendarevent_query_datetime -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3110,7 +3118,7 @@ sub test_calendarevent_query_datetime - } - - sub test_calendarevent_query_date -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3239,7 +3247,7 @@ sub test_calendarevent_query_date - } - - sub test_calendarevent_query_text -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3350,7 +3358,7 @@ sub test_calendarevent_query_text - } - - sub test_calendarevent_query_unixepoch -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3393,7 +3401,7 @@ sub test_calendarevent_query_unixepoch - - - sub test_calendarevent_set_caldav -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3521,7 +3529,7 @@ EOF - } - - sub test_calendarevent_set_schedule_request -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3573,7 +3581,7 @@ sub test_calendarevent_set_schedule_request - } - - sub test_calendarevent_set_schedule_reply -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3634,7 +3642,7 @@ sub test_calendarevent_set_schedule_reply - } - - sub test_calendarevent_set_schedule_cancel -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3698,7 +3706,7 @@ sub test_calendarevent_set_schedule_cancel - } - - sub test_misc_creationids --:JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3733,7 +3741,7 @@ sub test_misc_creationids - } - - sub test_misc_timezone_expansion -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -3773,7 +3781,7 @@ sub test_misc_timezone_expansion - } - - sub test_calendarevent_set_uid -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -diff --git a/Cassandane/Cyrus/JMAPContacts.pm b/Cassandane/Cyrus/JMAPContacts.pm -index 79e0e8e..6b844e2 100644 ---- a/Cassandane/Cyrus/JMAPContacts.pm -+++ b/Cassandane/Cyrus/JMAPContacts.pm -@@ -57,14 +57,18 @@ use charnames ':full'; - sub new - { - my ($class, @args) = @_; -+ - my $config = Cassandane::Config->default()->clone(); -- $config->set(caldav_realm => 'Cassandane'); -- $config->set(httpmodules => 'carddav jmap'); -- $config->set(httpallowcompress => 'no'); -+ $config->set(caldav_realm => 'Cassandane', -+ conversations => 'yes', -+ httpmodules => 'carddav caldav jmap', -+ httpallowcompress => 'no'); -+ - return $class->SUPER::new({ -- adminstore => 1, -- config => $config, -- services => ['imap', 'http'], -+ config => $config, -+ jmap => 1, -+ adminstore => 1, -+ services => [ 'imap', 'http' ] - }, @args); - } - -@@ -75,7 +79,7 @@ sub set_up - } - - sub test_contact_set_multicontact -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -123,7 +127,7 @@ sub test_contact_set_multicontact - } - - sub test_contact_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -246,7 +250,7 @@ sub test_contact_changes - } - - sub test_contact_changes_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -407,7 +411,7 @@ sub test_contact_changes_shared - } - - sub test_contact_set_nickname -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -434,7 +438,7 @@ sub test_contact_set_nickname - } - - sub test_contactgroup_set -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - - my ($self) = @_; -@@ -500,7 +504,7 @@ sub test_contactgroup_set - } - - sub test_contact_query -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -673,7 +677,7 @@ sub test_contact_query - - - sub test_contact_query_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -881,7 +885,7 @@ sub test_contact_query_shared - } - - sub test_contactgroup_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1014,7 +1018,7 @@ sub test_contactgroup_changes - } - - sub test_contactgroup_changes_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1184,7 +1188,7 @@ sub test_contactgroup_changes_shared - } - - sub test_contact_set -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1498,7 +1502,7 @@ sub test_contact_set - } - - sub test_contact_set_emaillabel -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1549,7 +1553,7 @@ sub test_contact_set_emaillabel - - - sub test_contact_set_state -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1616,7 +1620,7 @@ sub test_contact_set_state - } - - sub test_contact_set_importance_later -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1651,7 +1655,7 @@ sub test_contact_set_importance_later - } - - sub test_contact_set_importance_upfront -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1686,7 +1690,7 @@ sub test_contact_set_importance_upfront - } - - sub test_contact_set_importance_multiedit -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1721,7 +1725,7 @@ sub test_contact_set_importance_multiedit - } - - sub test_contact_set_importance_zero_multi -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1756,7 +1760,7 @@ sub test_contact_set_importance_zero_multi - } - - sub test_contact_set_importance_zero_byself -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1791,7 +1795,7 @@ sub test_contact_set_importance_zero_byself - } - - sub test_misc_creationids -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1814,7 +1818,7 @@ sub test_misc_creationids - } - - sub test_misc_categories -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1873,7 +1877,7 @@ EOF - } - - sub test_contact_get_issue2292 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1899,7 +1903,7 @@ sub test_contact_get_issue2292 - } - - sub test_contactgroup_get_issue2292 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -diff --git a/Cassandane/Cyrus/JMAPCore.pm b/Cassandane/Cyrus/JMAPCore.pm -index c974ddc..83a8122 100644 ---- a/Cassandane/Cyrus/JMAPCore.pm -+++ b/Cassandane/Cyrus/JMAPCore.pm -@@ -59,11 +59,23 @@ use charnames ':full'; - sub new - { - my ($class, @args) = @_; -- return $class->SUPER::new({}, @args); -+ -+ my $config = Cassandane::Config->default()->clone(); -+ $config->set(caldav_realm => 'Cassandane', -+ conversations => 'yes', -+ httpmodules => 'carddav caldav jmap', -+ httpallowcompress => 'no'); -+ -+ return $class->SUPER::new({ -+ config => $config, -+ jmap => 1, -+ adminstore => 1, -+ services => [ 'imap', 'http' ] -+ }, @args); - } - - sub test_settings -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -179,7 +191,7 @@ sub test_settings - } - - sub test_blob_download --:JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -217,7 +229,7 @@ sub test_blob_download - } - - sub test_creationids --:JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -diff --git a/Cassandane/Cyrus/JMAPMail.pm b/Cassandane/Cyrus/JMAPMail.pm -index ca3b14b..660a0b5 100644 ---- a/Cassandane/Cyrus/JMAPMail.pm -+++ b/Cassandane/Cyrus/JMAPMail.pm -@@ -59,7 +59,19 @@ use charnames ':full'; - sub new - { - my ($class, @args) = @_; -- return $class->SUPER::new({}, @args); -+ -+ my $config = Cassandane::Config->default()->clone(); -+ $config->set(caldav_realm => 'Cassandane', -+ conversations => 'yes', -+ httpmodules => 'carddav caldav jmap', -+ httpallowcompress => 'no'); -+ -+ return $class->SUPER::new({ -+ config => $config, -+ jmap => 1, -+ adminstore => 1, -+ services => [ 'imap', 'http' ] -+ }, @args); - } - - sub set_up -@@ -90,7 +102,7 @@ sub getinbox - } - - sub test_mailbox_get -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -168,7 +180,7 @@ sub test_mailbox_get - } - - sub test_mailbox_get_specialuse -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -216,7 +228,7 @@ sub test_mailbox_get_specialuse - } - - sub test_mailbox_get_properties -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -244,7 +256,7 @@ sub test_mailbox_get_properties - } - - sub test_mailbox_get_ids -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -282,7 +294,7 @@ sub test_mailbox_get_ids - } - - sub test_mailbox_get_nocalendars -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -317,7 +329,7 @@ sub test_mailbox_get_nocalendars - } - - sub test_mailbox_get_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -378,7 +390,7 @@ sub test_mailbox_get_shared - } - - sub test_mailbox_query -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -519,7 +531,7 @@ sub test_mailbox_query - } - - sub test_mailbox_query_parentname -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -562,7 +574,7 @@ sub test_mailbox_query_parentname - } - - sub test_mailbox_query_limit_zero -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -577,7 +589,7 @@ sub test_mailbox_query_limit_zero - } - - sub test_mailbox_query_parentid_null -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -610,7 +622,7 @@ sub test_mailbox_query_parentid_null - } - - sub test_mailbox_query_filteroperator -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - return; -@@ -685,7 +697,7 @@ sub test_mailbox_query_filteroperator - } - - sub test_mailbox_query_issue2286 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -699,7 +711,7 @@ sub test_mailbox_query_issue2286 - } - - sub test_mailbox_querychanges -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -723,7 +735,7 @@ sub test_mailbox_querychanges - } - - sub test_mailbox_set -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -805,7 +817,7 @@ sub test_mailbox_set - } - - sub test_mailbox_get_shared_parents -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -843,7 +855,7 @@ sub test_mailbox_get_shared_parents - } - - sub test_mailbox_set_name_missing -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -865,7 +877,7 @@ sub test_mailbox_set_name_missing - - - sub test_mailbox_set_name_collision -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -968,7 +980,7 @@ sub test_mailbox_set_name_collision - } - - sub test_mailbox_set_name_interop -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1024,7 +1036,7 @@ sub test_mailbox_set_name_interop - } - - sub test_mailbox_set_name_unicode_nfc -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1056,7 +1068,7 @@ sub test_mailbox_set_name_unicode_nfc - - - sub test_mailbox_set_role -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1191,7 +1203,7 @@ sub test_mailbox_set_role - } - - sub test_mailbox_set_no_outbox_role -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1209,7 +1221,7 @@ sub test_mailbox_set_no_outbox_role - - - sub test_mailbox_set_parent -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1303,7 +1315,7 @@ sub test_mailbox_set_parent - } - - sub test_mailbox_set_parent_acl -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1336,7 +1348,7 @@ sub test_mailbox_set_parent_acl - } - - sub test_mailbox_set_destroy_empty -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1405,7 +1417,7 @@ sub test_mailbox_set_destroy_empty - } - - sub test_mailbox_set_destroy_removemsgs -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1462,7 +1474,7 @@ sub test_mailbox_set_destroy_removemsgs - } - - sub test_mailbox_set_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1529,7 +1541,7 @@ sub test_mailbox_set_shared - } - - sub test_mailbox_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1676,7 +1688,7 @@ sub test_mailbox_changes - } - - sub test_mailbox_changes_counts -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1791,7 +1803,7 @@ sub test_mailbox_changes_counts - - - sub test_mailbox_changes_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -1868,7 +1880,7 @@ sub defaultprops_for_email_get - } - - sub test_email_get -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1970,7 +1982,7 @@ sub test_email_get - } - - sub test_email_get_mimeencode -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2038,7 +2050,7 @@ sub test_email_get_mimeencode - } - - sub test_email_get_multimailboxes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2079,7 +2091,7 @@ sub test_email_get_multimailboxes - } - - sub test_email_get_body_both -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2129,7 +2141,7 @@ sub test_email_get_body_both - } - - sub test_email_get_body_plain -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2163,7 +2175,7 @@ sub test_email_get_body_plain - } - - sub test_email_get_body_html -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2197,7 +2209,7 @@ sub test_email_get_body_html - } - - sub test_email_get_attachment_name -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2302,7 +2314,7 @@ sub test_email_get_attachment_name - } - - sub test_email_get_body_notext -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2331,7 +2343,7 @@ sub test_email_get_body_notext - - - sub test_email_get_preview -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2362,7 +2374,7 @@ sub test_email_get_preview - } - - sub test_email_get_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2403,7 +2415,7 @@ sub test_email_get_shared - } - - sub test_email_set_draft -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2477,7 +2489,7 @@ sub test_email_set_draft - } - - sub test_email_set_issue2293 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2554,7 +2566,7 @@ sub test_email_set_issue2293 - } - - sub test_email_set_inreplyto -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2617,7 +2629,7 @@ sub test_email_set_inreplyto - } - - sub test_email_set_attachedemails -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2685,7 +2697,7 @@ sub test_email_set_attachedemails - } - - sub test_email_set_bodystructure -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2798,7 +2810,7 @@ sub test_email_set_bodystructure - } - - sub test_email_set_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -2859,7 +2871,7 @@ sub test_email_set_shared - } - - sub test_email_set_userkeywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2931,7 +2943,7 @@ sub test_email_set_userkeywords - } - - sub test_misc_upload_zero -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2980,7 +2992,7 @@ sub test_misc_upload_zero - } - - sub test_misc_upload -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3033,7 +3045,7 @@ sub test_misc_upload - } - - sub test_misc_upload_multiaccount -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3056,7 +3068,7 @@ sub test_misc_upload_multiaccount - } - - sub test_misc_upload_bin -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3105,7 +3117,7 @@ sub test_misc_upload_bin - } - - sub test_misc_download -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3170,7 +3182,7 @@ sub download - } - - sub test_blob_copy -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3232,7 +3244,7 @@ sub test_blob_copy - } - - sub test_email_set_attachments -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3387,7 +3399,7 @@ sub test_email_set_attachments - } - - sub test_email_set_flagged -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3425,7 +3437,7 @@ sub test_email_set_flagged - } - - sub test_email_set_mailboxids -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3479,7 +3491,7 @@ sub test_email_set_mailboxids - } - - sub test_email_get_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3556,7 +3568,7 @@ sub test_email_get_keywords - } - - sub test_email_get_keywords_case_insensitive -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3589,7 +3601,7 @@ sub test_email_get_keywords_case_insensitive - } - - sub test_email_set_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3721,7 +3733,7 @@ sub test_email_set_keywords - } - - sub test_emailsubmission_set -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3773,7 +3785,7 @@ sub test_emailsubmission_set - } - - sub test_emailsubmission_set_with_envelope -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3813,7 +3825,7 @@ sub test_emailsubmission_set_with_envelope - } - - sub test_emailsubmission_set_issue2285 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3876,7 +3888,7 @@ sub test_emailsubmission_set_issue2285 - } - - sub test_emailsubmission_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3925,7 +3937,7 @@ sub test_emailsubmission_changes - } - - sub test_emailsubmission_query -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3946,7 +3958,7 @@ sub test_emailsubmission_query - } - - sub test_emailsubmission_querychanges -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3967,7 +3979,7 @@ sub test_emailsubmission_querychanges - } - - sub test_email_set_move -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4027,7 +4039,7 @@ sub test_email_set_move - } - - sub test_email_set_move_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4085,7 +4097,7 @@ sub test_email_set_move_keywords - } - - sub test_email_set_update -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4140,7 +4152,7 @@ sub test_email_set_update - } - - sub test_email_set_seen -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4179,7 +4191,7 @@ sub test_email_set_seen - } - - sub test_email_set_destroy -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4255,7 +4267,7 @@ sub test_email_set_destroy - } - - sub test_email_query -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4582,7 +4594,7 @@ sub test_email_query - } - - sub test_email_query_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4935,7 +4947,7 @@ sub test_email_query_shared - } - - sub test_email_query_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5033,7 +5045,7 @@ sub test_email_query_keywords - } - - sub test_email_query_userkeywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5102,7 +5114,7 @@ sub test_email_query_userkeywords - } - - sub test_email_query_threadkeywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5283,7 +5295,7 @@ sub test_email_query_threadkeywords - } - - sub test_email_query_empty -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5303,7 +5315,7 @@ sub test_email_query_empty - } - - sub test_email_query_collapse -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5355,7 +5367,7 @@ sub test_email_query_collapse - } - - sub test_email_query_inmailbox_null -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5373,7 +5385,7 @@ sub test_email_query_inmailbox_null - } - - sub test_misc_collapsethreads_issue2024 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5414,7 +5426,7 @@ sub test_misc_collapsethreads_issue2024 - } - - sub test_email_query_window -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5504,7 +5516,7 @@ sub test_email_query_window - } - - sub test_email_query_long -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5548,7 +5560,7 @@ sub test_email_query_long - } - - sub test_email_query_acl -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5607,7 +5619,7 @@ sub test_email_query_acl - } - - sub test_email_query_unknown_mailbox -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5631,7 +5643,7 @@ sub test_email_query_unknown_mailbox - - - sub test_searchsnippet_get -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5740,7 +5752,7 @@ sub test_searchsnippet_get - } - - sub test_searchsnippet_get_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5803,7 +5815,7 @@ sub test_searchsnippet_get_shared - } - - sub test_email_query_snippets -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -5888,7 +5900,7 @@ sub test_email_query_snippets - } - - sub test_email_query_attachments -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5991,7 +6003,7 @@ sub test_email_query_attachments - } - - sub test_email_query_attachmentname -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6050,7 +6062,7 @@ sub test_email_query_attachmentname - } - - sub test_email_query_attachmenttype -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6150,7 +6162,7 @@ sub test_email_query_attachmenttype - } - - sub test_thread_get -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -6257,7 +6269,7 @@ sub test_thread_get - } - - sub test_identity_get -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6281,7 +6293,7 @@ sub test_identity_get - } - - sub test_misc_emptyids -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -6308,7 +6320,7 @@ sub test_misc_emptyids - } - - sub test_email_querychanges_basic -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6359,7 +6371,7 @@ sub test_email_querychanges_basic - } - - sub test_email_querychanges_basic_collapse -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6412,7 +6424,7 @@ sub test_email_querychanges_basic_collapse - } - - sub test_email_querychanges_basic_mb -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6465,7 +6477,7 @@ sub test_email_querychanges_basic_mb - } - - sub test_email_querychanges_basic_mb_collapse -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6586,7 +6598,7 @@ sub test_email_querychanges_basic_mb_collapse - } - - sub test_email_querychanges_skipdeleted -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6648,7 +6660,7 @@ sub test_email_querychanges_skipdeleted - } - - sub test_email_querychanges_deletedcopy -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6711,7 +6723,7 @@ sub test_email_querychanges_deletedcopy - } - - sub test_email_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6872,7 +6884,7 @@ sub test_email_changes - } - - sub test_email_querychanges -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6910,7 +6922,7 @@ sub test_email_querychanges - } - - sub test_email_querychanges_zerosince -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6948,7 +6960,7 @@ sub test_email_querychanges_zerosince - - - sub test_email_querychanges_thread -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7026,7 +7038,7 @@ sub test_email_querychanges_thread - } - - sub test_email_querychanges_order -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7085,7 +7097,7 @@ sub test_email_querychanges_order - } - - sub test_email_querychanges_implementation -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7232,7 +7244,7 @@ sub test_email_querychanges_implementation - } - - sub test_email_changes_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7321,7 +7333,7 @@ sub test_email_changes_shared - } - - sub test_misc_upload_download822 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7347,7 +7359,7 @@ EOF - } - - sub test_misc_upload_sametype -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7364,7 +7376,7 @@ sub test_misc_upload_sametype - } - - sub test_misc_brokenrfc822_badendline -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7412,7 +7424,7 @@ EOF - } - - sub test_email_import_zerobyte -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7460,7 +7472,7 @@ EOF - - - sub test_email_import_setdate -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7520,7 +7532,7 @@ EOF - } - - sub test_thread_get_onemsg -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -7589,7 +7601,7 @@ EOF - } - - sub test_thread_changes -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my %exp; -@@ -7809,7 +7821,7 @@ sub test_thread_changes - } - - sub test_email_import -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7907,7 +7919,7 @@ sub test_email_import - } - - sub test_email_import_error -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7943,7 +7955,7 @@ sub test_email_import_error - - - sub test_email_import_shared -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7989,7 +8001,7 @@ EOF - } - - sub test_misc_refobjects_simple -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8024,7 +8036,7 @@ sub test_misc_refobjects_simple - } - - sub test_email_import_no_keywords -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8061,7 +8073,7 @@ EOF - } - - sub test_misc_refobjects_extended -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8102,7 +8114,7 @@ sub test_misc_refobjects_extended - } - - sub test_email_set_patch -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8180,7 +8192,7 @@ sub test_email_set_patch - } - - sub test_capability -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -@@ -8210,7 +8222,7 @@ sub test_capability - } - - sub test_misc_set_oldstate -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8264,7 +8276,7 @@ sub test_misc_set_oldstate - } - - sub test_email_set_text_crlf -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8296,7 +8308,7 @@ sub test_email_set_text_crlf - } - - sub test_email_set_text_split -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8326,7 +8338,7 @@ sub test_email_set_text_split - } - - sub test_email_get_attachedemails -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8383,7 +8395,7 @@ sub test_email_get_attachedemails - } - - sub test_email_get_maxbodyvaluebytes_utf8 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8432,7 +8444,7 @@ sub test_email_get_maxbodyvaluebytes_utf8 - } - - sub test_email_get_header_all -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8464,7 +8476,7 @@ sub test_email_get_header_all - } - - sub test_email_set_nullheader -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8499,7 +8511,7 @@ sub test_email_set_nullheader - } - - sub test_email_set_headers -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8641,7 +8653,7 @@ sub test_email_set_headers - } - - sub test_email_download -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8687,7 +8699,7 @@ sub test_email_download - } - - sub test_email_embedded_download -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8738,7 +8750,7 @@ sub test_email_embedded_download - } - - sub test_blob_download -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8757,7 +8769,7 @@ sub test_blob_download - } - - sub test_email_set_filename -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8833,7 +8845,7 @@ sub test_email_set_filename - } - - sub test_email_get_size -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8856,7 +8868,7 @@ sub test_email_get_size - } - - sub test_email_get_references -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8885,7 +8897,7 @@ sub test_email_get_references - } - - sub test_email_get_groupaddr -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8924,7 +8936,7 @@ sub test_email_get_groupaddr - } - - sub test_email_parse -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8998,7 +9010,7 @@ sub test_email_parse - } - - sub test_email_parse_digest -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9040,7 +9052,7 @@ sub test_email_parse_digest - } - - sub test_email_parse_blob822 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9068,7 +9080,7 @@ EOF - } - - sub test_email_parse_notparsable -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9088,7 +9100,7 @@ EOF - } - - sub test_email_get_bodystructure -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9311,7 +9323,7 @@ sub test_email_get_bodystructure - } - - sub test_email_get_calendarevents -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9388,7 +9400,7 @@ sub test_email_get_calendarevents - } - - sub test_email_set_blobencoding -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9461,7 +9473,7 @@ EOF - } - - sub test_email_body_alternative_without_html -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9509,7 +9521,7 @@ sub test_email_body_alternative_without_html - } - - sub test_mailbox_set_issue2377 -- :JMAP :min_version_3_1 -+ :min_version_3_1 - { - my ($self) = @_; - -diff --git a/Cassandane/Cyrus/TestCase.pm b/Cassandane/Cyrus/TestCase.pm -index b519c6d..ffff77f 100644 ---- a/Cassandane/Cyrus/TestCase.pm -+++ b/Cassandane/Cyrus/TestCase.pm -@@ -97,6 +97,7 @@ sub new - adminstore => 0, - gen => 1, - deliver => 0, -+ jmap => 0, - }; - map { - $want->{$_} = delete $params->{$_} -@@ -232,18 +233,6 @@ magic(MagicPlus => sub { - magic(FastMailSharing => sub { - shift->config_set('fastmailsharing' => 'true'); - }); --magic(JMAP => sub { -- my $self = shift; -- $self->want('jmap'); -- $self->want('adminstore'); -- $self->want('services' => [ 'imap', 'http' ]); -- $self->config_set(caldav_realm => 'Cassandane'); -- $self->config_set(conversations => 'yes'); -- $self->config_set(httpmodules => 'carddav caldav jmap'); -- $self->config_set(httpallowcompress => 'no'); --}); -- -- - - # Run any magic handlers indicated by the test name or attributes - sub _run_magic - -From 5762c87d718f928671390e5755b02a4685bf94c9 Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 16:04:44 +1000 -Subject: [PATCH 10/11] JMAP*: tag tests as :needs_component_jmap - ---- - Cassandane/Cyrus/JMAPCalendars.pm | 128 ++++++++--------- - Cassandane/Cyrus/JMAPContacts.pm | 42 +++--- - Cassandane/Cyrus/JMAPCore.pm | 6 +- - Cassandane/Cyrus/JMAPMail.pm | 286 +++++++++++++++++++------------------- - 4 files changed, 231 insertions(+), 231 deletions(-) - -diff --git a/Cassandane/Cyrus/JMAPCalendars.pm b/Cassandane/Cyrus/JMAPCalendars.pm -index 80eadeb..144b3c5 100644 ---- a/Cassandane/Cyrus/JMAPCalendars.pm -+++ b/Cassandane/Cyrus/JMAPCalendars.pm -@@ -81,7 +81,7 @@ sub set_up - } - - sub test_calendar_get -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -125,7 +125,7 @@ sub test_calendar_get - } - - sub test_calendar_get_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -193,7 +193,7 @@ sub test_calendar_get_shared - - - sub test_calendar_get_default -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -208,7 +208,7 @@ sub test_calendar_get_default - } - - sub test_calendar_set -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -269,7 +269,7 @@ sub test_calendar_set - } - - sub test_calendar_set_state -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -370,7 +370,7 @@ sub test_calendar_set_state - } - - sub test_calendar_set_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -479,7 +479,7 @@ sub test_calendar_set_shared - - - sub test_calendar_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -583,7 +583,7 @@ sub test_calendar_changes - } - - sub test_calendar_set_error -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -672,7 +672,7 @@ sub test_calendar_set_error - } - - sub test_calendar_set_badname -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -696,7 +696,7 @@ sub test_calendar_set_badname - } - - sub test_calendar_set_destroydefault -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -919,7 +919,7 @@ sub icalfile - } - - sub test_calendarevent_get_simple -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -948,7 +948,7 @@ sub test_calendarevent_get_simple - } - - sub test_calendarevent_get_privacy -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -960,7 +960,7 @@ sub test_calendarevent_get_privacy - } - - sub test_calendarevent_get_properties -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -976,7 +976,7 @@ sub test_calendarevent_get_properties - } - - sub test_calendarevent_get_relatedto -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -993,7 +993,7 @@ sub test_calendarevent_get_relatedto - } - - sub test_calendarevent_get_links -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1017,7 +1017,7 @@ sub test_calendarevent_get_links - - - sub test_calendarevent_get_rscale -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1034,7 +1034,7 @@ sub test_calendarevent_get_rscale - } - - sub test_calendarevent_get_endtimezone -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1053,7 +1053,7 @@ sub test_calendarevent_get_endtimezone - } - - sub test_calendarevent_get_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1067,7 +1067,7 @@ sub test_calendarevent_get_keywords - } - - sub test_calendarevent_get_description -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1080,7 +1080,7 @@ sub test_calendarevent_get_description - } - - sub test_calendarevent_get_participants -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1121,7 +1121,7 @@ sub test_calendarevent_get_participants - } - - sub test_calendarevent_get_recurrence -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1154,7 +1154,7 @@ sub test_calendarevent_get_recurrence - } - - sub test_calendarevent_get_rdate_period -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1170,7 +1170,7 @@ sub test_calendarevent_get_rdate_period - - - sub test_calendarevent_get_recurrenceoverrides -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1200,7 +1200,7 @@ sub test_calendarevent_get_recurrenceoverrides - } - - sub test_calendarevent_get_alerts -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1261,7 +1261,7 @@ sub test_calendarevent_get_alerts - } - - sub test_calendarevent_get_locations -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1274,7 +1274,7 @@ sub test_calendarevent_get_locations - } - - sub test_calendarevent_get_locations_uri -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1288,7 +1288,7 @@ sub test_calendarevent_get_locations_uri - } - - sub test_calendarevent_get_locations_geo -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1301,7 +1301,7 @@ sub test_calendarevent_get_locations_geo - } - - sub test_calendarevent_get_locations_apple -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1315,7 +1315,7 @@ sub test_calendarevent_get_locations_apple - } - - sub test_calendarevent_get_locations_conference -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1342,7 +1342,7 @@ sub test_calendarevent_get_locations_conference - } - - sub test_calendarevent_get_infinite_delegates -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1435,7 +1435,7 @@ sub createcalendar - } - - sub test_calendarevent_set_type -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1481,7 +1481,7 @@ sub test_calendarevent_set_type - - - sub test_calendarevent_set_simple -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1514,7 +1514,7 @@ sub test_calendarevent_set_simple - } - - sub test_calendarevent_set_bymonth -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1555,7 +1555,7 @@ sub test_calendarevent_set_bymonth - } - - sub test_calendarevent_set_relatedto -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1590,7 +1590,7 @@ sub test_calendarevent_set_relatedto - } - - sub test_calendarevent_set_prodid -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1621,7 +1621,7 @@ sub test_calendarevent_set_prodid - } - - sub test_calendarevent_set_endtimezone -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1662,7 +1662,7 @@ sub test_calendarevent_set_endtimezone - } - - sub test_calendarevent_set_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1686,7 +1686,7 @@ sub test_calendarevent_set_keywords - } - - sub test_calendarevent_set_endtimezone_recurrence -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1728,7 +1728,7 @@ sub test_calendarevent_set_endtimezone_recurrence - } - - sub test_calendarevent_set_description -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1758,7 +1758,7 @@ sub test_calendarevent_set_description - } - - sub test_calendarevent_set_links -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1806,7 +1806,7 @@ sub test_calendarevent_set_links - } - - sub test_calendarevent_set_locations -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1889,7 +1889,7 @@ sub test_calendarevent_set_locations - } - - sub test_calendarevent_set_locations_single -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1933,7 +1933,7 @@ sub test_calendarevent_set_locations_single - } - - sub test_calendarevent_set_recurrence -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1972,7 +1972,7 @@ sub test_calendarevent_set_recurrence - } - - sub test_calendarevent_set_recurrenceoverrides -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2049,7 +2049,7 @@ sub test_calendarevent_set_recurrenceoverrides - } - - sub test_calendarevent_set_participants -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2153,7 +2153,7 @@ sub test_calendarevent_set_participants - } - - sub test_calendarevent_set_alerts -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2219,7 +2219,7 @@ sub test_calendarevent_set_alerts - } - - sub test_calendarevent_set_participantid -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2264,7 +2264,7 @@ sub test_calendarevent_set_participantid - - - sub test_calendarevent_set_isallday -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2313,7 +2313,7 @@ sub test_calendarevent_set_isallday - } - - sub test_calendarevent_set_move -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2387,7 +2387,7 @@ sub test_calendarevent_set_move - } - - sub test_calendarevent_set_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2548,7 +2548,7 @@ sub test_calendarevent_set_shared - - - sub test_calendarevent_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2719,7 +2719,7 @@ sub test_calendarevent_changes - } - - sub test_calendarevent_query -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2849,7 +2849,7 @@ sub test_calendarevent_query - } - - sub test_calendarevent_query_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3010,7 +3010,7 @@ sub test_calendarevent_query_shared - } - - sub test_calendarevent_query_datetime -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3118,7 +3118,7 @@ sub test_calendarevent_query_datetime - } - - sub test_calendarevent_query_date -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3247,7 +3247,7 @@ sub test_calendarevent_query_date - } - - sub test_calendarevent_query_text -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3358,7 +3358,7 @@ sub test_calendarevent_query_text - } - - sub test_calendarevent_query_unixepoch -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3401,7 +3401,7 @@ sub test_calendarevent_query_unixepoch - - - sub test_calendarevent_set_caldav -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3529,7 +3529,7 @@ EOF - } - - sub test_calendarevent_set_schedule_request -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3581,7 +3581,7 @@ sub test_calendarevent_set_schedule_request - } - - sub test_calendarevent_set_schedule_reply -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3642,7 +3642,7 @@ sub test_calendarevent_set_schedule_reply - } - - sub test_calendarevent_set_schedule_cancel -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3706,7 +3706,7 @@ sub test_calendarevent_set_schedule_cancel - } - - sub test_misc_creationids -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3741,7 +3741,7 @@ sub test_misc_creationids - } - - sub test_misc_timezone_expansion -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -3781,7 +3781,7 @@ sub test_misc_timezone_expansion - } - - sub test_calendarevent_set_uid -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -diff --git a/Cassandane/Cyrus/JMAPContacts.pm b/Cassandane/Cyrus/JMAPContacts.pm -index 6b844e2..53dd7fc 100644 ---- a/Cassandane/Cyrus/JMAPContacts.pm -+++ b/Cassandane/Cyrus/JMAPContacts.pm -@@ -79,7 +79,7 @@ sub set_up - } - - sub test_contact_set_multicontact -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -127,7 +127,7 @@ sub test_contact_set_multicontact - } - - sub test_contact_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -250,7 +250,7 @@ sub test_contact_changes - } - - sub test_contact_changes_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -411,7 +411,7 @@ sub test_contact_changes_shared - } - - sub test_contact_set_nickname -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -438,7 +438,7 @@ sub test_contact_set_nickname - } - - sub test_contactgroup_set -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - - my ($self) = @_; -@@ -504,7 +504,7 @@ sub test_contactgroup_set - } - - sub test_contact_query -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -677,7 +677,7 @@ sub test_contact_query - - - sub test_contact_query_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -885,7 +885,7 @@ sub test_contact_query_shared - } - - sub test_contactgroup_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1018,7 +1018,7 @@ sub test_contactgroup_changes - } - - sub test_contactgroup_changes_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1188,7 +1188,7 @@ sub test_contactgroup_changes_shared - } - - sub test_contact_set -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1502,7 +1502,7 @@ sub test_contact_set - } - - sub test_contact_set_emaillabel -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1553,7 +1553,7 @@ sub test_contact_set_emaillabel - - - sub test_contact_set_state -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1620,7 +1620,7 @@ sub test_contact_set_state - } - - sub test_contact_set_importance_later -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1655,7 +1655,7 @@ sub test_contact_set_importance_later - } - - sub test_contact_set_importance_upfront -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1690,7 +1690,7 @@ sub test_contact_set_importance_upfront - } - - sub test_contact_set_importance_multiedit -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1725,7 +1725,7 @@ sub test_contact_set_importance_multiedit - } - - sub test_contact_set_importance_zero_multi -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1760,7 +1760,7 @@ sub test_contact_set_importance_zero_multi - } - - sub test_contact_set_importance_zero_byself -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1795,7 +1795,7 @@ sub test_contact_set_importance_zero_byself - } - - sub test_misc_creationids -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1818,7 +1818,7 @@ sub test_misc_creationids - } - - sub test_misc_categories -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1877,7 +1877,7 @@ EOF - } - - sub test_contact_get_issue2292 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1903,7 +1903,7 @@ sub test_contact_get_issue2292 - } - - sub test_contactgroup_get_issue2292 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -diff --git a/Cassandane/Cyrus/JMAPCore.pm b/Cassandane/Cyrus/JMAPCore.pm -index 83a8122..1b6f9cb 100644 ---- a/Cassandane/Cyrus/JMAPCore.pm -+++ b/Cassandane/Cyrus/JMAPCore.pm -@@ -75,7 +75,7 @@ sub new - } - - sub test_settings -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -191,7 +191,7 @@ sub test_settings - } - - sub test_blob_download -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -229,7 +229,7 @@ sub test_blob_download - } - - sub test_creationids -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -diff --git a/Cassandane/Cyrus/JMAPMail.pm b/Cassandane/Cyrus/JMAPMail.pm -index 660a0b5..e7bf8fd 100644 ---- a/Cassandane/Cyrus/JMAPMail.pm -+++ b/Cassandane/Cyrus/JMAPMail.pm -@@ -102,7 +102,7 @@ sub getinbox - } - - sub test_mailbox_get -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -180,7 +180,7 @@ sub test_mailbox_get - } - - sub test_mailbox_get_specialuse -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -228,7 +228,7 @@ sub test_mailbox_get_specialuse - } - - sub test_mailbox_get_properties -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -256,7 +256,7 @@ sub test_mailbox_get_properties - } - - sub test_mailbox_get_ids -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -294,7 +294,7 @@ sub test_mailbox_get_ids - } - - sub test_mailbox_get_nocalendars -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -329,7 +329,7 @@ sub test_mailbox_get_nocalendars - } - - sub test_mailbox_get_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -390,7 +390,7 @@ sub test_mailbox_get_shared - } - - sub test_mailbox_query -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -531,7 +531,7 @@ sub test_mailbox_query - } - - sub test_mailbox_query_parentname -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -574,7 +574,7 @@ sub test_mailbox_query_parentname - } - - sub test_mailbox_query_limit_zero -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -589,7 +589,7 @@ sub test_mailbox_query_limit_zero - } - - sub test_mailbox_query_parentid_null -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -622,7 +622,7 @@ sub test_mailbox_query_parentid_null - } - - sub test_mailbox_query_filteroperator -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - return; -@@ -697,7 +697,7 @@ sub test_mailbox_query_filteroperator - } - - sub test_mailbox_query_issue2286 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -711,7 +711,7 @@ sub test_mailbox_query_issue2286 - } - - sub test_mailbox_querychanges -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -735,7 +735,7 @@ sub test_mailbox_querychanges - } - - sub test_mailbox_set -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -817,7 +817,7 @@ sub test_mailbox_set - } - - sub test_mailbox_get_shared_parents -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -855,7 +855,7 @@ sub test_mailbox_get_shared_parents - } - - sub test_mailbox_set_name_missing -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -877,7 +877,7 @@ sub test_mailbox_set_name_missing - - - sub test_mailbox_set_name_collision -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -980,7 +980,7 @@ sub test_mailbox_set_name_collision - } - - sub test_mailbox_set_name_interop -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1036,7 +1036,7 @@ sub test_mailbox_set_name_interop - } - - sub test_mailbox_set_name_unicode_nfc -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1068,7 +1068,7 @@ sub test_mailbox_set_name_unicode_nfc - - - sub test_mailbox_set_role -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1203,7 +1203,7 @@ sub test_mailbox_set_role - } - - sub test_mailbox_set_no_outbox_role -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1221,7 +1221,7 @@ sub test_mailbox_set_no_outbox_role - - - sub test_mailbox_set_parent -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1315,7 +1315,7 @@ sub test_mailbox_set_parent - } - - sub test_mailbox_set_parent_acl -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1348,7 +1348,7 @@ sub test_mailbox_set_parent_acl - } - - sub test_mailbox_set_destroy_empty -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1417,7 +1417,7 @@ sub test_mailbox_set_destroy_empty - } - - sub test_mailbox_set_destroy_removemsgs -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1474,7 +1474,7 @@ sub test_mailbox_set_destroy_removemsgs - } - - sub test_mailbox_set_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1541,7 +1541,7 @@ sub test_mailbox_set_shared - } - - sub test_mailbox_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1688,7 +1688,7 @@ sub test_mailbox_changes - } - - sub test_mailbox_changes_counts -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1803,7 +1803,7 @@ sub test_mailbox_changes_counts - - - sub test_mailbox_changes_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -1880,7 +1880,7 @@ sub defaultprops_for_email_get - } - - sub test_email_get -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -1982,7 +1982,7 @@ sub test_email_get - } - - sub test_email_get_mimeencode -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2050,7 +2050,7 @@ sub test_email_get_mimeencode - } - - sub test_email_get_multimailboxes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2091,7 +2091,7 @@ sub test_email_get_multimailboxes - } - - sub test_email_get_body_both -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2141,7 +2141,7 @@ sub test_email_get_body_both - } - - sub test_email_get_body_plain -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2175,7 +2175,7 @@ sub test_email_get_body_plain - } - - sub test_email_get_body_html -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2209,7 +2209,7 @@ sub test_email_get_body_html - } - - sub test_email_get_attachment_name -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2314,7 +2314,7 @@ sub test_email_get_attachment_name - } - - sub test_email_get_body_notext -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2343,7 +2343,7 @@ sub test_email_get_body_notext - - - sub test_email_get_preview -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2374,7 +2374,7 @@ sub test_email_get_preview - } - - sub test_email_get_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2415,7 +2415,7 @@ sub test_email_get_shared - } - - sub test_email_set_draft -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2489,7 +2489,7 @@ sub test_email_set_draft - } - - sub test_email_set_issue2293 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2566,7 +2566,7 @@ sub test_email_set_issue2293 - } - - sub test_email_set_inreplyto -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2629,7 +2629,7 @@ sub test_email_set_inreplyto - } - - sub test_email_set_attachedemails -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2697,7 +2697,7 @@ sub test_email_set_attachedemails - } - - sub test_email_set_bodystructure -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2810,7 +2810,7 @@ sub test_email_set_bodystructure - } - - sub test_email_set_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -2871,7 +2871,7 @@ sub test_email_set_shared - } - - sub test_email_set_userkeywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2943,7 +2943,7 @@ sub test_email_set_userkeywords - } - - sub test_misc_upload_zero -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -2992,7 +2992,7 @@ sub test_misc_upload_zero - } - - sub test_misc_upload -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3045,7 +3045,7 @@ sub test_misc_upload - } - - sub test_misc_upload_multiaccount -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3068,7 +3068,7 @@ sub test_misc_upload_multiaccount - } - - sub test_misc_upload_bin -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3117,7 +3117,7 @@ sub test_misc_upload_bin - } - - sub test_misc_download -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3182,7 +3182,7 @@ sub download - } - - sub test_blob_copy -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3244,7 +3244,7 @@ sub test_blob_copy - } - - sub test_email_set_attachments -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3399,7 +3399,7 @@ sub test_email_set_attachments - } - - sub test_email_set_flagged -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3437,7 +3437,7 @@ sub test_email_set_flagged - } - - sub test_email_set_mailboxids -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3491,7 +3491,7 @@ sub test_email_set_mailboxids - } - - sub test_email_get_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3568,7 +3568,7 @@ sub test_email_get_keywords - } - - sub test_email_get_keywords_case_insensitive -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3601,7 +3601,7 @@ sub test_email_get_keywords_case_insensitive - } - - sub test_email_set_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3733,7 +3733,7 @@ sub test_email_set_keywords - } - - sub test_emailsubmission_set -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3785,7 +3785,7 @@ sub test_emailsubmission_set - } - - sub test_emailsubmission_set_with_envelope -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3825,7 +3825,7 @@ sub test_emailsubmission_set_with_envelope - } - - sub test_emailsubmission_set_issue2285 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3888,7 +3888,7 @@ sub test_emailsubmission_set_issue2285 - } - - sub test_emailsubmission_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3937,7 +3937,7 @@ sub test_emailsubmission_changes - } - - sub test_emailsubmission_query -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3958,7 +3958,7 @@ sub test_emailsubmission_query - } - - sub test_emailsubmission_querychanges -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -3979,7 +3979,7 @@ sub test_emailsubmission_querychanges - } - - sub test_email_set_move -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4039,7 +4039,7 @@ sub test_email_set_move - } - - sub test_email_set_move_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4097,7 +4097,7 @@ sub test_email_set_move_keywords - } - - sub test_email_set_update -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4152,7 +4152,7 @@ sub test_email_set_update - } - - sub test_email_set_seen -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4191,7 +4191,7 @@ sub test_email_set_seen - } - - sub test_email_set_destroy -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4267,7 +4267,7 @@ sub test_email_set_destroy - } - - sub test_email_query -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4594,7 +4594,7 @@ sub test_email_query - } - - sub test_email_query_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -4947,7 +4947,7 @@ sub test_email_query_shared - } - - sub test_email_query_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5045,7 +5045,7 @@ sub test_email_query_keywords - } - - sub test_email_query_userkeywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5114,7 +5114,7 @@ sub test_email_query_userkeywords - } - - sub test_email_query_threadkeywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5295,7 +5295,7 @@ sub test_email_query_threadkeywords - } - - sub test_email_query_empty -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5315,7 +5315,7 @@ sub test_email_query_empty - } - - sub test_email_query_collapse -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5367,7 +5367,7 @@ sub test_email_query_collapse - } - - sub test_email_query_inmailbox_null -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5385,7 +5385,7 @@ sub test_email_query_inmailbox_null - } - - sub test_misc_collapsethreads_issue2024 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5426,7 +5426,7 @@ sub test_misc_collapsethreads_issue2024 - } - - sub test_email_query_window -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5516,7 +5516,7 @@ sub test_email_query_window - } - - sub test_email_query_long -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5560,7 +5560,7 @@ sub test_email_query_long - } - - sub test_email_query_acl -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5619,7 +5619,7 @@ sub test_email_query_acl - } - - sub test_email_query_unknown_mailbox -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5643,7 +5643,7 @@ sub test_email_query_unknown_mailbox - - - sub test_searchsnippet_get -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5752,7 +5752,7 @@ sub test_searchsnippet_get - } - - sub test_searchsnippet_get_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -5815,7 +5815,7 @@ sub test_searchsnippet_get_shared - } - - sub test_email_query_snippets -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -5900,7 +5900,7 @@ sub test_email_query_snippets - } - - sub test_email_query_attachments -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6003,7 +6003,7 @@ sub test_email_query_attachments - } - - sub test_email_query_attachmentname -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6062,7 +6062,7 @@ sub test_email_query_attachmentname - } - - sub test_email_query_attachmenttype -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6162,7 +6162,7 @@ sub test_email_query_attachmenttype - } - - sub test_thread_get -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -6269,7 +6269,7 @@ sub test_thread_get - } - - sub test_identity_get -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6293,7 +6293,7 @@ sub test_identity_get - } - - sub test_misc_emptyids -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -6320,7 +6320,7 @@ sub test_misc_emptyids - } - - sub test_email_querychanges_basic -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6371,7 +6371,7 @@ sub test_email_querychanges_basic - } - - sub test_email_querychanges_basic_collapse -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6424,7 +6424,7 @@ sub test_email_querychanges_basic_collapse - } - - sub test_email_querychanges_basic_mb -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6477,7 +6477,7 @@ sub test_email_querychanges_basic_mb - } - - sub test_email_querychanges_basic_mb_collapse -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6598,7 +6598,7 @@ sub test_email_querychanges_basic_mb_collapse - } - - sub test_email_querychanges_skipdeleted -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6660,7 +6660,7 @@ sub test_email_querychanges_skipdeleted - } - - sub test_email_querychanges_deletedcopy -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6723,7 +6723,7 @@ sub test_email_querychanges_deletedcopy - } - - sub test_email_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6884,7 +6884,7 @@ sub test_email_changes - } - - sub test_email_querychanges -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6922,7 +6922,7 @@ sub test_email_querychanges - } - - sub test_email_querychanges_zerosince -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -6960,7 +6960,7 @@ sub test_email_querychanges_zerosince - - - sub test_email_querychanges_thread -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7038,7 +7038,7 @@ sub test_email_querychanges_thread - } - - sub test_email_querychanges_order -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7097,7 +7097,7 @@ sub test_email_querychanges_order - } - - sub test_email_querychanges_implementation -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7244,7 +7244,7 @@ sub test_email_querychanges_implementation - } - - sub test_email_changes_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7333,7 +7333,7 @@ sub test_email_changes_shared - } - - sub test_misc_upload_download822 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7359,7 +7359,7 @@ EOF - } - - sub test_misc_upload_sametype -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7376,7 +7376,7 @@ sub test_misc_upload_sametype - } - - sub test_misc_brokenrfc822_badendline -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7424,7 +7424,7 @@ EOF - } - - sub test_email_import_zerobyte -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7472,7 +7472,7 @@ EOF - - - sub test_email_import_setdate -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7532,7 +7532,7 @@ EOF - } - - sub test_thread_get_onemsg -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -7601,7 +7601,7 @@ EOF - } - - sub test_thread_changes -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my %exp; -@@ -7821,7 +7821,7 @@ sub test_thread_changes - } - - sub test_email_import -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7919,7 +7919,7 @@ sub test_email_import - } - - sub test_email_import_error -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -7955,7 +7955,7 @@ sub test_email_import_error - - - sub test_email_import_shared -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8001,7 +8001,7 @@ EOF - } - - sub test_misc_refobjects_simple -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8036,7 +8036,7 @@ sub test_misc_refobjects_simple - } - - sub test_email_import_no_keywords -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8073,7 +8073,7 @@ EOF - } - - sub test_misc_refobjects_extended -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8114,7 +8114,7 @@ sub test_misc_refobjects_extended - } - - sub test_email_set_patch -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8192,7 +8192,7 @@ sub test_email_set_patch - } - - sub test_capability -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - -@@ -8222,7 +8222,7 @@ sub test_capability - } - - sub test_misc_set_oldstate -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8276,7 +8276,7 @@ sub test_misc_set_oldstate - } - - sub test_email_set_text_crlf -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8308,7 +8308,7 @@ sub test_email_set_text_crlf - } - - sub test_email_set_text_split -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8338,7 +8338,7 @@ sub test_email_set_text_split - } - - sub test_email_get_attachedemails -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8395,7 +8395,7 @@ sub test_email_get_attachedemails - } - - sub test_email_get_maxbodyvaluebytes_utf8 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8444,7 +8444,7 @@ sub test_email_get_maxbodyvaluebytes_utf8 - } - - sub test_email_get_header_all -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8476,7 +8476,7 @@ sub test_email_get_header_all - } - - sub test_email_set_nullheader -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8511,7 +8511,7 @@ sub test_email_set_nullheader - } - - sub test_email_set_headers -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8653,7 +8653,7 @@ sub test_email_set_headers - } - - sub test_email_download -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8699,7 +8699,7 @@ sub test_email_download - } - - sub test_email_embedded_download -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8750,7 +8750,7 @@ sub test_email_embedded_download - } - - sub test_blob_download -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8769,7 +8769,7 @@ sub test_blob_download - } - - sub test_email_set_filename -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8845,7 +8845,7 @@ sub test_email_set_filename - } - - sub test_email_get_size -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8868,7 +8868,7 @@ sub test_email_get_size - } - - sub test_email_get_references -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8897,7 +8897,7 @@ sub test_email_get_references - } - - sub test_email_get_groupaddr -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -8936,7 +8936,7 @@ sub test_email_get_groupaddr - } - - sub test_email_parse -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9010,7 +9010,7 @@ sub test_email_parse - } - - sub test_email_parse_digest -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9052,7 +9052,7 @@ sub test_email_parse_digest - } - - sub test_email_parse_blob822 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9080,7 +9080,7 @@ EOF - } - - sub test_email_parse_notparsable -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9100,7 +9100,7 @@ EOF - } - - sub test_email_get_bodystructure -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9323,7 +9323,7 @@ sub test_email_get_bodystructure - } - - sub test_email_get_calendarevents -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9400,7 +9400,7 @@ sub test_email_get_calendarevents - } - - sub test_email_set_blobencoding -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9473,7 +9473,7 @@ EOF - } - - sub test_email_body_alternative_without_html -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - my $jmap = $self->{jmap}; -@@ -9521,7 +9521,7 @@ sub test_email_body_alternative_without_html - } - - sub test_mailbox_set_issue2377 -- :min_version_3_1 -+ :min_version_3_1 :needs_component_jmap - { - my ($self) = @_; - - -From 19ecf16b81dc5865cc9b8ee66be78ac102137baa Mon Sep 17 00:00:00 2001 -From: ellie timoney -Date: Mon, 28 May 2018 16:10:10 +1000 -Subject: [PATCH 11/11] TesterJMAP: don't run if jmap support not compiled in - ---- - Cassandane/Cyrus/TesterJMAP.pm | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Cassandane/Cyrus/TesterJMAP.pm b/Cassandane/Cyrus/TesterJMAP.pm -index 7c30845..e6b554c 100644 ---- a/Cassandane/Cyrus/TesterJMAP.pm -+++ b/Cassandane/Cyrus/TesterJMAP.pm -@@ -63,6 +63,11 @@ sub cyrus_version_supports_jmap - - return 0 if ($maj < 3); # not supported before 3.x - return 0 if ($maj == 3 && $min == 0); # not supported in 3.0.x -+ -+ # not supported if configured out -+ my $buildinfo = Cassandane::BuildInfo->new(); -+ return 0 if not $buildinfo->get('component', 'jmap'); -+ - return 1; # supported in everything newer - } - diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec index 79844f0..becd2d8 100644 --- a/cyrus-imapd.spec +++ b/cyrus-imapd.spec @@ -8,8 +8,8 @@ %bcond_without cassandane Name: cyrus-imapd -Version: 3.0.7 -Release: 9%{?dist} +Version: 3.0.8 +Release: 1%{?dist} %define ssl_pem_file /etc/pki/%name/%name.pem @@ -26,23 +26,22 @@ Release: 9%{?dist} Summary: A high-performance email, contacts and calendar server License: BSD URL: http://www.cyrusimap.org/ -Source0: http://www.cyrusimap.org/releases/%name-%version.tar.gz + +Source0: https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-%version/cyrus-imapd-%version.tar.gz + # Adapt a timeout to handle our slower builders Patch0: patch-cyrus-testsuite-timeout -# Upstream https://github.com/cyrusimap/cyrus-imapd/issues/2026 -Patch1: patch-cyrus-managesieve-linking - # Fedora-specific patch for the default configuration file -Patch2: patch-cyrus-default-configs +Patch1: patch-cyrus-default-configs # We rename quota to cyr_quota to avoid a conflict with /usr/bin/quota; one # place in the source must be patched to match. -Patch3: patch-cyrus-rename-quota +Patch2: patch-cyrus-rename-quota # vzic uses an old makefile that needs hacks to use the proper flags -Patch4: patch-vzic-proper-cflags +Patch3: patch-vzic-proper-cflags Source10: cyrus-imapd.logrotate @@ -683,6 +682,10 @@ getent passwd cyrus >/dev/null || /usr/sbin/useradd -c "Cyrus IMAP Server" -d /v %changelog +* Sat Aug 11 2018 Jason L Tibbitts III - 3.0.8-1 +- Update to 3.0.8. +- Drop upstreamed patch. + * Tue Jul 24 2018 Jason L Tibbitts III - 3.0.7-9 - Rebuild for unannounced net-snmp soname bump. diff --git a/patch-cyrus-managesieve-linking b/patch-cyrus-managesieve-linking deleted file mode 100644 index 1347c44..0000000 --- a/patch-cyrus-managesieve-linking +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/perl/sieve/managesieve/Makefile.PL.in b/perl/sieve/managesieve/Makefile.PL.in -index 2bb715d..422504d 100644 ---- a/perl/sieve/managesieve/Makefile.PL.in -+++ b/perl/sieve/managesieve/Makefile.PL.in -@@ -69,7 +69,7 @@ WriteMakefile( - 'ABSTRACT' => 'Cyrus Sieve management interface', - 'VERSION_FROM' => "@top_srcdir@/perl/sieve/managesieve/managesieve.pm", # finds $VERSION - 'MYEXTLIB' => '../lib/.libs/libisieve.a @top_builddir@/perl/.libs/libcyrus.a @top_builddir@/perl/.libs/libcyrus_min.a', -- 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@"], -+ 'LIBS' => ["$LIB_SASL @SSL_LIBS@ @LIB_UUID@ @ZLIB@ -lsqlite3 -lpq -lmariadb"], - 'CCFLAGS' => '@GCOV_CFLAGS@', - 'DEFINE' => '-DPERL_POLLUTE', # e.g., '-DHAVE_SOMETHING' - 'INC' => "-I@top_srcdir@/lib -I@top_srcdir@/perl/sieve -I@top_srcdir@/perl/sieve/lib @SASLFLAGS@ @SSL_CPPFLAGS@", diff --git a/sources b/sources index 5d00794..db25243 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (cassandane-testdata-20170523.tar.gz) = 705f5af6a31fe3b8d6e8027bbddbedb2f64d65997f8a06620ec07fcd30a95d98ac3f3fbef7af5080684ee21be1c5b8bcad2374b2749f0571099e780355a04420 -SHA512 (cyrus-imapd-3.0.7.tar.gz) = 6f9af658df6ae6e4463bb52c672c7e8d49482c8e5542985825f099ea8b76291d1598a2a5c92711ae642b0d053c5168792f1832eeb15d1fdeb4b8d2efcfb4d9b9 SHA512 (cassandane-c8040fd.tar.gz) = 58c0778be68628984f231aa1bb20abcb45a390f3660135e24bcdda163bfec2d7f5643aeb8d3f9deb03796f5b9b29a7e39515ffe375c1a2805c5ff3ec0f3c7d43 +SHA512 (cyrus-imapd-3.0.8.tar.gz) = f4aa9877e62479439bee2ca29f452bd7e9daa091c19bf3567aa7f493f5163c98b44086b749c70981402212ff90e19d9125b508cfcc077088f8c705e533812960