[CalendarServer-changes] [14406] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 12 13:26:30 PST 2015


Revision: 14406
          http://trac.calendarserver.org//changeset/14406
Author:   cdaboo at apple.com
Date:     2015-02-12 13:26:30 -0800 (Thu, 12 Feb 2015)
Log Message:
-----------
Provide substitution variables for home collection default child items for use in sync REPORTs which in the future will return the request-URI resource too.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-pod.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
    CalDAVTester/trunk/verifiers/multistatusItems.py

Added Paths:
-----------
    CalDAVTester/trunk/src/utils.py

Modified: CalDAVTester/trunk/scripts/server/serverinfo-pod.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-pod.xml	2015-02-12 20:39:35 UTC (rev 14405)
+++ CalDAVTester/trunk/scripts/server/serverinfo-pod.xml	2015-02-12 21:26:30 UTC (rev 14406)
@@ -303,6 +303,18 @@
 			<value>freebusy</value>
 		</substitution>
 
+		<!-- Sync home collection items - use "-" to include the home resource-->
+		<substitution>
+			<key>$calendar_home_items_initial_sync:</key>
+			<value>[$calendar:/,$tasks:/,$inbox:/,$outbox:/,$freebusy:,$notification:/]</value>
+		</substitution>
+
+		<!-- Sync collection extra items - use "-" to include the collection-->
+		<substitution>
+			<key>$calendar_sync_extra_items:</key>
+			<value>[]</value>
+		</substitution>
+
 		<!-- server-to-server inbox-->
 		<substitution>
 			<key>$servertoserver:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2015-02-12 20:39:35 UTC (rev 14405)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2015-02-12 21:26:30 UTC (rev 14406)
@@ -301,6 +301,18 @@
 			<value>freebusy</value>
 		</substitution>
 
+		<!-- Sync home collection items - use "-" to include the home resource-->
+		<substitution>
+			<key>$calendar_home_items_initial_sync:</key>
+			<value>[$calendar:/,$tasks:/,$inbox:/,$outbox:/,$freebusy:,$notification:/]</value>
+		</substitution>
+
+		<!-- Sync collection extra items - use "-" to include the collection-->
+		<substitution>
+			<key>$calendar_sync_extra_items:</key>
+			<value>[]</value>
+		</substitution>
+
 		<!-- server-to-server inbox-->
 		<substitution>
 			<key>$servertoserver:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2015-02-12 20:39:35 UTC (rev 14405)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2015-02-12 21:26:30 UTC (rev 14406)
@@ -301,6 +301,18 @@
 			<value>freebusy</value>
 		</substitution>
 
+		<!-- Sync home collection items - use "-" to include the home resource-->
+		<substitution>
+			<key>$calendar_home_items_initial_sync:</key>
+			<value>[$calendar:/,$tasks:/,$inbox:/,$outbox:/,$freebusy:,$notification:/]</value>
+		</substitution>
+
+		<!-- Sync collection extra items - use "-" to include the collection-->
+		<substitution>
+			<key>$calendar_sync_extra_items:</key>
+			<value>[]</value>
+		</substitution>
+
 		<!-- server-to-server inbox-->
 		<substitution>
 			<key>$servertoserver:</key>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml	2015-02-12 20:39:35 UTC (rev 14405)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml	2015-02-12 21:26:30 UTC (rev 14406)
@@ -461,44 +461,17 @@
 					<filepath>Resource/CalDAV/sharing/notification-sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>$sharedcalendarbasename:/</value>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>$freebusy:</value>
-						<value>$notification:/</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>$sharedcalendarbasename:/</value>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>$freebusy:</value>
-						<value>$notification:/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 				<grabelement>
 					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
 					<variable>$synctoken2:</variable>
@@ -711,44 +684,17 @@
 					<filepath>Resource/CalDAV/sharing/notification-sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>$sharedcalendarbasename:/</value>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>$freebusy:</value>
-						<value>$notification:/</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>$sharedcalendarbasename:/</value>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>$freebusy:</value>
-						<value>$notification:/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 				<grabelement>
 					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
 					<variable>$synctoken2:</variable>
