[CalendarServer-changes] [9263] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue May 22 12:19:50 PDT 2012


Revision: 9263
          http://trac.macosforge.org/projects/calendarserver/changeset/9263
Author:   cdaboo at apple.com
Date:     2012-05-22 12:19:49 -0700 (Tue, 22 May 2012)
Log Message:
-----------
Tests for Prefer header support.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/scripts/server/sslserverinfo.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml
    CalDAVTester/trunk/verifiers/addressDataMatch.py
    CalDAVTester/trunk/verifiers/calendarDataMatch.py
    CalDAVTester/trunk/verifiers/dataString.py

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/prefer/
    CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/
    CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/1.xml
    CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/2.xml
    CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/3.xml
    CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/4.xml
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/1.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/10.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/11.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/12.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/13.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/14.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/2.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/3.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/4.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/5.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/6.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/7.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/8.ics
    CalDAVTester/trunk/Resource/CalDAV/prefer/return/9.ics
    CalDAVTester/trunk/scripts/tests/CalDAV/prefer.xml

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/1.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/1.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:resourcetype/>
+<D:bogus/>
+</D:prop>
+</D:propfind>

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/2.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/2.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<C:calendar-multiget xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:prop>
+<D:resourcetype/>
+<D:bogus/>
+</D:prop>
+<D:href>$calendarpath1:/1.ics</D:href>
+</C:calendar-multiget>

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/3.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/3.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:prop>
+<D:resourcetype/>
+<D:bogus/>
+</D:prop>
+<C:filter>
+<C:comp-filter name="VCALENDAR">
+<C:comp-filter name="VEVENT">
+<C:time-range start="20060101T000000Z" end="20060102T000000Z"/>
+</C:comp-filter>
+</C:comp-filter>
+</C:filter>
+</C:calendar-query>

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/4.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/minimal/4.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:details>My Name</D:details>
+<D:details2>My Name 2</D:details2>
+</D:prop>
+</D:set>
+</D:propertyupdate>

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/1.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/10.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/10.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/10.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,36 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060108T120000
+DURATION:PT1H
+SUMMARY:event 8
+UID:8 at ninevah.local
+CATEGORIES:cool
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=DECLINED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/11.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/11.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/11.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060108T120000
+DURATION:PT1H
+SUMMARY:event 8
+UID:8 at ninevah.local
+CATEGORIES:cool
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=DECLINED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+SEQUENCE:1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/12.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/12.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/12.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060112T100000
+DURATION:PT1H
+SUMMARY:event 12
+UID:12 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/13.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/13.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/13.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060113T100000
+DURATION:PT1H
+SUMMARY:event 13
+UID:13 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/14.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/14.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/14.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060114T100000
+DURATION:PT1H
+SUMMARY:event 14
+UID:14 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/2.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060102T100000
+DURATION:PT1H
+SUMMARY:event 2
+UID:2 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/3.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060103T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:3 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/4.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060104T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:4 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/5.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060105T100000
+DURATION:PT1H
+SUMMARY:event 4.1
+UID:4 at ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/6.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/6.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060106T100000
+DURATION:PT1H
+SUMMARY:event 6
+UID:6 at ninevah.local
+CATEGORIES:cool
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/7.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060107T100000
+DURATION:PT1H
+SUMMARY:event 7
+UID:7 at ninevah.local
+CATEGORIES:cool
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/8.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/8.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060108T100000
+DURATION:PT1H
+SUMMARY:event 8
+UID:8 at ninevah.local
+CATEGORIES:cool
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/prefer/return/9.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/prefer/return/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/prefer/return/9.ics	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060108T100000
+DURATION:PT1H
+SUMMARY:event 8
+UID:8 at ninevah.local
+CATEGORIES:cool
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Modified: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -3,7 +3,7 @@
 <!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
 
 <!--
- Copyright (c) 2006-2011 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2012 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.
@@ -46,6 +46,10 @@
 		<feature>expand-property</feature>				<!-- Expand property REPORT -->
 		<feature>only-proxy-groups</feature>			<!-- Group-membership only includes delegated-to groups -->
 		<feature>limits</feature>						<!-- max-collections and max-resources limits -->
