[CalendarServer-changes] [11245] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Fri May 24 13:25:20 PDT 2013


Revision: 11245
          http://trac.calendarserver.org//changeset/11245
Author:   cdaboo at apple.com
Date:     2013-05-24 13:25:20 -0700 (Fri, 24 May 2013)
Log Message:
-----------
Test that a declined instance does not re-appear as accepted when an organizer cancels it.

Modified Paths:
--------------
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstatchange/recur/14.ics
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitrecur2.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-dropbox.xml
    CalDAVTester/trunk/src/caldavtest.py

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/1.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/2.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/3.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/4.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/5.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/6.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/7.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/8.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/9.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/1.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/2.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/3.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/4.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/5.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/6.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/7.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/8.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/9.ics
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/1.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/2.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/3.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml

Modified: CalDAVTester/trunk/Resource/CalDAV/implicit/partstatchange/recur/14.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstatchange/recur/14.ics	2013-05-24 19:51:56 UTC (rev 11244)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstatchange/recur/14.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -39,7 +39,7 @@
 DTSTART;TZID=US/Eastern:$now.year.1:0102T120000
 DURATION:PT1H
 ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;EMAIL=$email2::$cuaddrurn2:
 CREATED:20060101T150000Z
 DTSTAMP:20051222T205953Z
 ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/1.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/2.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+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:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/3.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/4.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,48 @@
+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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:$now.year.1:0102T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+RECURRENCE-ID;TZID=US/Eastern:$now.year.1:0102T100000
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/5.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,48 @@
+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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:$now.year.1:0102T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+RECURRENCE-ID;TZID=US/Eastern:$now.year.1:0102T100000
+ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/6.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/6.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,47 @@
+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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+RECURRENCE-ID;TZID=US/Eastern:$now.year.1:0102T100000
+DTSTART;TZID=US/Eastern:$now.year.1:0102T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/7.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddr2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/8.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/8.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+SEQUENCE:1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/9.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_decline/9.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,51 @@
+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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;SCHEDULE-STATUS=1.2;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+SEQUENCE:1
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:$now.year.1:0102T100000
+DURATION:PT1H
+SUMMARY:event 3
+UID:event3 at ninevah.local
+ORGANIZER;CN=$username1:;SCHEDULE-STATUS=1.2;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2::$cuaddrurn2:
+RECURRENCE-ID;TZID=US/Eastern:$now.year.1:0102T100000
+SEQUENCE:1
+STATUS:CANCELLED
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/1.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/2.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+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:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/3.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/4.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/5.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/6.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/6.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,47 @@
+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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+RECURRENCE-ID;TZID=US/Eastern:$now.year.1:0102T100000
+DTSTART;TZID=US/Eastern:$now.year.1:0102T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/7.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddr2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/8.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/8.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+SEQUENCE:1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/9.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/recur2/attendee_remove/9.ics	2013-05-24 20:25:20 UTC (rev 11245)
@@ -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:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 4
+UID:event4 at ninevah.local
+ORGANIZER;CN=$username1:;SCHEDULE-STATUS=1.2;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+EXDATE;TZID=US/Eastern:$now.year.1:0102T100000
+RRULE:FREQ=DAILY;COUNT=5
+SEQUENCE:1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/1.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/1.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/1.vcf	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,11 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Thompson;Default;;;
+FN:Default Thompson
+EMAIL;type=INTERNET;type=WORK;type=pref:lthompson at example.com
+TEL;type=WORK;type=pref:1-555-555-5555
+TEL;type=CELL:1-555-555-5555
+item1.ADR;type=WORK;type=pref:;;2 Lag;Elk Forest;California;99999;USA
+item1.X-ABADR:us
+UID:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1:ABPerson
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/2.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/2.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/2.vcf	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,12 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Kawado;Saeko;;;
+FN:Snow Leopard
+ORG:Snow Leopard;
+EMAIL;type=INTERNET;type=WORK;type=pref:snowleopard_apple at example.com
+TEL;type=WORK;type=pref:555-555-5555
+item1.ADR;type=WORK;type=pref:;;2 Fidel Ave. Suite 1;Mountain Top;CA;99999;USA
+item1.X-ABADR:us
+X-ABShowAs:COMPANY
+UID:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1:ABPerson
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/3.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/3.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/3.vcf	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,10 @@
+BEGIN:VCARD
+VERSION:3.0
+PRODID:-//Apple Inc.//AddressBook 6.1//EN
+UID:760d9b28-5a13-4880-b7eb-5769e6688fa3
+FN:Shared Group
+N:Shared Group;;;;
+REV:20120503T194243Z
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:8aa9ed15-5619-44d7-b061-51976dd5a174
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml	2013-05-24 20:25:20 UTC (rev 11245)
@@ -0,0 +1,20 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='group'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
+    <invite-noresponse/>
+    <access>
+      <read-write/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$addressbookpath1:/3.vcf</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$principaluri1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>My Shared Calendar</summary>
+  </invite-notification>
+</notification>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitrecur2.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitrecur2.xml	2013-05-24 19:51:56 UTC (rev 11244)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitrecur2.xml	2013-05-24 20:25:20 UTC (rev 11245)
@@ -91,6 +91,10 @@
 					</arg>
 				</verify>
 			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
 		</test>
 		<test name='4'>
 			<description>Attendee has data</description>
