[CalendarServer-changes] [13897] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Aug 19 16:43:21 PDT 2014


Revision: 13897
          http://trac.calendarserver.org//changeset/13897
Author:   gaya at apple.com
Date:     2014-08-19 16:43:21 -0700 (Tue, 19 Aug 2014)
Log Message:
-----------
add unshare-groups uninvite tests

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare-groups.xml
    CalDAVTester/trunk/src/caldavtest.py

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/1.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/2.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/3.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/4.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/5.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/6.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/7.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/8.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/9.xml

Removed Paths:
-------------
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml
    CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/3.xml

Deleted: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml	2014-08-19 21:25:04 UTC (rev 13896)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<D:propfind xmlns:D="DAV:">
-<D:prop>
-<D:resourcetype/>
-<D:owner/>
-<D:current-user-privilege-set/>
-</D:prop>
-</D:propfind>

Copied: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml (from rev 13882, CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/3.xml)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$cuaddr8:</D:href>
+        <CS:summary>My Shared Calendar</CS:summary>
+        <CS:read-write/>
+    </CS:remove>
+</CS:share>

Deleted: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/3.xml	2014-08-19 21:25:04 UTC (rev 13896)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/shareedelete/3.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
-    <CS:remove>
-        <D:href>$cuaddr8:</D:href>
-        <CS:summary>My Shared Calendar</CS:summary>
-        <CS:read-write/>
-    </CS:remove>
-</CS:share>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/1.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/1.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$gcuaddrurn2:</D:href>
+    </CS:remove>
+</CS:share>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/2.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/2.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$cuaddrurn6:</D:href>
+    </CS:remove>
+</CS:share>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/3.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/3.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$gcuaddrurn4:</D:href>
+    </CS:remove>
+</CS:share>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/4.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/4.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='calendar'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn6:</href>
+    <invite-deleted/>
+    <access>
+      <read/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$calendarhome1:/shared</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$principaluri1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>The Shared Calendar</summary>
+    <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+      <comp name="VEVENT" />
+    </supported-calendar-component-set>
+  </invite-notification>
+</notification>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/5.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/5.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/5.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='calendar'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn7:</href>
+    <invite-deleted/>
+    <access>
+      <read/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$calendarhome1:/shared</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$principaluri1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>The Shared Calendar</summary>
+    <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+      <comp name="VEVENT" />
+    </supported-calendar-component-set>
+  </invite-notification>
+</notification>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/6.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/6.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='calendar'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn10:</href>
+    <invite-deleted/>
+    <access>
+      <read/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$calendarhome1:/shared</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$principaluri1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>The Shared Calendar</summary>
+    <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+      <comp name="VEVENT"/>
+    </supported-calendar-component-set>
+  </invite-notification>
+</notification>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/7.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/7.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/7.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$gcuaddrurn3:</D:href>
+    </CS:remove>
+</CS:share>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/8.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/8.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/8.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='calendar'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn8:</href>
+    <invite-deleted/>
+    <access>
+      <read-write/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$calendarhome1:/shared</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$principaluri1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>The Shared Calendar</summary>
+    <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+      <comp name="VEVENT" />
+    </supported-calendar-component-set>
+  </invite-notification>
+</notification>

Added: CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/9.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/9.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/sharing/unshare-groups/uninvite/9.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='calendar'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn9:</href>
+    <invite-deleted/>
+    <access>
+      <read-write/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$calendarhome1:/shared</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$principaluri1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>The Shared Calendar</summary>
+    <supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'>
+      <comp name="VEVENT" />
+    </supported-calendar-component-set>
+  </invite-notification>
+</notification>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups.xml	2014-08-19 21:25:04 UTC (rev 13896)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -1050,6 +1050,60 @@
 		</test>
 		<test name='2'>
 			<description>Check Sharee notification collection</description>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath6:/</ruri>
+			</request>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath6:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/groups/ro-group-rw-member/2.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid6:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath7:/</ruri>
+			</request>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath7:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/groups/read-only/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid7:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Check Sharee notification collection</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath8:/</ruri>
@@ -1075,7 +1129,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='3'>
+		<test name='5'>
 			<description>Check Sharee notification collection</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>WAITCOUNT 1</method>
@@ -1102,7 +1156,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='4'>
+		<test name='6'>
 			<description>Check Sharee notification collection</description>
 			<request user="$userid10:" pswd="$pswd10:">
 				<method>WAITCOUNT 1</method>
