[CalendarServer-changes] [6381] CalDAVTester/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Tue Sep 28 13:29:03 PDT 2010
Revision: 6381
http://trac.macosforge.org/projects/calendarserver/changeset/6381
Author: cdaboo at apple.com
Date: 2010-09-28 13:29:02 -0700 (Tue, 28 Sep 2010)
Log Message:
-----------
Depth:infinity sync tests (missing notification collection right now).
Modified Paths:
--------------
CalDAVTester/trunk/Resource/CalDAV/reports/sync/1.xml
CalDAVTester/trunk/Resource/CardDAV/vreports/sync/1.xml
CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml
CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml
CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
CalDAVTester/trunk/verifiers/xmlElementMatch.py
Modified: CalDAVTester/trunk/Resource/CalDAV/reports/sync/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/reports/sync/1.xml 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/Resource/CalDAV/reports/sync/1.xml 2010-09-28 20:29:02 UTC (rev 6381)
@@ -2,5 +2,6 @@
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:supported-report-set/>
+<D:sync-token/>
</D:prop>
</D:propfind>
Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sync/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sync/1.xml 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sync/1.xml 2010-09-28 20:29:02 UTC (rev 6381)
@@ -2,5 +2,6 @@
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:supported-report-set/>
+<D:sync-token/>
</D:prop>
</D:propfind>
Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-notification-sync.xml 2010-09-28 20:29:02 UTC (rev 6381)
@@ -88,6 +88,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$notificationpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/sharing/notification-sync/2.xml</filepath>
@@ -110,6 +114,10 @@
<request user="$userid2:" pswd="$pswd2:" print-response='no'>
<method>REPORT</method>
<ruri>$notificationpath2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/sharing/notification-sync/2.xml</filepath>
@@ -153,6 +161,10 @@
<request user="$userid2:" pswd="$pswd2:" print-response='no'>
<method>REPORT</method>
<ruri>$notificationpath2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/sharing/notification-sync/4.xml</filepath>
@@ -186,6 +198,10 @@
<request user="$userid2:" pswd="$pswd2:" print-response='no'>
<method>REPORT</method>
<ruri>$notificationpath2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/sharing/notification-sync/4.xml</filepath>
Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml 2010-09-28 20:29:02 UTC (rev 6381)
@@ -67,11 +67,44 @@
</request>
</start>
- <test-suite name='support-report-set' ignore='no'>
+ <test-suite name='support-report-set/sync-token property' ignore='no'>
<test name='1' ignore='no'>
- <description>Not on calendar-home</description>
- <request>
+ <description>Not on calendars</description>
+ <request print-response='no'>
<method>PROPFIND</method>
+ <ruri>$calendars:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>notexists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ </arg>
+ <arg>
+ <name>badprops</name>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>On calendar-home</description>
+ <request print-response='no'>
+ <method>PROPFIND</method>
<ruri>$pathprefix1:/</ruri>
<header>
<name>Depth</name>
@@ -82,15 +115,23 @@
<filepath>Resource/CalDAV/reports/sync/1.xml</filepath>
</data>
<verify>
- <callback>propfindValues</callback>
+ <callback>xmlElementMatch</callback>
<arg>
- <name>props</name>
- <value>{DAV:}supported-report-set!.*sync-collection.*</value>
+ <name>exists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
</arg>
</verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
</request>
</test>
- <test name='2' ignore='no'>
+ <test name='3' ignore='no'>
<description>On calendar</description>
<request>
<method>PROPFIND</method>
@@ -104,15 +145,23 @@
<filepath>Resource/CalDAV/reports/sync/1.xml</filepath>
</data>
<verify>
- <callback>propfindValues</callback>
+ <callback>xmlElementMatch</callback>
<arg>
- <name>props</name>
- <value>{DAV:}supported-report-set$.*sync-collection.*</value>
+ <name>exists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
</arg>
</verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
</request>
</test>
- <test name='3' ignore='no'>
+ <test name='4' ignore='no'>
<description>On inbox</description>
<request>
<method>PROPFIND</method>
@@ -126,22 +175,34 @@
<filepath>Resource/CalDAV/reports/sync/1.xml</filepath>
</data>
<verify>
- <callback>propfindValues</callback>
+ <callback>xmlElementMatch</callback>
<arg>
- <name>props</name>
- <value>{DAV:}supported-report-set$.*sync-collection.*</value>
+ <name>exists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
</arg>
</verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
</request>
</test>
</test-suite>
<test-suite name='simple reports - empty token - no props' ignore='no'>
<test name='1' ignore='no'>
- <description>initial query</description>
+ <description>initial query - calenar collection depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
@@ -157,7 +218,61 @@
</request>
</test>
<test name='2' ignore='no'>
- <description>new resource</description>
+ <description>initial query - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</value>
+ <value>synccalendar1/</value>
+ <value>synccalendar2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>initial query - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </verify>
+ </request>
+ </test>
+ <test name='4' ignore='no'>
+ <description>add new resource</description>
<request>
<method>PUT</method>
<ruri>$pathprefix1:/synccalendar1/3.ics</ruri>
@@ -169,9 +284,16 @@
<callback>statusCode</callback>
</verify>
</request>
+ </test>
+ <test name='5' ignore='no'>
+ <description>new resource - calendar collection depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
@@ -187,8 +309,63 @@
</verify>
</request>
</test>
- <test name='3' ignore='no'>
- <description>remove resource new resource</description>
+ <test name='6' ignore='no'>
+ <description>new resource - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</value>
+ <value>synccalendar1/</value>
+ <value>synccalendar2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7' ignore='no'>
+ <description>new resource - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </verify>
+ </request>
+ </test>
+ <test name='8' ignore='no'>
+ <description>remove new resource</description>
<request>
<method>DELETE</method>
<ruri>$pathprefix1:/synccalendar1/3.ics</ruri>
@@ -196,9 +373,16 @@
<callback>statusCode</callback>
</verify>
</request>
+ </test>
+ <test name='9' ignore='no'>
+ <description>remove new resource - calendar collection depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
@@ -213,7 +397,61 @@
</verify>
</request>
</test>
- <test name='4' ignore='no'>
+ <test name='10' ignore='no'>
+ <description>remove new resource - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</value>
+ <value>synccalendar1/</value>
+ <value>synccalendar2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11' ignore='no'>
+ <description>remove new resource - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </verify>
+ </request>
+ </test>
+ <test name='12' ignore='no'>
<description>changed resource</description>
<request>
<method>PUT</method>
@@ -226,9 +464,16 @@
<callback>statusCode</callback>
</verify>
</request>
+ </test>
+ <test name='13' ignore='no'>
+ <description>changed resource - calendar collection depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
@@ -243,14 +488,72 @@
</verify>
</request>
</test>
+ <test name='14' ignore='no'>
+ <description>changed resource - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</value>
+ <value>synccalendar1/</value>
+ <value>synccalendar2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='15' ignore='no'>
+ <description>changed resource - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </verify>
+ </request>
+ </test>
</test-suite>
- <test-suite name='simple reports - diff token - no props' ignore='no'>
+ <test-suite name='simple reports - diff token - no props - calendar depth:1' ignore='no'>
<test name='1' ignore='no'>
<description>initial query - grab token</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
@@ -285,6 +588,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</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/3.xml</filepath>
@@ -314,6 +621,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</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/3.xml</filepath>
@@ -332,6 +643,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</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/4.xml</filepath>
@@ -365,6 +680,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/3.xml</filepath>
@@ -387,6 +706,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar1/</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/3.xml</filepath>
@@ -408,6 +731,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
@@ -446,6 +773,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
@@ -481,6 +812,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
@@ -519,6 +854,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
@@ -549,6 +888,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
@@ -591,6 +934,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</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/6.xml</filepath>
@@ -628,6 +975,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</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/6.xml</filepath>
@@ -646,6 +997,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</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/7.xml</filepath>
@@ -682,6 +1037,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/6.xml</filepath>
@@ -712,6 +1071,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$pathprefix1:/synccalendar2/</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/6.xml</filepath>
@@ -735,12 +1098,639 @@
</test>
</test-suite>
+ <test-suite name='simple reports - diff token - no props - home depth:infinity' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>Initialize</description>
+ <request print-response='no'>
+ <method>DELETE</method>
+ <ruri>$pathprefix1:/synccalendar1/</ruri>
+ </request>
+ <request print-response='no'>
+ <method>DELETE</method>
+ <ruri>$pathprefix1:/synccalendar2/</ruri>
+ </request>
+ <request end-delete="yes">
+ <method>MKCALENDAR</method>
+ <ruri>$pathprefix1:/synccalendar3/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$pathprefix1:/synccalendar3/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/1.txt</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$pathprefix1:/synccalendar3/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/2.txt</filepath>
+ </data>
+ </request>
+ <request end-delete="yes">
+ <method>MKCALENDAR</method>
+ <ruri>$pathprefix1:/synccalendar4/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$pathprefix1:/synccalendar4/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/1.txt</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$pathprefix1:/synccalendar4/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/2.txt</filepath>
+ </data>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </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>$pathprefix1:/synccalendar3/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/3.txt</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <value>synccalendar3/3.ics</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>$pathprefix1:/synccalendar3/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <arg>
+ <name>badhrefs</name>
+ <value>synccalendar3/3.ics</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>$pathprefix1:/</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/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>synccalendar3/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>synccalendar3/3.ics</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>$pathprefix1:/synccalendar3/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/1.txt</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <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>
+ <value>synccalendar3/1.ics</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>$pathprefix1:/</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>
+ </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:infinity' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </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='2' ignore='no'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$pathprefix1:/synccalendar4/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/3.txt</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>synccalendar4/</value>
+ <value>synccalendar4/3.ics</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>$pathprefix1:/synccalendar4/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>synccalendar4/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>synccalendar4/3.ics</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>$pathprefix1:/</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/7.xml</filepath>
+ </data>
+ <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>ignore</name>
+ <value>$pathprefix1:/synccalendar4/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>ignore</name>
+ <value>$pathprefix1:/synccalendar4/3.ics</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='5' ignore='no'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$pathprefix1:/synccalendar4/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/put/1.txt</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>synccalendar4/</value>
+ <value>synccalendar4/1.ics</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>$pathprefix1:/</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/6.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:infinity' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$inbox:/</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>
+ </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>$pathprefix1:/synccalendar3/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>DELETE</method>
+ <ruri>$pathprefix1:/synccalendar3/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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>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>$pathprefix1:/synccalendar3/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$pathprefix1:/</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/4.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>$pathprefix1:/</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>
+ </request>
+ </test>
+ </test-suite>
+
<test-suite name='simple reports - empty inbox' ignore='no'>
<test name='1' ignore='no'>
<description>initial query</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$inboxpath1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CalDAV/reports/sync/2.xml</filepath>
Modified: CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml 2010-09-28 20:29:02 UTC (rev 6381)
@@ -59,6 +59,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/$global_addressbook:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/global-addressbook/1.xml</filepath>
@@ -80,6 +84,10 @@
<request user="$userid2:" pswd="$pswd2:" print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome2:/$global_addressbook:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/global-addressbook/1.xml</filepath>
@@ -115,6 +123,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/$global_addressbook:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/global-addressbook/3.xml</filepath>
@@ -137,6 +149,10 @@
<request user="$userid2:" pswd="$pswd2:" print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome2:/$global_addressbook:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/global-addressbook/4.xml</filepath>
@@ -173,6 +189,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/$global_addressbook:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/global-addressbook/6.xml</filepath>
@@ -195,6 +215,10 @@
<request user="$userid2:" pswd="$pswd2:" print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome2:/$global_addressbook:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/global-addressbook/7.xml</filepath>
Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml 2010-09-28 20:29:02 UTC (rev 6381)
@@ -77,10 +77,10 @@
<test-suite name='support-report-set' ignore='no'>
<test name='1' ignore='no'>
- <description>Not on calendar-home</description>
+ <description>Not on addressbooks</description>
<request>
<method>PROPFIND</method>
- <ruri>$addressbookhome1:/</ruri>
+ <ruri>$addressbooks:/</ruri>
<header>
<name>Depth</name>
<value>0</value>
@@ -90,18 +90,59 @@
<filepath>Resource/CardDAV/vreports/sync/1.xml</filepath>
</data>
<verify>
- <callback>propfindValues</callback>
+ <callback>xmlElementMatch</callback>
<arg>
- <name>props</name>
- <value>{DAV:}supported-report-set!.*sync-collection.*</value>
+ <name>notexists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
</arg>
</verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ </arg>
+ <arg>
+ <name>badprops</name>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
</request>
</test>
<test name='2' ignore='no'>
- <description>On calendar</description>
+ <description>On addressbook-home</description>
<request>
<method>PROPFIND</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>On addressbook</description>
+ <request>
+ <method>PROPFIND</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
<header>
<name>Depth</name>
@@ -112,22 +153,34 @@
<filepath>Resource/CardDAV/vreports/sync/1.xml</filepath>
</data>
<verify>
- <callback>propfindValues</callback>
+ <callback>xmlElementMatch</callback>
<arg>
- <name>props</name>
- <value>{DAV:}supported-report-set$.*sync-collection.*</value>
+ <name>exists</name>
+ <value>$verify-property-prefix:/{DAV:}supported-report-set/{DAV:}supported-report/{DAV:}report/{DAV:}sync-collection</value>
</arg>
</verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}supported-report-set</value>
+ <value>{DAV:}sync-token</value>
+ </arg>
+ </verify>
</request>
</test>
</test-suite>
<test-suite name='simple reports - empty token - no props' ignore='no'>
<test name='1' ignore='no'>
- <description>initial query</description>
+ <description>initial query - addressbook depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
@@ -143,7 +196,59 @@
</request>
</test>
<test name='2' ignore='no'>
- <description>new resource</description>
+ <description>initial query - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>initial query - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook1/1.vcf</value>
+ <value>syncaddressbook1/2.vcf</value>
+ <value>syncaddressbook2/</value>
+ <value>syncaddressbook2/1.vcf</value>
+ <value>syncaddressbook2/2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4' ignore='no'>
+ <description>add new resource</description>
<request>
<method>PUT</method>
<ruri>$addressbookhome1:/syncaddressbook1/3.vcf</ruri>
@@ -155,9 +260,16 @@
<callback>statusCode</callback>
</verify>
</request>
+ </test>
+ <test name='5' ignore='no'>
+ <description>new resource - addressbook depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
@@ -173,8 +285,61 @@
</verify>
</request>
</test>
- <test name='3' ignore='no'>
- <description>remove resource new resource</description>
+ <test name='6' ignore='no'>
+ <description>new resource - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7' ignore='no'>
+ <description>new resource - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook1/1.vcf</value>
+ <value>syncaddressbook1/2.vcf</value>
+ <value>syncaddressbook1/3.vcf</value>
+ <value>syncaddressbook2/</value>
+ <value>syncaddressbook2/1.vcf</value>
+ <value>syncaddressbook2/2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8' ignore='no'>
+ <description>remove new resource</description>
<request>
<method>DELETE</method>
<ruri>$addressbookhome1:/syncaddressbook1/3.vcf</ruri>
@@ -182,9 +347,16 @@
<callback>statusCode</callback>
</verify>
</request>
+ </test>
+ <test name='9' ignore='no'>
+ <description>remove new resource - addressbook depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
@@ -199,7 +371,59 @@
</verify>
</request>
</test>
- <test name='4' ignore='no'>
+ <test name='10' ignore='no'>
+ <description>remove new resource - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11' ignore='no'>
+ <description>remove new resource - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook1/1.vcf</value>
+ <value>syncaddressbook1/2.vcf</value>
+ <value>syncaddressbook2/</value>
+ <value>syncaddressbook2/1.vcf</value>
+ <value>syncaddressbook2/2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='12' ignore='no'>
<description>changed resource</description>
<request>
<method>PUT</method>
@@ -212,9 +436,16 @@
<callback>statusCode</callback>
</verify>
</request>
+ </test>
+ <test name='13' ignore='no'>
+ <description>changed resource - addressbook depth:1</description>
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
@@ -229,6 +460,58 @@
</verify>
</request>
</test>
+ <test name='14' ignore='no'>
+ <description>changed resource - home depth:1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook2/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='15' ignore='no'>
+ <description>changed resource - home depth:infinity</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook1/</value>
+ <value>syncaddressbook1/1.vcf</value>
+ <value>syncaddressbook1/2.vcf</value>
+ <value>syncaddressbook2/</value>
+ <value>syncaddressbook2/1.vcf</value>
+ <value>syncaddressbook2/2.vcf</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
</test-suite>
<test-suite name='simple reports - diff token - no props' ignore='no'>
@@ -237,6 +520,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
@@ -271,6 +558,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
@@ -300,6 +591,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
@@ -318,6 +613,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/4.xml</filepath>
@@ -351,6 +650,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
@@ -373,6 +676,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
@@ -394,6 +701,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
@@ -432,6 +743,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
@@ -467,6 +782,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
@@ -505,6 +824,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
@@ -535,6 +858,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
@@ -577,6 +904,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
@@ -614,6 +945,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
@@ -632,6 +967,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/7.xml</filepath>
@@ -668,6 +1007,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
@@ -698,6 +1041,10 @@
<request print-response='no'>
<method>REPORT</method>
<ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
<data substitutions='yes'>
<content-type>text/xml; charset=utf-8</content-type>
<filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
@@ -721,6 +1068,658 @@
</test>
</test-suite>
+ <test-suite name='simple reports - diff token - no props - home depth:infinity' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>Initialize</description>
+ <request print-response='no'>
+ <method>DELETE</method>
+ <ruri>$addressbookhome1:/syncaddressbook1/</ruri>
+ </request>
+ <request print-response='no'>
+ <method>DELETE</method>
+ <ruri>$addressbookhome1:/syncaddressbook2/</ruri>
+ </request>
+ <request end-delete="yes">
+ <method>MKCOL</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/MKCOL/addressbook.xml</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/2.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/2.vcf</filepath>
+ </data>
+ </request>
+ <request end-delete="yes">
+ <method>MKCOL</method>
+ <ruri>$addressbookhome1:/syncaddressbook4/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/MKCOL/addressbook.xml</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookhome1:/syncaddressbook4/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookhome1:/syncaddressbook4/2.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/2.vcf</filepath>
+ </data>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/1.vcf</value>
+ <value>syncaddressbook3/2.vcf</value>
+ <value>syncaddressbook4/</value>
+ <value>syncaddressbook4/1.vcf</value>
+ <value>syncaddressbook4/2.vcf</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>$addressbookhome1:/syncaddressbook3/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/3.vcf</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>$addressbookhome1:/syncaddressbook3/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>syncaddressbook3/3.vcf</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>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ <arg>
+ <name>badhrefs</name>
+ <value>syncaddressbook3/3.vcf</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>$addressbookhome1:/syncaddressbook3/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/1.vcf</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>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.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:infinity' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/1.vcf</value>
+ <value>syncaddressbook3/2.vcf</value>
+ <value>syncaddressbook4/</value>
+ <value>syncaddressbook4/1.vcf</value>
+ <value>syncaddressbook4/2.vcf</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='2' ignore='no'>
+ <description>new resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookhome1:/syncaddressbook4/3.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/3.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook4/</value>
+ <value>syncaddressbook4/3.vcf</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>$addressbookhome1:/syncaddressbook4/3.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <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>ignore</name>
+ <value>$addressbookhome1:/syncaddressbook4/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>ignore</name>
+ <value>$addressbookhome1:/syncaddressbook4/3.vcf</value>
+ </arg>
+ <arg>
+ <name>okprops</name>
+ <value>{DAV:}getcontenttype</value>
+ <value>{DAV:}getetag</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>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/7.xml</filepath>
+ </data>
+ <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>ignore</name>
+ <value>$addressbookhome1:/syncaddressbook4/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>ignore</name>
+ <value>$addressbookhome1:/syncaddressbook4/3.vcf</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='5' ignore='no'>
+ <description>changed resource</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/1.vcf</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/put/1.vcf</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/1.vcf</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>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/6.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 addressbook - home depth:infinity' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$addressbook:/</value>
+ <value>syncaddressbook3/</value>
+ <value>syncaddressbook3/1.vcf</value>
+ <value>syncaddressbook3/2.vcf</value>
+ <value>syncaddressbook4/</value>
+ <value>syncaddressbook4/1.vcf</value>
+ <value>syncaddressbook4/2.vcf</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 addressbook</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/1.vcf</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>DELETE</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>badhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>add addressbook - test last sync</description>
+ <request end-delete="yes">
+ <method>MKCOL</method>
+ <ruri>$addressbookhome1:/syncaddressbook3/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/MKCOL/addressbook.xml</filepath>
+ </data>
+ </request>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4' ignore='no'>
+ <description>add addressbook - test previous sync</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$addressbookhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CardDAV/vreports/sync/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>syncaddressbook3/</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ </test-suite>
+
<end/>
</caldavtest>
Modified: CalDAVTester/trunk/verifiers/xmlElementMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/xmlElementMatch.py 2010-09-28 17:41:03 UTC (rev 6380)
+++ CalDAVTester/trunk/verifiers/xmlElementMatch.py 2010-09-28 20:29:02 UTC (rev 6381)
@@ -109,8 +109,8 @@
for path in notexists:
- if tree.find(path) is not None:
- resulttxt += " Items returned in XML for %s: %s\n" % (path,)
+ if tree.findall(path):
+ resulttxt += " Items returned in XML for %s\n" % (path,)
result = False
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100928/4dd8da62/attachment-0001.html>
More information about the calendarserver-changes
mailing list