+		<feature>prefer</feature>						<!-- Prefer header overall support -->
+		<feature>prefer-minimal</feature>				<!-- Prefer header return-minimal -->
+		<feature>prefer-representation</feature>		<!-- Prefer header return-representation -->
+		<feature>prefer-noroot</feature>				<!-- Prefer header depth-noroot -->
 		<feature>quota</feature>						<!-- WebDAV QUOTA -->
 		<!-- <feature>quota-on-resources</feature> -->	<!-- WebDAV QUOTA on calendar and address book object resources -->
 		<feature>resource-id</feature>					<!-- WebDAV BIND DAV:resource-id property -->
@@ -306,6 +310,12 @@
 			<value>global-addressbook</value>
 		</substitution>
 
+		<!-- POST add-member URI suffix -->
+		<substitution>
+			<key>$add-member:</key>
+			<value>;add-member</value>
+		</substitution>
+
 		<!-- user id for admin user -->
 		<substitution>
 			<key>$useradmin:</key>
@@ -423,42 +433,42 @@
 			<!-- relative path to user calendar-->
 			<substitution>
 				<key>$calendarpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$calendar:</value>
+				<value>$calendarhome%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user alternate calendar-->
 			<substitution>
 				<key>$calendarpathalt%d:</key>
-				<value>$calendars_users:$userid%d:/$calendar:</value>
+				<value>$calendarhomealt%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user tasks calendar-->
 			<substitution>
 				<key>$taskspath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$tasks:</value>
+				<value>$calendarhome%d:/$tasks:</value>
 			</substitution>
 			<!-- relative path to user inbox-->
 			<substitution>
 				<key>$inboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$inbox:</value>
+				<value>$calendarhome%d:/$inbox:</value>
 			</substitution>
 			<!-- relative path to user outbox-->
 			<substitution>
 				<key>$outboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$outbox:</value>
+				<value>$calendarhome%d:/$outbox:</value>
 			</substitution>
 			<!-- relative path to user dropbox-->
 			<substitution>
 				<key>$dropboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$dropbox:</value>
+				<value>$calendarhome%d:/$dropbox:</value>
 			</substitution>
 			<!-- relative path to user notification-->
 			<substitution>
 				<key>$notificationpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$notification:</value>
+				<value>$calendarhome%d:/$notification:</value>
 			</substitution>
 			<!-- relative path to user freebusy-->
 			<substitution>
 				<key>$freebusypath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$freebusy:</value>
+				<value>$calendarhome%d:/$freebusy:</value>
 			</substitution>
 			<substitution>
 				<key>$email%d:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -3,7 +3,7 @@
 <!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
 
 <!--
- Copyright (c) 2006-2011 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2012 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.
@@ -46,6 +46,10 @@
 		<feature>expand-property</feature>				<!-- Expand property REPORT -->
 		<feature>only-proxy-groups</feature>			<!-- Group-membership only includes delegated-to groups -->
 		<feature>limits</feature>						<!-- max-collections and max-resources limits -->
+		<feature>prefer</feature>						<!-- Prefer header overall support -->
+		<feature>prefer-minimal</feature>				<!-- Prefer header return-minimal -->
+		<feature>prefer-representation</feature>		<!-- Prefer header return-representation -->
+		<feature>prefer-noroot</feature>				<!-- Prefer header depth-noroot -->
 		<feature>quota</feature>						<!-- WebDAV QUOTA -->
 		<!-- <feature>quota-on-resources</feature> -->	<!-- WebDAV QUOTA on calendar and address book object resources -->
 		<feature>resource-id</feature>					<!-- WebDAV BIND DAV:resource-id property -->
@@ -306,6 +310,12 @@
 			<value>global-addressbook</value>
 		</substitution>
 
+		<!-- POST add-member URI suffix -->
+		<substitution>
+			<key>$add-member:</key>
+			<value>;add-member</value>
+		</substitution>
+
 		<!-- user id for admin user -->
 		<substitution>
 			<key>$useradmin:</key>
@@ -432,42 +442,42 @@
 			<!-- relative path to user calendar-->
 			<substitution>
 				<key>$calendarpath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$calendar:</value>