@@ -1129,8 +1183,44 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='5'>
+		<test name='7'>
 			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>POST</method>
+				<ruri>$calendarhome6:/</ruri>
+				<data>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/read-only/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareecalendar6:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>POST</method>
+				<ruri>$calendarhome7:/</ruri>
+				<data>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/read-only/5.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareecalendar7:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Sharee replies ACCEPTED</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>POST</method>
 				<ruri>$calendarhome8:/</ruri>
@@ -1147,7 +1237,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='6'>
+		<test name='10'>
 			<description>Sharee replies ACCEPTED</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>POST</method>
@@ -1165,7 +1255,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='7'>
+		<test name='11'>
 			<description>Sharee replies ACCEPTED</description>
 			<request user="$userid10:" pswd="$pswd10:">
 				<method>POST</method>
@@ -1183,7 +1273,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='8' ignore="no">
+		<test name='12' ignore="no">
 			<description>user6 shared calendar exists read-write</description>
 			<request user="$userid6:" pswd="$pswd6:">
 				<method>PROPFIND</method>
@@ -1217,7 +1307,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='9'>
+		<test name='13'>
 			<description>user7 shared calendar exists read-only</description>
 			<request user="$userid7:" pswd="$pswd7:">
 				<method>PROPFIND</method>
@@ -1249,7 +1339,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='10'>
+		<test name='14'>
 			<description>user8 shared calendar exists read-write read-only</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>PROPFIND</method>
@@ -1281,7 +1371,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='11'>
+		<test name='15'>
 			<description>user9 shared calendar exists read-write read-only</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>PROPFIND</method>
@@ -1313,7 +1403,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='12'>
+		<test name='16'>
 			<description>user10 shared calendar exists read-only</description>
 			<request user="$userid10:" pswd="$pswd10:">
 				<method>PROPFIND</method>
@@ -1347,7 +1437,7 @@
 		</test>
 	</test-suite>
 
-	<test-suite name='Add share to sub read-write' ignore="no">
+	<test-suite name='Share to subgroup read-write' ignore="no">
 		<test name='1'>
 			<description>POST invitation</description>
 			<request>
@@ -1620,7 +1710,7 @@
 		</test>
 	</test-suite>
 
-	<test-suite name='Add direct share to subgroup' ignore="no">
+	<test-suite name='Share direct to subgroup member' ignore="no">
 		<test name='1'>
 			<description>Add user8 as read for user1</description>
 			<request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare-groups.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare-groups.xml	2014-08-19 21:25:04 UTC (rev 13896)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare-groups.xml	2014-08-19 23:43:21 UTC (rev 13897)
@@ -464,7 +464,7 @@
 			</request>
 		</test>
 		<test name='21'>
-			<description>Add user08 as read for user01</description>
+			<description>Add user8 as read for user1</description>
 			<request>
 				<method>PROPPATCH</method>
 				<ruri>$principal1:calendar-proxy-read/</ruri>
@@ -482,7 +482,7 @@
 			</request>
 		</test>
 		<test name='22' ignore="no">
-			<description>user08 does direct share</description>
+			<description>user8 does direct share</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>GET</method>
 				<ruri>$calendarhome1:/shared/?action=share</ruri>
@@ -496,7 +496,7 @@
 			</request>
 		</test>
 		<test name='23' ignore="no">
-			<description>user06 shared calendar exists read-write</description>
+			<description>user6 shared calendar exists read-write</description>
 			<request user="$userid6:" pswd="$pswd6:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar6:/</ruri>
@@ -530,7 +530,7 @@
 			</request>
 		</test>
 		<test name='24'>
-			<description>user07 shared calendar exists read-only</description>
+			<description>user7 shared calendar exists read-only</description>
 			<request user="$userid7:" pswd="$pswd7:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar7:/</ruri>
@@ -562,7 +562,7 @@
 			</request>
 		</test>
 		<test name='25'>
-			<description>user08 shared calendar exists read-only</description>
+			<description>user8 shared calendar exists read-only</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar8:/</ruri>
@@ -594,7 +594,7 @@
 			</request>
 		</test>
 		<test name='26'>
-			<description>user09 shared calendar exists read-write</description>
+			<description>user9 shared calendar exists read-write</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar9:/</ruri>
@@ -677,7 +677,7 @@
 			</request>
 		</test>
 		<test name='2'>