@@ -104,41 +108,14 @@
 						<value>Resource/CalDAV/implicit/recur2/invite1/3.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event2:</graburi>
 			</request>
 		</test>
-		<test name='5'>
-			<description>Attendee delete Inbox Items</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$inboxpath2:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>DELETE</method>
-				<ruri>$</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>204</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
 		<test name='6'>
 			<description>Attendee 1 -> Accepted</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$calendarpath2:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>PUT</method>
-				<ruri>$</ruri>
+				<ruri>$event2:</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/implicit/recur2/invite1/4.ics</filepath>
@@ -169,6 +146,10 @@
 					</arg>
 				</verify>
 			</request>
+			<request print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
 		</test>
 		<test name='8'>
 			<description>Organizer data changed</description>
@@ -184,27 +165,6 @@
 				</verify>
 			</request>
 		</test>
-		<test name='9'>
-			<description>Organizer deletes Inbox Item</description>
-			<request print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$inboxpath1:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>204</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
 	</test-suite>
 	
 	<test-suite name='Organizer invites other Attendee to one instance only' ignore='no'>
@@ -257,6 +217,10 @@
 					</arg>
 				</verify>
 			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
 		</test>
 		<test name='4'>
 			<description>Attendee has data</description>
@@ -270,29 +234,9 @@
 						<value>Resource/CalDAV/implicit/recur2/invite2/3.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event2:</graburi>
 			</request>
 		</test>
-		<test name='5'>
-			<description>Attendee delete Inbox Items</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$inboxpath2:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>DELETE</method>
-				<ruri>$</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>204</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
 		<test name='6'>
 			<description>Attendee 2 Inbox Items</description>
 			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
@@ -314,6 +258,10 @@
 					</arg>
 				</verify>
 			</request>
+			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath3:/</ruri>
+			</request>
 		</test>
 		<test name='7'>
 			<description>Attendee 2 has data</description>
@@ -327,41 +275,14 @@
 						<value>Resource/CalDAV/implicit/recur2/invite2/4.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event3:</graburi>
 			</request>
 		</test>
-		<test name='8'>
-			<description>Attendee 2 delete Inbox Items</description>
-			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$inboxpath3:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>DELETE</method>
-				<ruri>$</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>204</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
 		<test name='9'>
 			<description>Attendee 2 -> Accepted</description>
 			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$calendarpath3:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
 				<method>PUT</method>
-				<ruri>$</ruri>
+				<ruri>$event3:</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/implicit/recur2/invite2/5.ics</filepath>
@@ -392,6 +313,10 @@
 					</arg>
 				</verify>
 			</request>