+				<value>$calendarhome%%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user alternate calendar home-->
 			<substitution>
 				<key>$calendarpathalt%%d:</key>
-				<value>$calendars_users:$userid%%d:/$calendar:</value>
+				<value>$calendarhomealt%%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user tasks calendar-->
 			<substitution>
 				<key>$taskspath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$tasks:</value>
+				<value>$calendarhome%%d:/$tasks:</value>
 			</substitution>
 			<!-- relative path to user inbox-->
 			<substitution>
 				<key>$inboxpath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$inbox:</value>
+				<value>$calendarhome%%d:/$inbox:</value>
 			</substitution>
 			<!-- relative path to user outbox-->
 			<substitution>
 				<key>$outboxpath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$outbox:</value>
+				<value>$calendarhome%%d:/$outbox:</value>
 			</substitution>
 			<!-- relative path to user dropbox-->
 			<substitution>
 				<key>$dropboxpath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$dropbox:</value>
+				<value>$calendarhome%%d:/$dropbox:</value>
 			</substitution>
 			<!-- relative path to user notification-->
 			<substitution>
 				<key>$notificationpath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$notification:</value>
+				<value>$calendarhome%%d:/$notification:</value>
 			</substitution>
 			<!-- relative path to user freebusy-->
 			<substitution>
 				<key>$freebusypath%%d:</key>
-				<value>$calendars_uids:$userguid%%d:/$freebusy:</value>
+				<value>$calendarhome%%d:/$freebusy:</value>
 			</substitution>
 			<substitution>
 				<key>$email%%d:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -3,7 +3,7 @@
 <!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
 
 <!--
- Copyright (c) 2006-2011 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2012 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.
@@ -46,6 +46,10 @@
 		<feature>expand-property</feature>				<!-- Expand property REPORT -->
 		<feature>only-proxy-groups</feature>			<!-- Group-membership only includes delegated-to groups -->
 		<feature>limits</feature>						<!-- max-collections and max-resources limits -->
+		<feature>prefer</feature>						<!-- Prefer header overall support -->
+		<feature>prefer-minimal</feature>				<!-- Prefer header return-minimal -->
+		<feature>prefer-representation</feature>		<!-- Prefer header return-representation -->
+		<feature>prefer-noroot</feature>				<!-- Prefer header depth-noroot -->
 		<feature>quota</feature>						<!-- WebDAV QUOTA -->
 		<!-- <feature>quota-on-resources</feature> -->	<!-- WebDAV QUOTA on calendar and address book object resources -->
 		<feature>resource-id</feature>					<!-- WebDAV BIND DAV:resource-id property -->
@@ -306,6 +310,12 @@
 			<value>global-addressbook</value>
 		</substitution>
 
+		<!-- POST add-member URI suffix -->
+		<substitution>
+			<key>$add-member:</key>
+			<value>;add-member</value>
+		</substitution>
+
 		<!-- user id for admin user -->
 		<substitution>
 			<key>$useradmin:</key>
@@ -433,42 +443,42 @@
 			<!-- relative path to user calendar-->
 			<substitution>
 				<key>$calendarpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$calendar:</value>
+				<value>$calendarhome%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user alternate calendar-->
 			<substitution>
 				<key>$calendarpathalt%d:</key>
-				<value>$calendars_users:$userid%d:/$calendar:</value>
+				<value>$calendarhomealt%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user tasks calendar-->
 			<substitution>
 				<key>$taskspath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$tasks:</value>
+				<value>$calendarhome%d:/$tasks:</value>
 			</substitution>
 			<!-- relative path to user inbox-->
 			<substitution>
 				<key>$inboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$inbox:</value>
+				<value>$calendarhome%d:/$inbox:</value>
 			</substitution>
 			<!-- relative path to user outbox-->
 			<substitution>
 				<key>$outboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$outbox:</value>
+				<value>$calendarhome%d:/$outbox:</value>
 			</substitution>
 			<!-- relative path to user dropbox-->
 			<substitution>
 				<key>$dropboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$dropbox:</value>
+				<value>$calendarhome%d:/$dropbox:</value>
 			</substitution>
 			<!-- relative path to user notification-->
 			<substitution>
 				<key>$notificationpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$notification:</value>