@@ -999,46 +945,18 @@
 					<filepath>Resource/CalDAV/sharing/notification-sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>$sharedcalendarbasename:/</value>
 						<value>$sharedcalendarbasename:/1.ics</value>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>$freebusy:</value>
-						<value>$notification:/</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>$sharedcalendarbasename:/</value>
-						<value>$sharedcalendarbasename:/1.ics</value>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>$freebusy:</value>
-						<value>$notification:/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 				<grabelement>
 					<name>/{DAV:}multistatus/{DAV:}sync-token</name>
 					<variable>$synctoken2:</variable>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml	2015-02-12 20:39:35 UTC (rev 14405)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml	2015-02-12 21:26:30 UTC (rev 14406)
@@ -260,18 +260,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -280,28 +272,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='2'>
@@ -321,18 +291,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -341,28 +303,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='3'>
@@ -382,18 +322,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -402,28 +334,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='4'>
@@ -443,18 +353,10 @@
 					<filepath>Resource/CalDAV/reports/sync/9.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -467,32 +369,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='5'>
@@ -512,18 +388,10 @@
 					<filepath>Resource/CalDAV/reports/sync/9.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -536,32 +404,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='6'>
@@ -581,18 +423,10 @@
 					<filepath>Resource/CalDAV/reports/sync/9.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -605,32 +439,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='7'>
@@ -650,6 +458,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -676,6 +485,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -702,6 +512,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -728,6 +539,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -754,6 +566,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -780,6 +593,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -828,6 +642,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -851,18 +666,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -871,28 +678,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='3'>
@@ -912,18 +697,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -936,32 +713,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='4'>
@@ -995,6 +746,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 						<value>3.ics</value>
@@ -1019,18 +771,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -1039,28 +783,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='7'>
@@ -1080,18 +802,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -1105,33 +819,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar1/3.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='8'>
@@ -1161,6 +848,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -1184,18 +872,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -1204,28 +884,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='11'>
@@ -1245,18 +903,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -1269,32 +919,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='12'>
@@ -1328,6 +952,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -1351,18 +976,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar2/</value>
 					</arg>
@@ -1371,28 +988,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar2/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='15'>
@@ -1412,18 +1007,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar1/</value>
 						<value>synccalendar1/1.ics</value>
 						<value>synccalendar1/2.ics</value>
@@ -1436,32 +1023,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar1/</value>
-						<value>synccalendar1/1.ics</value>
-						<value>synccalendar1/2.ics</value>
-						<value>synccalendar2/</value>
-						<value>synccalendar2/1.ics</value>
-						<value>synccalendar2/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 	</test-suite>
@@ -1484,6 +1045,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -1665,6 +1227,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -1707,6 +1270,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 						<value>3.ics</value>
@@ -1746,6 +1310,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -1788,6 +1353,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -1822,6 +1388,7 @@
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>okhrefs</name>
+						<value>$calendar_sync_extra_items:</value>
 						<value>1.ics</value>
 						<value>2.ics</value>
 					</arg>
@@ -2089,18 +1656,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar3/1.ics</value>
 						<value>synccalendar3/2.ics</value>
@@ -2113,32 +1672,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar3/</value>
-						<value>synccalendar3/1.ics</value>
-						<value>synccalendar3/2.ics</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>
@@ -2326,18 +1859,10 @@
 					<filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar3/1.ics</value>
 						<value>synccalendar3/2.ics</value>
@@ -2351,32 +1876,6 @@
 					</arg>
 				</verify>
 				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar3/</value>
-						<value>synccalendar3/1.ics</value>
-						<value>synccalendar3/2.ics</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>
 					<callback>propfindItems</callback>
 					<arg>
 						<name>ignore</name>
@@ -2609,18 +2108,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar3/1.ics</value>
 						<value>synccalendar3/2.ics</value>
@@ -2633,32 +2124,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-						<value>synccalendar3/</value>
-						<value>synccalendar3/1.ics</value>
-						<value>synccalendar3/2.ics</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>
@@ -2827,18 +2292,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar4/</value>
 					</arg>
@@ -2847,28 +2304,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</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>
@@ -3046,18 +2481,10 @@
 					<filepath>Resource/CalDAV/reports/sync/14.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar4/</value>
 					</arg>
