[CalendarServer-changes] [11186] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed May 15 08:45:59 PDT 2013


Revision: 11186
          http://trac.calendarserver.org//changeset/11186
Author:   cdaboo at apple.com
Date:     2013-05-15 08:45:59 -0700 (Wed, 15 May 2013)
Log Message:
-----------
Depth:1 sync on home collections supported and include home child property changes.

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

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/12.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/13.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/14.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/15.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/16.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/17.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/18.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/19.xml
    CalDAVTester/trunk/Resource/CalDAV/reports/sync/20.xml

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/12.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/12.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/12.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:sync-collection xmlns:D="DAV:">
+<D:sync-token>$synctoken1:</D:sync-token>
+<D:sync-level>1</D:sync-level>
+</D:sync-collection>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/13.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/13.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/13.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:sync-collection xmlns:D="DAV:">
+<D:sync-token>$synctoken2:</D:sync-token>
+<D:sync-level>1</D:sync-level>
+</D:sync-collection>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/14.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/14.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/14.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:sync-collection xmlns:D="DAV:">
+<D:sync-token/>
+<D:sync-level>1</D:sync-level>
+<D:prop>
+<D:getcontenttype/>
+<D:getetag/>
+</D:prop>
+</D:sync-collection>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/15.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/15.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/15.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:sync-collection xmlns:D="DAV:">
+<D:sync-token>$synctoken1:</D:sync-token>
+<D:sync-level>1</D:sync-level>
+<D:prop>
+<D:getcontenttype/>
+<D:getetag/>
+</D:prop>
+</D:sync-collection>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/16.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/16.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/16.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:sync-collection xmlns:D="DAV:">
+<D:sync-token>$synctoken2:</D:sync-token>
+<D:sync-level>1</D:sync-level>
+<D:prop>
+<D:getcontenttype/>
+<D:getetag/>
+</D:prop>
+</D:sync-collection>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/17.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/17.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/17.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:details>My Name</D:details>
+</D:prop>
+</D:set>
+</D:propertyupdate>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/18.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/18.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/18.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:remove>
+<D:prop>
+<D:details/>
+</D:prop>
+</D:remove>
+</D:propertyupdate>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/19.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/19.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/19.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:set>
+<D:prop>
+<C:schedule-default-calendar-URL><D:href>$calendarhome1:/synccalendar3/</D:href></C:schedule-default-calendar-URL>
+</D:prop>
+</D:set>
+</D:propertyupdate>

Added: CalDAVTester/trunk/Resource/CalDAV/reports/sync/20.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/20.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/20.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:set>
+<D:prop>
+<C:schedule-default-calendar-URL><D:href>$calendarpath1:/</D:href></C:schedule-default-calendar-URL>
+</D:prop>
+</D:set>
+</D:propertyupdate>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml	2013-05-15 02:00:02 UTC (rev 11185)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -988,6 +988,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>shared/</value>
 						<value>shared/2.ics</value>
 					</arg>
 				</verify>
@@ -1018,6 +1019,7 @@
 					</arg>
 					<arg>
 						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
 						<value>$sharedcalendar:/2.ics</value>
 					</arg>
 				</verify>
@@ -1058,6 +1060,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>shared/</value>
 						<value>shared/3.ics</value>
 					</arg>
 				</verify>
@@ -1088,6 +1091,7 @@
 					</arg>
 					<arg>
 						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
 						<value>$sharedcalendar:/3.ics</value>
 					</arg>
 				</verify>
@@ -1123,6 +1127,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>shared/3.ics</value>
 					</arg>
@@ -1153,6 +1161,10 @@
 						<value/>
 					</arg>
 					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>$sharedcalendar:/3.ics</value>
 					</arg>
@@ -1189,6 +1201,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>shared/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>shared/2.ics</value>
 					</arg>
@@ -1219,6 +1235,10 @@
 						<value/>
 					</arg>
 					<arg>
+						<name>okhrefs</name>
+						<value>$sharedcalendar:/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>$sharedcalendar:/2.ics</value>
 					</arg>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml	2013-05-15 02:00:02 UTC (rev 11185)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -223,6 +223,20 @@
 				</verify>
 			</request>
 		</test>