+				<value>$calendarhome%d:/$notification:</value>
 			</substitution>
 			<!-- relative path to user freebusy-->
 			<substitution>
 				<key>$freebusypath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$freebusy:</value>
+				<value>$calendarhome%d:/$freebusy:</value>
 			</substitution>
 			<substitution>
 				<key>$email%d:</key>

Modified: CalDAVTester/trunk/scripts/server/sslserverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/sslserverinfo.xml	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/scripts/server/sslserverinfo.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -3,7 +3,7 @@
 <!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
 
 <!--
- Copyright (c) 2006-2011 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2012 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.
@@ -47,6 +47,10 @@
 		<feature>expand-property</feature>				<!-- Expand property REPORT -->
 		<feature>only-proxy-groups</feature>			<!-- Group-membership only includes delegated-to groups -->
 		<feature>limits</feature>						<!-- max-collections and max-resources limits -->
+		<feature>prefer</feature>						<!-- Prefer header overall support -->
+		<feature>prefer-minimal</feature>				<!-- Prefer header return-minimal -->
+		<feature>prefer-representation</feature>		<!-- Prefer header return-representation -->
+		<feature>prefer-noroot</feature>				<!-- Prefer header depth-noroot -->
 		<feature>quota</feature>						<!-- WebDAV QUOTA -->
 		<!-- <feature>quota-on-resources</feature> -->	<!-- WebDAV QUOTA on calendar and address book object resources -->
 		<feature>resource-id</feature>					<!-- WebDAV BIND DAV:resource-id property -->
@@ -307,6 +311,12 @@
 			<value>global-addressbook</value>
 		</substitution>
 
+		<!-- POST add-member URI suffix -->
+		<substitution>
+			<key>$add-member:</key>
+			<value>;add-member</value>
+		</substitution>
+
 		<!-- user id for admin user -->
 		<substitution>
 			<key>$useradmin:</key>
@@ -414,7 +424,7 @@
 			<!-- relative path to user calendar home-->
 			<substitution>
 				<key>$calendarhome%d:</key>
-				<value>$calendars_uids:$userguid%d:</value>
+				<value>$calendarhome%d:</value>
 			</substitution>
 			<!-- relative path to user alternate calendar home-->
 			<substitution>
@@ -424,42 +434,42 @@
 			<!-- relative path to user calendar-->
 			<substitution>
 				<key>$calendarpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$calendar:</value>
+				<value>$calendarhome%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user alternate calendar-->
 			<substitution>
 				<key>$calendarpathalt%d:</key>
-				<value>$calendars_users:$userid%d:/$calendar:</value>
+				<value>$calendarhomealt%d:/$calendar:</value>
 			</substitution>
 			<!-- relative path to user tasks calendar-->
 			<substitution>
 				<key>$taskspath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$tasks:</value>
+				<value>$calendarhome%d:/$tasks:</value>
 			</substitution>
 			<!-- relative path to user inbox-->
 			<substitution>
 				<key>$inboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$inbox:</value>
+				<value>$calendarhome%d:/$inbox:</value>
 			</substitution>
 			<!-- relative path to user outbox-->
 			<substitution>
 				<key>$outboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$outbox:</value>
+				<value>$calendarhome%d:/$outbox:</value>
 			</substitution>
 			<!-- relative path to user dropbox-->
 			<substitution>
 				<key>$dropboxpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$dropbox:</value>
+				<value>$calendarhome%d:/$dropbox:</value>
 			</substitution>
 			<!-- relative path to user notification-->
 			<substitution>
 				<key>$notificationpath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$notification:</value>
+				<value>$calendarhome%d:/$notification:</value>
 			</substitution>
 			<!-- relative path to user freebusy-->
 			<substitution>
 				<key>$freebusypath%d:</key>
-				<value>$calendars_uids:$userguid%d:/$freebusy:</value>
+				<value>$calendarhome%d:/$freebusy:</value>
 			</substitution>
 			<substitution>
 				<key>$email%d:</key>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -3,7 +3,7 @@
 <!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
 
 <!--