+			<request print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
 		</test>
 		<test name='11'>
 			<description>Organizer data changed</description>
@@ -407,27 +332,6 @@
 				</verify>
 			</request>
 		</test>
-		<test name='12'>
-			<description>Organizer deletes Inbox Item</description>
-			<request print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$inboxpath1:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>204</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
 	</test-suite>
 	
 	<test-suite name='Organizer truncate' ignore='no'>
@@ -480,6 +384,13 @@
 					</arg>
 				</verify>
 			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
 		</test>
 		<test name='4'>
 			<description>Attendee has data</description>
@@ -493,18 +404,9 @@
 						<value>Resource/CalDAV/implicit/recur2/truncate/3.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event2:</graburi>
 			</request>
 		</test>
-		<test name='5'>
-			<description>Attendee delete Inbox Items</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>DELETEALL</method>
-				<ruri>$inboxpath2:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
 		<test name='6'>
 			<description>Attendee 2 Inbox Items</description>
 			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
@@ -526,6 +428,13 @@
 					</arg>
 				</verify>
 			</request>
+			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath3:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
 		</test>
 		<test name='7'>
 			<description>Attendee 3 has cancelled data</description>
@@ -539,23 +448,14 @@
 						<value>Resource/CalDAV/implicit/recur2/truncate/4.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event3:</graburi>
 			</request>
 		</test>
-		<test name='8'>
-			<description>Attendee 2 delete Inbox Items</description>
-			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>DELETEALL</method>
-				<ruri>$inboxpath3:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
 		<test name='9'>
 			<description>Attendee 3 removes data</description>
 			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
 				<method>DELETE</method>
-				<ruri>$</ruri>
+				<ruri>$event3:</ruri>
 				<verify>
 					<callback>statusCode</callback>
 				</verify>
@@ -563,7 +463,7 @@
 		</test>
 	</test-suite>
 	
-	<test-suite name='Organizer override remove' only='yes'>
+	<test-suite name='Organizer override remove'>
 		<test name='1'>
 			<description>Organizer invites Attendee 2 with override</description>
 			<request print-response='no'>
@@ -630,20 +530,14 @@
 						<value>Resource/CalDAV/implicit/recur2/override_remove/3.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event2:</graburi>
 			</request>
 		</test>
 		<test name='5'>
 			<description>Attendee -> Accepted</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$calendarpath2:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>PUT</method>
-				<ruri>$</ruri>
+				<ruri>$event2:</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/implicit/recur2/override_remove/4.ics</filepath>
@@ -727,33 +621,410 @@
 					</arg>
 				</verify>
 			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
 		</test>
 		<test name='11'>
 			<description>Attendee has data</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$event2:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/override_remove/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+		
+	<test-suite name='Attendee decline instance, then organizer cancel'>
+		<test name='1'>
+			<description>Organizer invites Attendee 2 with override</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/recur2/attendee_decline/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Organizer checks data</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/3.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_decline/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Attendee Inbox Items</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$inboxpath2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>GETNEW</method>
 				<ruri>$calendarpath2:/</ruri>
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/CalDAV/implicit/recur2/override_remove/8.ics</value>
+						<value>Resource/CalDAV/implicit/recur2/attendee_decline/3.ics</value>
 					</arg>
 				</verify>
+				<graburi>$event2:</graburi>
 			</request>
 		</test>
-		<test name='12'>
-			<description>Attendee delete Inbox Items</description>
+		<test name='5'>
+			<description>Attendee -> Accepted/Removed</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PUT</method>
+				<ruri>$event2:</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/recur2/attendee_decline/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$event2:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_decline/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Organizer Inbox Item</description>
+			<request print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request print-response='no'>
 				<method>DELETEALL</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+		</test>