-			<description>user06 deletes shared calendar</description>
+			<description>user6 deletes shared calendar</description>
 			<request user="$userid6:" pswd="$pswd6:">
 				<method>DELETE</method>
 				<ruri>$shareecalendar6:/</ruri>
@@ -691,13 +691,13 @@
 			</request>
 		</test>
 		<test name='3'>
-			<description>user06 shared calendar nonextant</description>
+			<description>user6 shared calendar nonextant</description>
 			<request user="$userid6:" pswd="$pswd6:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar6:/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -709,7 +709,7 @@
 			</request>
 		</test>
 		<test name='4' ignore="no">
-			<description>user07 deletes shared calendar</description>
+			<description>user7 deletes shared calendar</description>
 			<request user="$userid7:" pswd="$pswd7:">
 				<method>DELETE</method>
 				<ruri>$shareecalendar7:/</ruri>
@@ -723,13 +723,13 @@
 			</request>
 		</test>
 		<test name='5'>
-			<description>user07 shared calendar nonextant</description>
+			<description>user7 shared calendar nonextant</description>
 			<request user="$userid7:" pswd="$pswd7:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar7:/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -741,7 +741,7 @@
 			</request>
 		</test>
 		<test name='6' ignore="no">
-			<description>user08 deletes shared calendar</description>
+			<description>user8 deletes shared calendar</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>DELETE</method>
 				<ruri>$shareecalendar8:/</ruri>
@@ -755,13 +755,13 @@
 			</request>
 		</test>
 		<test name='7'>
-			<description>user09 shared calendar nonextant</description>
+			<description>user8 shared calendar nonextant</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar8:/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -773,7 +773,7 @@
 			</request>
 		</test>
 		<test name='8'>
-			<description>user09 deletes shared calendar</description>
+			<description>user9 deletes shared calendar</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>DELETE</method>
 				<ruri>$shareecalendar9:/</ruri>
@@ -787,13 +787,13 @@
 			</request>
 		</test>
 		<test name='9'>
-			<description>user09 shared calendar nonextant</description>
+			<description>user9 shared calendar nonextant</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar9:/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -825,7 +825,7 @@
 				<ruri>$shareecalendar10:/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare-groups/shareedelete/2.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -859,7 +859,7 @@
 			</request>
 		</test>
 		<test name='-1' ignore="no">
-			<description>Clear user08 as proxy for user01</description>
+			<description>Clear user8 as proxy for user1</description>
 			<request>
 				<method>PROPPATCH</method>
 				<ruri>$principal1:calendar-proxy-read/</ruri>
@@ -879,7 +879,7 @@
 	</test-suite>
 
 	<test-suite name='Reshare' ignore="no">
-		<test name='0'>
+		<test name='0' ignore="no">
 			<description>clean up old notifications</description>
 			<request user="$useradmin:" pswd="$pswdadmin:">
 				<method>DELETEALL</method>
@@ -891,7 +891,6 @@
 				<ruri>$notificationpath10:/</ruri>
 			</request>
 		</test>
-
 		<test name='1'>
 			<description>POST invitation to group4 read-only</description>
 			<request>
@@ -1132,7 +1131,7 @@
 			</request>
 		</test>
 		<test name='12' ignore="no">
-			<description>user06 shared calendar exists read-write</description>
+			<description>user6 shared calendar exists read-write</description>
 			<request user="$userid6:" pswd="$pswd6:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar6:/</ruri>
@@ -1166,7 +1165,7 @@
 			</request>
 		</test>
 		<test name='13'>
-			<description>user07 shared calendar exists read-only</description>
+			<description>user7 shared calendar exists read-only</description>
 			<request user="$userid7:" pswd="$pswd7:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar7:/</ruri>
@@ -1198,7 +1197,7 @@
 			</request>
 		</test>
 		<test name='14' ignore="no">
-			<description>user09 shared calendar exists read-write</description>
+			<description>user8 shared calendar exists read-write</description>
 			<request user="$userid8:" pswd="$pswd8:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar8:/</ruri>
@@ -1232,7 +1231,7 @@
 			</request>
 		</test>
 		<test name='15'>
-			<description>user09 shared calendar exists read-write</description>
+			<description>user9 shared calendar exists read-write</description>
 			<request user="$userid9:" pswd="$pswd9:">
 				<method>PROPFIND</method>
 				<ruri>$shareecalendar9:/</ruri>
