[CalendarServer-changes] [11780] CalDAVTester/trunk/scripts/tests

source_changes at macosforge.org source_changes at macosforge.org
Thu Oct 3 08:44:45 PDT 2013


Revision: 11780
          http://trac.calendarserver.org//changeset/11780
Author:   cdaboo at apple.com
Date:     2013-10-03 08:44:45 -0700 (Thu, 03 Oct 2013)
Log Message:
-----------
Add some sharing+sync tests for CalDAV. Clean-up some XML schema in other tests.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-sync.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-sync.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-sync.xml	2013-10-02 23:27:44 UTC (rev 11779)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-sync.xml	2013-10-03 15:44:45 UTC (rev 11780)
@@ -862,6 +862,941 @@
 		</test>
 	</test-suite>
 	
+
+	<test-suite name='calendar webdav property change - home depth:infinity' ignore='no'>
+		<require-feature>
+			<feature>sync-report-home</feature>
+		</require-feature>
+		<test name='1' ignore='no'>
+			<description>POST invitation and accept</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharinginvite2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/sync/depth1-cache/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>$inviteuid2:</variable>
+				</grabelement>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href</name>
+					<variable>$hosturl2:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>basename($sharedcalendar:)</variable>
+				</grabelement>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-init-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>shared/</value>
+					</arg>
+					<arg>
+						<name>ignoremissing</name>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>initial query - grab token for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-init-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$sharedcalendar:/</value>
+					</arg>
+					<arg>
+						<name>ignoremissing</name>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Change a property by user 1</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Remove a property by user 1</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Change a property by user 2</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='13' ignore='no'>
+			<description>Remove a property by user 1</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='14' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='15' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='16'>
+			<description>Sharer unshares</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharingremove2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='calendar webdav property change - home depth:1' ignore='no'>
+		<require-feature>
+			<feature>sync-report-home</feature>
+		</require-feature>
+		<test name='1' ignore='no'>
+			<description>POST invitation and accept</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharinginvite2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/sync/depth1-cache/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>$inviteuid2:</variable>
+				</grabelement>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href</name>
+					<variable>$hosturl2:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>basename($sharedcalendar:)</variable>
+				</grabelement>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-init-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>shared/</value>
+					</arg>
+					<arg>
+						<name>ignoremissing</name>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>initial query - grab token for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-init-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$sharedcalendar:/</value>
+					</arg>
+					<arg>
+						<name>ignoremissing</name>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Change a property by user 1</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Remove a property by user 1</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Change a property by user 2</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='13' ignore='no'>
+			<description>Remove a property by user 1</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='14' ignore='no'>
+			<description>Sync for user 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='15' ignore='no'>
+			<description>Sync for user 2</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='16'>
+			<description>Sharer unshares</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharingremove2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml	2013-10-02 23:27:44 UTC (rev 11779)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml	2013-10-03 15:44:45 UTC (rev 11780)
@@ -34,7 +34,8 @@
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
 		</request>
-		<description>Sharer creates 2 persons and a group</description>
+
+		<!-- Sharer creates 2 persons and a group -->
 		<request print-response='no'>
 			<method>PUT</method>
 			<ruri>$addressbookpath1:/1.vcf</ruri>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml	2013-10-02 23:27:44 UTC (rev 11779)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml	2013-10-03 15:44:45 UTC (rev 11780)
@@ -824,7 +824,7 @@
 
 	<test-suite name='support-report-set/sync-token property' ignore='no'>
 		<test name='0' ignore='no'>
-			<description>clean up old data</description>
+			<!-- clean up old data -->
 			<request user="$useradmin:" pswd="$pswdadmin:">
 				<method>DELETEALL</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -834,7 +834,7 @@
 				<ruri>$notificationpath1:/</ruri>
 			</request>
 	
-			<description>add 2 vcards to user1 address book</description>
+			<!-- add 2 vcards to user1 address book -->
 			<request>
 				<method>PUT</method>
 				<ruri>$addressbookpath1:/1.vcf</ruri>
@@ -852,8 +852,8 @@
 				</data>
 			</request>
 			
-			<description>share user2 address book with user1</description>
-			<description>user2 POSTs invitation</description>
+			<!-- share user2 address book with user1 -->
+			<!-- user2 POSTs invitation -->
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath2:/</ruri>
@@ -862,7 +862,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/11.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -875,7 +876,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -888,7 +890,8 @@
 				<method>DELETE</method>
 				<ruri>$notificationpath1:/$inviteuid:</ruri>
 			</request>
-			<description>add 2 vcards to user2 address book</description>
+
+			<!-- add 2 vcards to user2 address book -->
 			<request user="$userid2:" pswd="$pswd2:">
 				<method>PUT</method>
 				<ruri>$addressbookpath2:/1.vcf</ruri>
@@ -2342,8 +2345,8 @@
 			<feature>sync-report-home</feature>
 		</require-feature>
 		<test name='1' ignore='no'>
-			<description>Initialize</description>
-			<description>clear user1 address book and unshare user2 address book</description>
+			<!-- Initialize -->
+			<!-- clear user1 address book and unshare user2 address book -->
 			<request>
 				<method>DELETE</method>
 					<ruri>$addressbookpath1:/</ruri>