- Copyright (c) 2006-2010 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2012 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.
@@ -46,7 +46,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[{DAV:}add-member$<href xmlns="DAV:">$calendarpath1:/;add-member</href>]]></value>
+						<value><![CDATA[{DAV:}add-member$<href xmlns="DAV:">$calendarpath1:/$add-member:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -80,7 +80,7 @@
 			<description>POST non-recurring timed event</description>
 			<request print-response='no'>
 				<method>POST</method>
-				<ruri>$calendarpath1:/;add-member</ruri>
+				<ruri>$calendarpath1:/$add-member:</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/recurrenceput/1.txt</filepath>

Added: CalDAVTester/trunk/scripts/tests/CalDAV/prefer.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/prefer.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/prefer.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -0,0 +1,882 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2012 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.
+ -->
+
+<caldavtest>
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>prefer</feature>
+	</require-feature>
+
+	<start>
+		<request user="$userid1:" pswd="$pswd1:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath1:/</ruri>
+			<ruri>$inboxpath1:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath2:/</ruri>
+			<ruri>$inboxpath2:/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$calendarpath1:/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/CalDAV/reports/put/1.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='minimal: propfind'>
+		<require-feature>
+			<feature>prefer-minimal</feature>
+		</require-feature>
+		<test name='1'>
+			<description>PROPFIND depth=0 no Prefer</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>{DAV:}bogus</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND depth=0 with Prefer=x-foo</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>{DAV:}bogus</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPFIND depth=0 with Prefer:return-minimal</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-minimal</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='minimal: multiget'>
+		<require-feature>
+			<feature>prefer-minimal</feature>
+		</require-feature>
+		<test name='1'>
+			<description>REPORT no prefer</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$calendarpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>{DAV:}bogus</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>REPORT with Prefer=x-foo</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>{DAV:}bogus</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>REPORT with Prefer=return-minimal</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-minimal</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='minimal: query'>
+		<require-feature>
+			<feature>prefer-minimal</feature>
+		</require-feature>
+		<test name='1'>
+			<description>REPORT no prefer</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$calendarpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>{DAV:}bogus</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>REPORT with Prefer=x-foo</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>{DAV:}bogus</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>REPORT with Prefer=return-minimal</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-minimal</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}resourcetype</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='minimal: proppatch'>
+		<require-feature>
+			<feature>prefer-minimal</feature>
+		</require-feature>
+		<test name='1'>
+			<description>PROPPATCH no prefer</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<ruri>$calendarpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}details</value>
+						<value>{DAV:}details2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPPATCH with Prefer=x-foo</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>{DAV:}details</value>
+						<value>{DAV:}details2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPPATCH with Prefer:return-minimal</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-minimal</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>200</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='noroot: propfind'>
+		<require-feature>
+			<feature>prefer-noroot</feature>
+		</require-feature>
+		<test name='1'>
+			<description>PROPFIND depth=0 with Prefer</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>depth-noroot</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value></value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND depth=1 with Prefer=x-foo</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value></value>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPFIND depth=1 with Prefer:depth-noroot</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>depth-noroot</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/minimal/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='representation no schedule PUT'>
+		<require-feature>
+			<feature>prefer-representation</feature>
+		</require-feature>
+		<test name='1'>
+			<description>PUT without Prefer</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/2.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>empty</name>
+						<value/>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PUT with Prefer=x-foo</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/3.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>empty</name>
+						<value/>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PUT with Prefer=return-representation</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/4.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>content-location</name>
+						<value>$calendarpath1:/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>PUT with Prefer=return-representation</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>200</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/5.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>content-location</name>
+						<value>$calendarpath1:/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='representation schedule PUT'>
+		<require-feature>
+			<feature>prefer-representation</feature>
+		</require-feature>
+		<test name='1'>
+			<description>PUT without Prefer</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/5.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/6.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>empty</name>
+						<value/>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PUT with Prefer=x-foo</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/6.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>empty</name>
+						<value/>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PUT with Prefer=return-representation</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/7.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/8.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/9.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>content-location</name>
+						<value>$calendarpath1:/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>PUT with Prefer=return-representation</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/7.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/10.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>200</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/11.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>content-location</name>
+						<value>$calendarpath1:/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='representation POST add-member'>
+		<require-feature>
+			<feature>prefer-representation</feature>
+			<feature>add-member</feature>
+		</require-feature>
+		<test name='1'>
+			<description>POST without Prefer</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/$add-member:</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/12.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>!Content-Location</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>empty</name>
+						<value/>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST with Prefer=x-foo</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/$add-member:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>x-foo</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/13.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>!Content-Location</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>empty</name>
+						<value/>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>POST with Prefer=return-representation</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/$add-member:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/prefer/return/14.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/14.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>content-location</name>
+						<value>$calendarpath1:/4.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Content-Location</name>
+					<variable>$content-posted:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Location</name>
+					<variable>$posted:</variable>
+				</grabheader>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$content-posted:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$posted:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/prefer/return/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<request user="$userid1:" pswd="$pswd1:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath1:/</ruri>
+			<ruri>$inboxpath1:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath2:/</ruri>
+			<ruri>$inboxpath2:/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml	2012-05-22 19:19:49 UTC (rev 9263)
@@ -3,7 +3,7 @@
 <!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
 
 <!--
