diff --git a/testing/tests/carddav/2056-REPORT-carddavclient-HasNoGrpEmail.result b/testing/tests/carddav/2056-REPORT-carddavclient-HasNoGrpEmail.result
new file mode 100644
index 00000000..b8f9db8b
--- /dev/null
+++ b/testing/tests/carddav/2056-REPORT-carddavclient-HasNoGrpEmail.result
@@ -0,0 +1,67 @@
+
+
+
+ /caldav.php/user5/addresses/sabre-vobject-131cdf91-5460-423b-a836-e420e5affe13.vcf
+
+
+ some valid etag
+ BEGIN:VCARD
+VERSION:4.0
+PRODID:-//Sabre//Sabre VObject 4.3.3//EN
+UID:sabre-vobject-131cdf91-5460-423b-a836-e420e5affe13
+FN:CardDavClient Test212420682
+N:Test212420682;CardDavClient;;;
+NICKNAME:Jonny0
+EMAIL;TYPE=HOME:john6doe@example.com
+EMAIL;TYPE=WORK:doe6@example.com
+X-CUSTOMPROP;X-CUSTOMPARAM=WORK:foobar
+REV:date
+END:VCARD
+
+
+ HTTP/1.1 200 OK
+
+
+
+ /caldav.php/user5/addresses/sabre-vobject-8121cd7a-8251-4b74-a952-ca91fdc21e36.vcf
+
+
+ some valid etag
+ BEGIN:VCARD
+VERSION:4.0
+PRODID:-//Sabre//Sabre VObject 4.3.3//EN
+UID:sabre-vobject-8121cd7a-8251-4b74-a952-ca91fdc21e36
+FN:CardDavClient Test913043917
+N:Test913043917;CardDavClient;;;
+NICKNAME:Jonny1
+EMAIL:maxmu@abcd.com
+X-CUSTOMPROP;X-CUSTOMPARAM=HOME,WORK:foobar
+REV:date
+END:VCARD
+
+
+ HTTP/1.1 200 OK
+
+
+
+ /caldav.php/user5/addresses/sabre-vobject-41956788-1273-449e-bfb7-716850c91ec6.vcf
+
+
+ some valid etag
+ BEGIN:VCARD
+VERSION:4.0
+PRODID:-//Sabre//Sabre VObject 4.3.3//EN
+UID:sabre-vobject-41956788-1273-449e-bfb7-716850c91ec6
+FN:CardDavClient Test879489908
+N:Test879489908;CardDavClient;;;
+NICKNAME:Jonny2
+TEL;TYPE=HOME:12345
+TEL:555
+REV:date
+END:VCARD
+
+
+ HTTP/1.1 200 OK
+
+
+
diff --git a/testing/tests/carddav/2056-REPORT-carddavclient-HasNoGrpEmail.test b/testing/tests/carddav/2056-REPORT-carddavclient-HasNoGrpEmail.test
new file mode 100644
index 00000000..2fd9979f
--- /dev/null
+++ b/testing/tests/carddav/2056-REPORT-carddavclient-HasNoGrpEmail.test
@@ -0,0 +1,32 @@
+#
+# Test for non-existence of a grouped property (case-insensitive)
+#
+# (Jonny3 has item1.EMAIL set)
+#
+TYPE=REPORT
+URL=http://regression.host/caldav.php/user5/addresses/
+
+HEADER=Accept: text/xml,application/xml
+HEADER=Content-Type: text/xml
+HEADER=Depth: 1
+
+AUTH=user5:user5
+
+# HEAD
+
+BEGINDATA
+
+
+
+
+
+
+
+
+
+
+
+ENDDATA
+
+REPLACE=_"[0-9a-f]+"_some valid etag_
+REPLACE=/^REV:.*$/REV:date/
diff --git a/testing/tests/carddav/2057-REPORT-carddavclient-HasGrpEmail.result b/testing/tests/carddav/2057-REPORT-carddavclient-HasGrpEmail.result
new file mode 100644
index 00000000..6c0b17e8
--- /dev/null
+++ b/testing/tests/carddav/2057-REPORT-carddavclient-HasGrpEmail.result
@@ -0,0 +1,25 @@
+
+
+
+ /caldav.php/user5/addresses/sabre-vobject-34cd55a8-330f-47cd-8b69-6fbd16a0880b.vcf
+
+
+ some valid etag
+ BEGIN:VCARD
+VERSION:4.0
+PRODID:-//Sabre//Sabre VObject 4.3.3//EN
+UID:sabre-vobject-34cd55a8-330f-47cd-8b69-6fbd16a0880b
+FN:CardDavClient Test1520108081
+N:Test1520108081;CardDavClient;;;
+NICKNAME:Jonny3
+ITEM1.EMAIL:foo@ex.com
+ITEM1.X-ABLABEL:CustomLabel
+IMPP;X-SERVICE-TYPE=Jabber;TYPE=HOME:xmpp:foo@example.com
+REV:date
+END:VCARD
+
+
+ HTTP/1.1 200 OK
+
+
+
diff --git a/testing/tests/carddav/2057-REPORT-carddavclient-HasGrpEmail.test b/testing/tests/carddav/2057-REPORT-carddavclient-HasGrpEmail.test
new file mode 100644
index 00000000..3e06b0f6
--- /dev/null
+++ b/testing/tests/carddav/2057-REPORT-carddavclient-HasGrpEmail.test
@@ -0,0 +1,30 @@
+#
+# Request a report for a grouped property (inverse of 2055)
+#
+# (only Jonny3 has item1.EMAIL set)
+#
+TYPE=REPORT
+URL=http://regression.host/caldav.php/user5/addresses/
+
+HEADER=Accept: text/xml,application/xml
+HEADER=Content-Type: text/xml
+HEADER=Depth: 1
+
+AUTH=user5:user5
+
+# HEAD
+
+BEGINDATA
+
+
+
+
+
+
+
+
+
+ENDDATA
+
+REPLACE=_"[0-9a-f]+"_some valid etag_
+REPLACE=/^REV:.*$/REV:date/
diff --git a/testing/tests/carddav/2058-REPORT-carddavclient-GrpEmailEquals.result b/testing/tests/carddav/2058-REPORT-carddavclient-GrpEmailEquals.result
new file mode 100644
index 00000000..6c0b17e8
--- /dev/null
+++ b/testing/tests/carddav/2058-REPORT-carddavclient-GrpEmailEquals.result
@@ -0,0 +1,25 @@
+
+
+
+ /caldav.php/user5/addresses/sabre-vobject-34cd55a8-330f-47cd-8b69-6fbd16a0880b.vcf
+
+
+ some valid etag
+ BEGIN:VCARD
+VERSION:4.0
+PRODID:-//Sabre//Sabre VObject 4.3.3//EN
+UID:sabre-vobject-34cd55a8-330f-47cd-8b69-6fbd16a0880b
+FN:CardDavClient Test1520108081
+N:Test1520108081;CardDavClient;;;
+NICKNAME:Jonny3
+ITEM1.EMAIL:foo@ex.com
+ITEM1.X-ABLABEL:CustomLabel
+IMPP;X-SERVICE-TYPE=Jabber;TYPE=HOME:xmpp:foo@example.com
+REV:date
+END:VCARD
+
+
+ HTTP/1.1 200 OK
+
+
+
diff --git a/testing/tests/carddav/2058-REPORT-carddavclient-GrpEmailEquals.test b/testing/tests/carddav/2058-REPORT-carddavclient-GrpEmailEquals.test
new file mode 100644
index 00000000..02de3b5e
--- /dev/null
+++ b/testing/tests/carddav/2058-REPORT-carddavclient-GrpEmailEquals.test
@@ -0,0 +1,33 @@
+#
+# Request a report for a text-match on a grouped property
+#
+# (only Jonny3 has item1.EMAIL set or a matching address)
+#
+TYPE=REPORT
+URL=http://regression.host/caldav.php/user5/addresses/
+
+HEADER=Accept: text/xml,application/xml
+HEADER=Content-Type: text/xml
+HEADER=Depth: 1
+
+AUTH=user5:user5
+
+# HEAD
+
+BEGINDATA
+
+
+
+
+
+
+
+
+ foo@ex.com
+
+
+
+ENDDATA
+
+REPLACE=_"[0-9a-f]+"_some valid etag_
+REPLACE=/^REV:.*$/REV:date/
diff --git a/testing/tests/carddav/2059-REPORT-carddavclient-GrpEmailContains.result b/testing/tests/carddav/2059-REPORT-carddavclient-GrpEmailContains.result
new file mode 100644
index 00000000..6c0b17e8
--- /dev/null
+++ b/testing/tests/carddav/2059-REPORT-carddavclient-GrpEmailContains.result
@@ -0,0 +1,25 @@
+
+
+
+ /caldav.php/user5/addresses/sabre-vobject-34cd55a8-330f-47cd-8b69-6fbd16a0880b.vcf
+
+
+ some valid etag
+ BEGIN:VCARD
+VERSION:4.0
+PRODID:-//Sabre//Sabre VObject 4.3.3//EN
+UID:sabre-vobject-34cd55a8-330f-47cd-8b69-6fbd16a0880b
+FN:CardDavClient Test1520108081
+N:Test1520108081;CardDavClient;;;
+NICKNAME:Jonny3
+ITEM1.EMAIL:foo@ex.com
+ITEM1.X-ABLABEL:CustomLabel
+IMPP;X-SERVICE-TYPE=Jabber;TYPE=HOME:xmpp:foo@example.com
+REV:date
+END:VCARD
+
+
+ HTTP/1.1 200 OK
+
+
+
diff --git a/testing/tests/carddav/2059-REPORT-carddavclient-GrpEmailContains.test b/testing/tests/carddav/2059-REPORT-carddavclient-GrpEmailContains.test
new file mode 100644
index 00000000..02ed600b
--- /dev/null
+++ b/testing/tests/carddav/2059-REPORT-carddavclient-GrpEmailContains.test
@@ -0,0 +1,34 @@
+#
+# Request a report for a text-match on a grouped property
+#
+# (only Jonny3 has item1.EMAIL set, but the text-match alone might also find
+# Jonny0)
+#
+TYPE=REPORT
+URL=http://regression.host/caldav.php/user5/addresses/
+
+HEADER=Accept: text/xml,application/xml
+HEADER=Content-Type: text/xml
+HEADER=Depth: 1
+
+AUTH=user5:user5
+
+# HEAD
+
+BEGINDATA
+
+
+
+
+
+
+
+
+ @ex
+
+
+
+ENDDATA
+
+REPLACE=_"[0-9a-f]+"_some valid etag_
+REPLACE=/^REV:.*$/REV:date/