@@ -1299,15 +1298,15 @@
 		</test>
 	</test-suite>
 
-	<test-suite name='Uninvite' ignore="yes">
+	<test-suite name='Uninvite'>
 		<test name='1'>
-			<description>POST invitation</description>
+			<description>uninvite subgroup 2</description>
 			<request>
 				<method>POST</method>
 				<ruri>$calendarhome1:/shared/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare/shareruninvite/1.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/unshare-groups/uninvite/1.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -1315,19 +1314,19 @@
 			</request>
 		</test>
 		<test name='2'>
-			<description>Check user3 notification collection</description>
-			<request user="$userid3:" pswd="$pswd3:">
+			<description>Check user6 notification collection</description>
+			<request user="$userid6:" pswd="$pswd6:">
 				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath3:/</ruri>
+				<ruri>$notificationpath6:/</ruri>
 			</request>
-			<request user="$userid3:" pswd="$pswd3:">
+			<request user="$userid6:" pswd="$pswd6:">
 				<method>GETNEW</method>
-				<ruri>$notificationpath3:/</ruri>
+				<ruri>$notificationpath6:/</ruri>
 				<verify>
 					<callback>xmlDataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/CalDAV/sharing/unshare/shareruninvite/2.xml</value>
+						<value>Resource/CalDAV/sharing/groups/ro-group-rw-member/2.xml</value>
 					</arg>
 					<arg>
 						<name>filter</name>