+		<test name='7'>
+			<description>Organizer data changed</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/3.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_decline/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Organizer removes override</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/recur2/attendee_decline/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Organizer checks data</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/3.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_decline/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Attendee Inbox Items</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
 				<ruri>$inboxpath2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
 				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+		<test name='11'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$event2:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_decline/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+		
+	<test-suite name='Attendee remove instance, then organizer cancel'>
+		<test name='1'>
+			<description>Organizer invites Attendee 2 with override</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/recur2/attendee_remove/1.ics</filepath>
+				</data>
+				<verify>
 					<callback>statusCode</callback>
 				</verify>
 			</request>
 		</test>
+		<test name='2'>
+			<description>Organizer checks data</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_remove/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Attendee Inbox Items</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$inboxpath2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_remove/3.ics</value>
+					</arg>
+				</verify>
+				<graburi>$event2:</graburi>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee -> Accepted/Removed</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PUT</method>
+				<ruri>$event2:</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/recur2/attendee_remove/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$event2:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_remove/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Organizer Inbox Item</description>
+			<request print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+		</test>
+		<test name='7'>
+			<description>Organizer data changed</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_remove/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Organizer removes override</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/recur2/attendee_remove/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Organizer checks data</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/4.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_remove/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Attendee Inbox Items</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$inboxpath2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+		<test name='11'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$event2:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/recur2/attendee_remove/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
-		
+	
 	<end>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-dropbox.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-dropbox.xml	2013-05-24 19:51:56 UTC (rev 11244)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-dropbox.xml	2013-05-24 20:25:20 UTC (rev 11245)
@@ -209,7 +209,7 @@
 		</test>
 		<test name='5'>
 			<description>One dropbox</description>
-			<request>
+			<request print-response="yes">
 				<method>FINDNEW</method>
 				<ruri>$dropboxpath1:/</ruri>
 				<graburi>$dropboxchild1:</graburi>

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2013-05-24 19:51:56 UTC (rev 11244)
+++ CalDAVTester/trunk/src/caldavtest.py	2013-05-24 20:25:20 UTC (rev 11245)
@@ -13,9 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 ##
-import urllib
-import urlparse
-from src.xmlUtils import nodeForPath, xmlPathSplit
 
 """
 Class to encapsulate a single caldav test run.
@@ -29,6 +26,7 @@
 from src.request import request
 from src.request import stats
 from src.testsuite import testsuite
+from src.xmlUtils import nodeForPath, xmlPathSplit
 from xml.etree.ElementTree import ElementTree, tostring
 import commands
 import httplib
@@ -38,6 +36,8 @@
 import src.xmlDefs
 import sys
 import time
+import urllib
+import urlparse
 
 STATUSTXT_WIDTH = 60
 
@@ -83,6 +83,7 @@
         self.end_deletes = []
         self.suites = []
         self.grabbedlocation = None
+        self.previously_found = set()
 
 
     def missingFeatures(self):
@@ -320,6 +321,7 @@
             except Exception:
                 return hresult
 
+            possible_matches = set()
             latest = 0
             request_uri = req.getURI(self.manager.server_info)
             for response in tree.findall("{DAV:}response"):
@@ -357,11 +359,22 @@
                                 value = rfc822.parsedate(value)
                                 value = time.mktime(value)
                                 if value > latest:
-                                    hresult = href
+                                    possible_matches.clear()
+                                    possible_matches.add(href)
                                     latest = value
+                                elif value == latest:
+                                    possible_matches.add(href)
                         elif not hresult:
-                            hresult = href
+                            possible_matches.add(href)
 
+        if len(possible_matches) == 1:
+            hresult = possible_matches.pop()
+        elif len(possible_matches) > 1:
+            not_seen_before = possible_matches - self.previously_found
+            if len(not_seen_before) == 1:
+                hresult = not_seen_before.pop()
+        if hresult:
+            self.previously_found.add(hresult)
         return hresult
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130524/fbb33da5/attachment-0001.html>


More information about the calendarserver-changes mailing list