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 }