+		<test name='5'>
+			<description>Look for options header tag on principal</description>
+			<request print-response="no">
+				<method>OPTIONS</method>
+				<ruri>$principal1:</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>*DAV$.*calendarserver-home-sync[^-]*</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
 	
 	<test-suite name='simple reports - sync-level' ignore='no'>
@@ -2126,6 +2140,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>synccalendar3/</value>
 						<value>synccalendar3/3.ics</value>
 					</arg>
 				</verify>
@@ -2158,6 +2173,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>synccalendar3/3.ics</value>
 					</arg>
@@ -2180,6 +2199,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>synccalendar3/3.ics</value>
 					</arg>
@@ -2218,6 +2241,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>synccalendar3/</value>
 						<value>synccalendar3/1.ics</value>
 					</arg>
 				</verify>
@@ -2366,6 +2390,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>synccalendar4/</value>
 						<value>synccalendar4/3.ics</value>
 					</arg>
 				</verify>
@@ -2406,6 +2431,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>synccalendar4/3.ics</value>
 					</arg>
@@ -2428,12 +2457,20 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>synccalendar4/3.ics</value>
 					</arg>
 				</verify>
 				<verify>
 					<callback>propfindItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
 				</verify>
 				<grabelement>
 					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
@@ -2469,6 +2506,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>synccalendar4/</value>
 						<value>synccalendar4/1.ics</value>
 					</arg>
 				</verify>
@@ -2683,6 +2721,694 @@
 		</test>
 	</test-suite>
 
+	<test-suite name='simple reports - diff token - no props - home depth:1' ignore='no'>
+		<require-feature>
+			<feature>sync-report-home</feature>
+		</require-feature>
+		<test name='1' ignore='no'>
+			<description>Initialize</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/synccalendar1/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/synccalendar2/</ruri>
+			</request>
+			<request end-delete="yes">
+				<method>MKCALENDAR</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar3/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/7.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar3/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/8.txt</filepath>
+				</data>
+			</request>
+			<request end-delete="yes">
+				<method>MKCALENDAR</method>
+				<ruri>$calendarhome1:/synccalendar4/</ruri>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar4/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/10.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar4/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/11.txt</filepath>
+				</data>
+			</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>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
+				</data>
+				<verify>
+					<exclude-feature>
+						<feature>split-calendars</feature>
+					</exclude-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<require-feature>
+						<feature>split-calendars</feature>
+					</require-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$tasks:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>new resource</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar3/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/9.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>remove resource (treated as new)</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/synccalendar3/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>remove resource (treated as old)</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>changed resource</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar3/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>no change</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='simple reports - diff token - props - home depth:1' ignore='no'>
+		<require-feature>
+			<feature>sync-report-home</feature>
+		</require-feature>
+		<test name='1' ignore='no'>
+			<description>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/14.xml</filepath>
+				</data>
+				<verify>
+					<exclude-feature>
+						<feature>split-calendars</feature>
+					</exclude-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<require-feature>
+						<feature>split-calendars</feature>
+					</require-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$tasks:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$calendarhome1:/$outbox:/</value>
+						<value>$calendarhome1:/$freebusy:</value>
+						<value>$calendarhome1:/$notification:/</value>
+						<value>$calendarhome1:/$dropbox:/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>new resource</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar4/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/12.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar4/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>remove resource (treated as new)</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/synccalendar4/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar4/</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>remove resource (treated as old)</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar4/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>changed resource</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/synccalendar4/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/put/10.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar4/</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>no change</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='simple reports - diff token - delete/create calendar - home depth:1' ignore='no'>
+		<require-feature>
+			<feature>sync-report-home</feature>
+		</require-feature>
+		<test name='1' ignore='no'>
+			<description>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
+				</data>
+				<verify>
+					<exclude-feature>
+						<feature>split-calendars</feature>
+					</exclude-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<require-feature>
+						<feature>split-calendars</feature>
+					</require-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$tasks:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>remove resource then calendar</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/synccalendar3/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>badhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken2:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>add calendar - test last sync</description>
+			<request>
+				<method>MKCALENDAR</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>add calendar - test previous sync</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
 	<test-suite name='simple reports - empty inbox' ignore='no'>
 		<test name='1' ignore='no'>
 			<description>initial query</description>