@@ -2365,8 +2368,9 @@
 					<callback>statusCode</callback>
 				</verify>
 			</request>
-			<description>share user3 address book with user1</description>
-			<description>user3 POSTs invitation</description>
+
+			<!-- share user3 address book with user1 -->
+			<!-- user3 POSTs invitation -->
 			<request user="$userid3:" pswd="$pswd3:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath3:/</ruri>
@@ -2375,7 +2379,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -2388,7 +2393,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -2401,7 +2407,8 @@
 				<method>DELETE</method>
 				<ruri>$notificationpath1:/$inviteuid:</ruri>
 			</request>
-			<description>add 2 vcards to user3 address book</description>
+
+			<!-- add 2 vcards to user3 address book -->
 			<request user="$userid3:" pswd="$pswd3:">
 				<method>PUT</method>
 				<ruri>$addressbookpath3:/1.vcf</ruri>
@@ -2419,8 +2426,8 @@
 				</data>
 			</request>
 	
-			<description>share user4 address book with user1</description>
-			<description>user4 POSTs invitation</description>
+			<!-- share user4 address book with user1 -->
+			<!-- user4 POSTs invitation -->
 			<request user="$userid4:" pswd="$pswd4:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath4:/</ruri>
@@ -2429,7 +2436,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/15.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -2442,7 +2450,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -2455,7 +2464,8 @@
 				<method>DELETE</method>
 				<ruri>$notificationpath1:/$inviteuid:</ruri>
 			</request>
-			<description>add 2 vcards to user4 address book</description>
+
+			<!-- add 2 vcards to user4 address book -->
 			<request user="$userid4:" pswd="$pswd4:">
 				<method>PUT</method>
 				<ruri>$addressbookpath4:/1.vcf</ruri>
@@ -2984,8 +2994,8 @@
 		</test>
 		<test name='3' ignore='no'>
 			<description>add addressbook - test last sync</description>
-			<description>share user3 address book with user1</description>
-			<description>user3 POSTs invitation</description>
+			<!-- share user3 address book with user1 -->
+			<!-- user3 POSTs invitation -->
 			<request user="$userid3:" pswd="$pswd3:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath3:/</ruri>
@@ -2994,7 +3004,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -3007,7 +3018,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -3082,8 +3094,9 @@
 				<ruri>$addressbookhome4:/</ruri>
 				<ruri>$notificationpath1:/</ruri>
 			</request>
-			<description>share user3 address book with user1</description>
-			<description>user3 POSTs invitation</description>
+
+			<!-- share user3 address book with user1 -->
+			<!-- user3 POSTs invitation -->
 			<request user="$userid3:" pswd="$pswd3:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath3:/</ruri>
@@ -3092,7 +3105,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -3105,7 +3119,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -3118,7 +3133,8 @@
 				<method>DELETE</method>
 				<ruri>$notificationpath1:/$inviteuid:</ruri>
 			</request>
-			<description>add 2 vcards to user3 address book</description>
+
+			<!-- add 2 vcards to user3 address book -->
 			<request user="$userid3:" pswd="$pswd3:">
 				<method>PUT</method>
 				<ruri>$addressbookpath3:/1.vcf</ruri>
@@ -3136,8 +3152,8 @@
 				</data>
 			</request>
 	
-			<description>share user4 address book with user1</description>
-			<description>user4 POSTs invitation</description>
+			<!-- share user4 address book with user1 -->
+			<!-- user4 POSTs invitation -->
 			<request user="$userid4:" pswd="$pswd4:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath4:/</ruri>
@@ -3146,7 +3162,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/15.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -3159,7 +3176,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
@@ -3172,7 +3190,8 @@
 				<method>DELETE</method>
 				<ruri>$notificationpath1:/$inviteuid:</ruri>
 			</request>
-			<description>add 2 vcards to user4 address book</description>
+
+			<!-- add 2 vcards to user4 address book -->
 			<request user="$userid4:" pswd="$pswd4:">
 				<method>PUT</method>
 				<ruri>$addressbookpath4:/1.vcf</ruri>
@@ -3676,8 +3695,8 @@
 		</test>
 		<test name='3' ignore='no'>
 			<description>add addressbook - test last sync</description>
-			<description>share user3 address book with user1</description>
-			<description>user3 POSTs invitation</description>
+			<!-- share user3 address book with user1 -->
+			<!-- user3 POSTs invitation -->
 			<request user="$userid3:" pswd="$pswd3:" print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookpath3:/</ruri>
@@ -3686,7 +3705,8 @@
 					<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
 				</data>
 			</request>
-			<description>Check user1 notification collection and get invite uid</description>
+
+			<!-- Check user1 notification collection and get invite uid -->
 			<request print-response="no">
 				<method>WAITCOUNT 1</method>
 				<ruri>$notificationpath1:/</ruri>
@@ -3699,7 +3719,8 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+			<!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
 			<request print-response="no">
 				<method>POST</method>
 				<ruri>$addressbookhome1:/</ruri>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20131003/f8235760/attachment-0001.html>


More information about the calendarserver-changes mailing list