@@ -3067,28 +2494,6 @@
 					</arg>
 				</verify>
 				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</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>
@@ -3311,18 +2716,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar4/</value>
 					</arg>
@@ -3331,28 +2728,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</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>
@@ -3519,18 +2894,10 @@
 					<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar4/</value>
 						<value>synccalendar4/1.ics</value>
@@ -3541,30 +2908,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</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>
@@ -3679,18 +3022,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar4/</value>
 					</arg>
@@ -3699,28 +3034,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</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>
@@ -3836,18 +3149,10 @@
 					<filepath>Resource/CalDAV/reports/sync/8.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
 						<value>synccalendar3/</value>
 						<value>synccalendar4/</value>
 					</arg>
@@ -3856,28 +3161,6 @@
 						<value>$dropbox:/</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</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>
@@ -4001,18 +3284,12 @@
 					<filepath>Resource/CalDAV/reports/sync/22.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
 						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
+						<value>$calendar_home_items_initial_sync:</value>
+						<value>synccalendar3/</value>
+						<value>synccalendar4/</value>
 					</arg>
 					<arg>
 						<name>badhrefs</name>
@@ -4020,26 +3297,6 @@
 					</arg>
 				</verify>
 				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>ignoremissing</name>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$calendar:/</value>
-						<value>$tasks:/</value>
-						<value>$inbox:/</value>
-						<value>$outbox:/</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$dropbox:/</value>
-					</arg>
-				</verify>
-				<verify>
 					<callback>dataString</callback>
 					<arg>
 						<name>contains</name>

Added: CalDAVTester/trunk/src/utils.py
===================================================================
--- CalDAVTester/trunk/src/utils.py	                        (rev 0)
+++ CalDAVTester/trunk/src/utils.py	2015-02-12 21:26:30 UTC (rev 14406)
@@ -0,0 +1,40 @@
+##
+# Copyright (c) 2015 Apple Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##
+
+def processHrefSubstitutions(hrefs, prefix):
+    """
+    Process the list of hrefs by prepending the supplied prefix. If the href is a
+    list of hrefs, then prefix each item in the list and expand into the results. The
+    empty string is represented by a single "-" in an href list.
+
+    @param hrefs: list of URIs to process
+    @type hrefs: L{list} of L{str}
+    @param prefix: prefix to apply to each URI
+    @type prefix: L{str}
+
+    @return: resulting list of URIs
+    @rtype: L{list} of L{str}
+    """
+
+    results = []
+    for href in hrefs:
+        if href.startswith("["):
+            children = href[1:-1].split(",")
+            results.extend([(prefix + (i if i != "-" else "")).rstrip("/") for i in children if i])
+        else:
+            results.append((prefix + href).rstrip("/"))
+
+    return results

Modified: CalDAVTester/trunk/verifiers/multistatusItems.py
===================================================================
--- CalDAVTester/trunk/verifiers/multistatusItems.py	2015-02-12 20:39:35 UTC (rev 14405)
+++ CalDAVTester/trunk/verifiers/multistatusItems.py	2015-02-12 21:26:30 UTC (rev 14406)
@@ -19,6 +19,7 @@
 are returned with appropriate status codes.
 """
 
+from src.utils import processHrefSubstitutions
 from xml.etree.cElementTree import ElementTree
 from StringIO import StringIO
 import urllib
@@ -47,9 +48,9 @@
             prefix = prefix[0] if prefix[0] != "-" else ""
         else:
             prefix = uri
-        okhrefs = [(prefix + i).rstrip("/") for i in okhrefs]
-        nohrefs = [(prefix + i).rstrip("/") for i in nohrefs]
-        badhrefs = [(prefix + i).rstrip("/") for i in badhrefs]
+        okhrefs = processHrefSubstitutions(okhrefs, prefix)
+        nohrefs = processHrefSubstitutions(nohrefs, prefix)
+        badhrefs = processHrefSubstitutions(badhrefs, prefix)
         count = [int(eval(i)) for i in count]
         totalcount = [int(eval(i)) for i in totalcount]
         responsecount = [int(eval(i)) for i in responsecount]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20150212/37331bf6/attachment-0001.html>


More information about the calendarserver-changes mailing list