- Copyright (c) 2006-2010 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2012 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.
@@ -46,7 +46,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[{DAV:}add-member$<D:href xmlns:D="DAV:">$addressbookpath1:/;add-member</D:href>]]></value>
+						<value><![CDATA[{DAV:}add-member$<D:href xmlns:D="DAV:">$addressbookpath1:/$add-member:</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -80,7 +80,7 @@
 			<description>POST simple vCard</description>
 			<request print-response='no'>
 				<method>POST</method>
-				<ruri>$addressbookpath1:/;add-member</ruri>
+				<ruri>$addressbookpath1:/$add-member:</ruri>
 				<data>
 					<content-type>text/vcard; charset=utf-8</content-type>
 					<filepath>Resource/CardDAV/vcardput/1.vcf</filepath>
@@ -122,7 +122,7 @@
 			<description>re-POST simple vCard - UID conflict failure</description>
 			<request print-response='no'>
 				<method>POST</method>
-				<ruri>$addressbookpath1:/;add-member</ruri>
+				<ruri>$addressbookpath1:/$add-member:</ruri>
 				<data>
 					<content-type>text/vcard; charset=utf-8</content-type>
 					<filepath>Resource/CardDAV/vcardput/1.vcf</filepath>

Modified: CalDAVTester/trunk/verifiers/addressDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/addressDataMatch.py	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/verifiers/addressDataMatch.py	2012-05-22 19:19:49 UTC (rev 9263)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2012 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.
@@ -33,8 +33,8 @@
         filters.append("PRODID")
         filters.append("REV")
  
-        # status code must be 200, 207
-        if response.status not in (200,207):
+        # status code must be 200, 201, 207
+        if response.status not in (200, 201,207):
             return False, "        HTTP Status Code Wrong: %d" % (response.status,)
         
         # look for response data

Modified: CalDAVTester/trunk/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/calendarDataMatch.py	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/verifiers/calendarDataMatch.py	2012-05-22 19:19:49 UTC (rev 9263)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2012 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.
@@ -39,8 +39,8 @@
         filters.append("CREATED")
         filters.append("LAST-MODIFIED")
  
-        # status code must be 200, 207
-        if response.status not in (200,207):
+        # status code must be 200, 201, 207
+        if response.status not in (200,201,207):
             return False, "        HTTP Status Code Wrong: %d" % (response.status,)
         
         # look for response data

Modified: CalDAVTester/trunk/verifiers/dataString.py
===================================================================
--- CalDAVTester/trunk/verifiers/dataString.py	2012-05-21 22:29:06 UTC (rev 9262)
+++ CalDAVTester/trunk/verifiers/dataString.py	2012-05-22 19:19:49 UTC (rev 9263)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2012 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.
@@ -25,7 +25,15 @@
         contains = args.get("contains", [])
         notcontains = args.get("notcontains", [])
         unwrap = args.get("unwrap")
+        empty = args.get("empty")
         
+        # Test empty
+        if empty:
+            if respdata:
+                return False, "        Response data has a body"
+            else:
+                return True, ""
+                
         # look for response data
         if not respdata:
             return False, "        No response body"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120522/61cf7754/attachment-0001.html>


More information about the calendarserver-changes mailing list