@@ -2732,6 +3458,481 @@
 		</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>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
+				</data>
+				<verify>
+					<exclude-feature>
+						<feature>split-calendars</feature>
+					</exclude-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+						<value>synccalendar4/1.ics</value>
+						<value>synccalendar4/2.ics</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<require-feature>
+						<feature>split-calendars</feature>
+					</require-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$tasks:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+						<value>synccalendar4/1.ics</value>
+						<value>synccalendar4/2.ics</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Change a property</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</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='3' ignore='no'>
+			<description>Remove a property</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</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-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>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
+				</data>
+				<verify>
+					<exclude-feature>
+						<feature>split-calendars</feature>
+					</exclude-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<require-feature>
+						<feature>split-calendars</feature>
+					</require-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$tasks:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Change a property</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</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='3' ignore='no'>
+			<description>Remove a property</description>
+			<request>
+				<method>PROPPATCH</method>
+				<ruri>$calendarhome1:/synccalendar3/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>synccalendar3/</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-suite>
+
+
+	<test-suite name='default calendar property change - home depth:1' ignore='no'>
+		<require-feature>
+			<feature>sync-report-home</feature>
+		</require-feature>
+		<test name='1' ignore='no'>
+			<description>initial query - grab token</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
+				</data>
+				<verify>
+					<exclude-feature>
+						<feature>split-calendars</feature>
+					</exclude-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<verify>
+					<require-feature>
+						<feature>split-calendars</feature>
+					</require-feature>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$calendar:/</value>
+						<value>$tasks:/</value>
+						<value>$inbox:/</value>
+						<value>$outbox:/</value>
+						<value>$freebusy:</value>
+						<value>$notification:/</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$dropbox:/</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
+					<variable>$synctoken1:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Change property on Inbox</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<ruri>$inboxpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/19.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$inbox:/</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='3' ignore='no'>
+			<description>Reset the property</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<ruri>$inboxpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/20.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$calendarhome1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/reports/sync/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$inbox:/</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-suite>
+
 	<end/>
 	
 </caldavtest>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml	2013-05-15 02:00:02 UTC (rev 11185)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml	2013-05-15 15:45:59 UTC (rev 11186)
@@ -1247,6 +1247,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>syncaddressbook3/</value>
 						<value>syncaddressbook3/3.vcf</value>
 					</arg>
 				</verify>
@@ -1279,6 +1280,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>syncaddressbook3/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>syncaddressbook3/3.vcf</value>
 					</arg>
@@ -1301,6 +1306,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>syncaddressbook3/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>syncaddressbook3/3.vcf</value>
 					</arg>
@@ -1339,6 +1348,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>syncaddressbook3/</value>
 						<value>syncaddressbook3/1.vcf</value>
 					</arg>
 				</verify>
@@ -1444,6 +1454,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>syncaddressbook4/</value>
 						<value>syncaddressbook4/3.vcf</value>
 					</arg>
 				</verify>
@@ -1484,6 +1495,10 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>syncaddressbook4/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>syncaddressbook4/3.vcf</value>
 					</arg>
@@ -1525,12 +1540,20 @@
 				<verify>
 					<callback>multistatusItems</callback>
 					<arg>
+						<name>okhrefs</name>
+						<value>syncaddressbook4/</value>
+					</arg>
+					<arg>
 						<name>badhrefs</name>
 						<value>syncaddressbook4/3.vcf</value>
 					</arg>
 				</verify>
 				<verify>
 					<callback>propfindItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
 				</verify>
 				<grabelement>
 					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
@@ -1566,6 +1589,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>syncaddressbook3/</value>
 						<value>syncaddressbook3/1.vcf</value>
 					</arg>
 				</verify>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130515/906a0f4f/attachment-0001.html>


More information about the calendarserver-changes mailing list