@@ -1335,84 +1334,426 @@
 						<value>{http://calendarserver.org/ns/}uid</value>
 					</arg>
 				</verify>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
 			</request>
 		</test>
 		<test name='3'>
-			<description>user3 replies ACCEPTED</description>
-			<request user="$userid3:" pswd="$pswd3:">
+			<description>Check user7 notification collection</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath7:/</ruri>
+			</request>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath7:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/groups/read-only/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore="no">
+			<description>user6 shared calendar exists read-write</description>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar6:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>user7 shared calendar exists read-only</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar7:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore="no">
+			<description>user8 shared calendar exists read-write</description>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar8:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>user9 shared calendar exists read-write</description>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar9:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>user10 shared calendar exists read-only</description>
+			<request user="$userid10:" pswd="$pswd10:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar10:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>uninvite user6</description>
+			<request>
 				<method>POST</method>
-				<ruri>$calendarhome3:/</ruri>
+				<ruri>$calendarhome1:/shared/</ruri>
 				<data>
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare/shareruninvite/3.xml</filepath>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/unshare-groups/uninvite/2.xml</filepath>
 				</data>
 				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Check user6 notification collection</description>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath6:/</ruri>
+			</request>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath6:/</ruri>
+				<verify>
 					<callback>xmlDataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/CalDAV/sharing/unshare/shareruninvite/4.xml</value>
+						<value>Resource/CalDAV/sharing/groups/read-only/2.xml</value>
 					</arg>
 					<arg>
 						<name>filter</name>
-						<value>{DAV:}href</value>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
 					</arg>
 				</verify>
-				<grabelement>
-					<name>{DAV:}href</name>
-					<variable>$shareecalendar:</variable>
-				</grabelement>
 			</request>
 		</test>
-		<test name='4'>
-			<description>user3 changes name</description>
-			<request user="$userid3:" pswd="$pswd3:">
-				<method>PROPPATCH</method>
-				<ruri>$shareecalendar:/</ruri>
+		<test name='11' ignore="no">
+			<description>user6 shared calendar exists read-write</description>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar6:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
 				<data>
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare/shareruninvite/5.xml</filepath>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindItems</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>okprops</name>
-						<value>{DAV:}displayname</value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
 					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
 				</verify>
 			</request>
 		</test>
-		<test name='5'>
-			<description>POST uninvitation</description>
+		<test name='12'>
+			<description>user7 shared calendar exists read-only</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar7:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13' ignore="no">
+			<description>user8 shared calendar exists read-write</description>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar8:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='14'>
+			<description>user9 shared calendar exists read-write</description>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar9:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='15'>
+			<description>user10 shared calendar exists read-only</description>
+			<request user="$userid10:" pswd="$pswd10:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar10:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='16'>
+			<description>uninvite (super-)group 4</description>
 			<request>
 				<method>POST</method>
 				<ruri>$calendarhome1:/shared/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/unshare/shareruninvite/6.xml</filepath>
+					<filepath>Resource/CalDAV/sharing/unshare-groups/uninvite/3.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
 				</verify>
 			</request>
 		</test>
-		<test name='6'>
-			<description>Check user3 notification collection</description>
-			<request user="$userid3:" pswd="$pswd3:">
+		<test name='17'>
+			<description>Check user6 notification collection</description>
+			<request user="$userid6:" pswd="$pswd6:">
 				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath3:/</ruri>
+				<ruri>$notificationpath6:/</ruri>
 			</request>
-			<request user="$userid3:" pswd="$pswd3:">
+			<request user="$userid6:" pswd="$pswd6:">
 				<method>GETNEW</method>
-				<ruri>$notificationpath3:/</ruri>
+				<ruri>$notificationpath6:/</ruri>
 				<verify>
 					<callback>xmlDataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/CalDAV/sharing/unshare/shareruninvite/7.xml</value>
+						<value>Resource/CalDAV/sharing/unshare-groups/uninvite/4.xml</value>
 					</arg>
 					<arg>
 						<name>filter</name>
@@ -1420,12 +1761,318 @@
 						<value>{http://calendarserver.org/ns/}uid</value>
 					</arg>
 				</verify>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
 			</request>
 		</test>
+		<test name='18'>
+			<description>Check user7 notification collection</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath7:/</ruri>
+			</request>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath7:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/unshare-groups/uninvite/5.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='19'>
+			<description>Check user8 notification collection</description>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath8:/</ruri>
+			</request>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath8:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/groups/ro-super-rw-sub-rw-member/2.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='20'>
+			<description>Check user9 notification collection</description>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath9:/</ruri>
+			</request>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath9:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/groups/ro-super-rw-sub-rw-member/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='21'>
+			<description>Check user10 notification collection</description>
+			<request user="$userid10:" pswd="$pswd10:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath10:/</ruri>
+			</request>
+			<request user="$userid10:" pswd="$pswd10:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath10:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/unshare-groups/uninvite/6.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='22' ignore="no">
+			<description>user6 shared calendar nonextant</description>
+			<request user="$userid6:" pswd="$pswd6:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar6:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='23' ignore="no">
+			<description>user7 shared calendar nonextant</description>
+			<request user="$userid7:" pswd="$pswd7:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar7:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='24' ignore="no">
+			<description>user8 shared calendar exists read-write</description>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar8:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='25'>
+			<description>user9 shared calendar exists read-write</description>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar9:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name="26" ignore="no">
+			<description>user10 shared calendar nonextant</description>
+			<request user="$userid10:" pswd="$pswd10:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar10:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='27'>
+			<description>uninvite group 3</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/unshare-groups/uninvite/7.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='28'>
+			<description>Check user8 notification collection</description>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath8:/</ruri>
+			</request>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath8:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/unshare-groups/uninvite/8.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='29'>
+			<description>Check user9 notification collection</description>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath9:/</ruri>
+			</request>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>GETNEW</method>
+				<ruri>$notificationpath9:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/unshare-groups/uninvite/9.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='30' ignore="no">
+			<description>user8 shared calendar nonextant</description>
+			<request user="$userid8:" pswd="$pswd8:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar8:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='31' ignore="no">
+			<description>user9 shared calendar nonextant</description>
+			<request user="$userid9:" pswd="$pswd9:">
+				<method>PROPFIND</method>
+				<ruri>$shareecalendar9:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/groups/common/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
 
 	<end>

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2014-08-19 21:25:04 UTC (rev 13896)
+++ CalDAVTester/trunk/src/caldavtest.py	2014-08-19 23:43:21 UTC (rev 13897)
@@ -301,6 +301,7 @@
 
     def dofindnew(self, collection, label=""):
         hresult = ""
+        possible_matches = set()
         req = request(self.manager)
         req.method = "PROPFIND"
         req.ruris.append(collection[0])
@@ -327,7 +328,6 @@
             except Exception:
                 return hresult
 
-            possible_matches = set()
             latest = 0
             request_uri = req.getURI(self.manager.server_info)
             for response in tree.findall("{DAV:}response"):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140819/0b6ca2d5/attachment-0001.html>


More information about the calendarserver-changes mailing list