[CalendarServer-changes] [1842]

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 5 08:32:42 PDT 2007


Revision: 1842
          http://trac.macosforge.org/projects/calendarserver/changeset/1842
Author:   cdaboo at apple.com
Date:     2007-09-05 08:32:41 -0700 (Wed, 05 Sep 2007)

Log Message:
-----------
Final work on handling recurrening items during auto-processing with a bunch more tests. This adds full REQUEST handling and fixes
some issues with CANCEL handling.

Modified Paths:
--------------
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/4.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/5.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/6.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurcancel.xml
    CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurrequest.xml
    CalendarServer/branches/users/cdaboo/better-itip-1835/twistedcaldav/itip.py

Added Paths:
-----------
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/15.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/16.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/17.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/18.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/19.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/10.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/11.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/12.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/13.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/14.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/15.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/16.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/17.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/18.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/19.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/20.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/21.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/7.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/8.ics
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/9.ics

Removed Paths:
-------------
    CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecur/

Copied: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel (from rev 1841, CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecur)

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/15.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/15.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/15.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,31 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REQUEST
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060210T100000Z
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060217T100000Z
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/16.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/16.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/16.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060210T100000Z
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060217T100000Z
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/17.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/17.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/17.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:CANCEL
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060210T100000Z
+SEQUENCE:1
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/18.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/18.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/18.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060217T100000Z
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/19.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/19.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurcancel/19.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:CANCEL
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060217T100000Z
+SEQUENCE:1
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/10.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/10.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/10.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REQUEST
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+DTSTART:20060215T200000Z
+DTEND:20060215T210000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060215T200000Z
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:1
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+DTSTART:20060222T230000Z
+DTEND:20060223T000000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060222T200000Z
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:3
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/11.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/11.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/11.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,48 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+DTSTART:20060208T200000Z
+DTEND:20060208T210000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:3
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060215T200000Z
+DTSTART:20060215T220000Z
+DTEND:20060215T230000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060222T200000Z
+DTSTART:20060222T230000Z
+DTEND:20060223T000000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:3
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/12.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/12.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/12.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,21 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REPLY
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060222T200000Z
+DTSTART:20060222T230000Z
+DTEND:20060223T000000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+REQUEST-STATUS:2.0\; Success.
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:3
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/13.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/13.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/13.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,18 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REQUEST
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060210T100000Z
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/14.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/14.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/14.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060210T100000Z
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/15.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/15.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/15.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REPLY
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060210T100000Z
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+REQUEST-STATUS:2.0\; Success.
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/16.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/16.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/16.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,18 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REQUEST
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060217T100000Z
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/17.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/17.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/17.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060210T100000Z
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060217T100000Z
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/18.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/18.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/18.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REPLY
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060217T100000Z
+DTSTART:20060217T100000Z
+DTEND:20060217T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+REQUEST-STATUS:2.0\; Success.
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/19.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/19.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/19.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REQUEST
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+DTSTART:20060217T120000Z
+DTEND:20060217T113000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060217T100000Z
+SEQUENCE:1
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/20.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/20.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/20.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,31 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060210T100000Z
+DTSTART:20060210T100000Z
+DTEND:20060210T110000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060217T100000Z
+DTSTART:20060217T120000Z
+DTEND:20060217T113000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+SEQUENCE:1
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/21.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/21.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/21.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,20 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REPLY
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-2
+RECURRENCE-ID:20060217T100000Z
+DTSTART:20060217T120000Z
+DTEND:20060217T113000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+REQUEST-STATUS:2.0\; Success.
+SEQUENCE:1
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Modified: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/4.ics	2007-09-04 20:54:29 UTC (rev 1841)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/4.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -4,8 +4,8 @@
 PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
 BEGIN:VEVENT
 UID:20060110T231240Z-4011c71-187-6f73-1
-DTSTART:20060208T210000Z
-DTEND:20060208T220000Z
+DTSTART:20060215T210000Z
+DTEND:20060215T220000Z
 ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
 CREATED:20060110T231240Z
 DESCRIPTION:+1 605 990 0100\nAccess: 879307#

Modified: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/5.ics	2007-09-04 20:54:29 UTC (rev 1841)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/5.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -18,8 +18,8 @@
 BEGIN:VEVENT
 UID:20060110T231240Z-4011c71-187-6f73-1
 RECURRENCE-ID:20060215T200000Z
-DTSTART:20060208T210000Z
-DTEND:20060208T220000Z
+DTSTART:20060215T210000Z
+DTEND:20060215T220000Z
 ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
 CREATED:20060110T231240Z
 DESCRIPTION:+1 605 990 0100\nAccess: 879307#

Modified: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/6.ics	2007-09-04 20:54:29 UTC (rev 1841)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/6.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -5,8 +5,8 @@
 BEGIN:VEVENT
 UID:20060110T231240Z-4011c71-187-6f73-1
 RECURRENCE-ID:20060215T200000Z
-DTSTART:20060208T210000Z
-DTEND:20060208T220000Z
+DTSTART:20060215T210000Z
+DTEND:20060215T220000Z
 ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
 CREATED:20060110T231240Z
 DESCRIPTION:+1 605 990 0100\nAccess: 879307#

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/7.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/7.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/7.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REQUEST
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+DTSTART:20060215T220000Z
+DTEND:20060215T230000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060215T200000Z
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+DTSTART:20060222T210000Z
+DTEND:20060222T220000Z
+ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RECURRENCE-ID:20060222T200000Z
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/8.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/8.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/8.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,48 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//ORACLE//NONSGML Windows Desktop Calendar 10.1.2.0.5.278//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+DTSTART:20060208T200000Z
+DTEND:20060208T210000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060215T200000Z
+DTSTART:20060215T220000Z
+DTEND:20060215T230000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060222T200000Z
+DTSTART:20060222T210000Z
+DTEND:20060222T220000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/9.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/9.ics	                        (rev 0)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/Resource/scheduleautorecurrequest/9.ics	2007-09-05 15:32:41 UTC (rev 1842)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+METHOD:REPLY
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060215T200000Z
+DTSTART:20060215T220000Z
+DTEND:20060215T230000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+REQUEST-STATUS:2.0\; Success.
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+BEGIN:VEVENT
+UID:20060110T231240Z-4011c71-187-6f73-1
+RECURRENCE-ID:20060222T200000Z
+DTSTART:20060222T210000Z
+DTEND:20060222T220000Z
+ATTENDEE;PARTSTAT=ACCEPTED;CN=Resource 01:$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:+1 605 990 0100\nAccess: 879307#
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=Cyrus Daboo:$cuaddralt1:
+REQUEST-STATUS:2.0\; Success.
+RRULE:FREQ=WEEKLY;COUNT=20
+SEQUENCE:2
+SUMMARY:TC Realtime
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR

Modified: CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurcancel.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurcancel.xml	2007-09-04 20:54:29 UTC (rev 1841)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurcancel.xml	2007-09-05 15:32:41 UTC (rev 1842)
@@ -62,7 +62,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/1.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/1.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -96,7 +96,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/2.ics</value>
+						<value>Resource/scheduleautorecurcancel/2.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -133,7 +133,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/3.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/3.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -167,7 +167,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/4.ics</value>
+						<value>Resource/scheduleautorecurcancel/4.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -204,7 +204,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/5.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/5.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -238,7 +238,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/6.ics</value>
+						<value>Resource/scheduleautorecurcancel/6.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -275,7 +275,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/7.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/7.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -309,7 +309,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/6.ics</value>
+						<value>Resource/scheduleautorecurcancel/6.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -346,7 +346,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/8.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/8.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -417,7 +417,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/9.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/9.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -451,7 +451,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/10.ics</value>
+						<value>Resource/scheduleautorecurcancel/10.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -488,7 +488,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/11.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/11.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -522,7 +522,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/12.ics</value>
+						<value>Resource/scheduleautorecurcancel/12.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -559,7 +559,7 @@
 				<ruri>$pathprefix:/$outbox:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleautorecur/13.ics</filepath>
+					<filepath>Resource/scheduleautorecurcancel/13.ics</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -593,7 +593,7 @@
 					<callback>dataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/scheduleautorecur/14.ics</value>
+						<value>Resource/scheduleautorecurcancel/14.ics</value>
 					</arg>
 				</verify>
 			</request>
@@ -614,6 +614,219 @@
 		</test>
 	</test-suite>
 
+	<test-suite name='POST recurring instance only' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurcancel/15.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurcancel/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Three items in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>3</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST cancel one overridden instance' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurcancel/17.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurcancel/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Three items in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>3</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST cancel last overridden instance' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurcancel/19.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Three items in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>3</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
 	<end>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurrequest.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurrequest.xml	2007-09-04 20:54:29 UTC (rev 1841)
+++ CalDAVTester/branches/users/cdaboo/better-itip-1837/scripts/tests/schedulepostautorecurrequest.xml	2007-09-05 15:32:41 UTC (rev 1842)
@@ -188,6 +188,361 @@
 		</test>
 	</test-suite>
 
+	<test-suite name='POST modify two instances' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurrequest/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST modify two instances - one discarded' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurrequest/10.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/12.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST recurring instance only' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurrequest/13.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST recurring instance only added' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurrequest/16.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/17.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST recurring instance only changed' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$cuaddralt1:</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$rcuaddralt1:</value>
+				</header>
+				<ruri>$pathprefix:/$outbox:/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleautorecurrequest/19.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>4</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>No items in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$rpathprefix1:/$inbox:/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$rpathprefix1:/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/20.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/$inbox:/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleautorecurrequest/21.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
 	<end>
 		<request>
 			<method>DELETEALL</method>

Modified: CalendarServer/branches/users/cdaboo/better-itip-1835/twistedcaldav/itip.py
===================================================================
--- CalendarServer/branches/users/cdaboo/better-itip-1835/twistedcaldav/itip.py	2007-09-04 20:54:29 UTC (rev 1841)
+++ CalendarServer/branches/users/cdaboo/better-itip-1835/twistedcaldav/itip.py	2007-09-05 15:32:41 UTC (rev 1842)
@@ -333,15 +333,30 @@
         # If we have a match then we need to check whether we are updating etc
         check_reply = False
         if calmatch:
-            # See whether the new component is older than any existing ones and throw it away if so
-            newinfo = getSyncInfo(child.fp.basename(), calendar)
+            # Check each component to see whether its new
             cal = updatecal.iCalendar(calmatch)
-            info = getSyncInfo(calmatch, cal)
-            if compareSyncInfo(info, newinfo) < 0:
-                # Existing resource is older and will be replaced
-                check_reply = True
-            else:
-                processed = "older"
+            old_master = cal.masterComponent()
+            processed = "older"
+            new_components = [component for component in calendar.subcomponents()]
+            for component in new_components:
+                if component.name() == "VTIMEZONE":
+                    continue
+                
+                newinfo = (None,) + getComponentSyncInfo(component)
+                old_component = findMatchingComponent(component, cal)
+                if old_component:
+                    info = (None,) + getComponentSyncInfo(old_component)
+                elif old_master:
+                    info = (None,) + getComponentSyncInfo(old_master)
+                else:
+                    info = None
+                    
+                if info is None or compareSyncInfo(info, newinfo) < 0:
+                    # Existing resource is older and will be replaced
+                    check_reply = True
+                    processed = "processed"
+                else:
+                    calendar.removeComponent(component)
         else:
             # We have a new request which we can reply to
             check_reply = True
@@ -522,7 +537,9 @@
             existing_calendar = updatecal.iCalendar(calmatch)
             existing_master = existing_calendar.masterComponent()
             exdates = []
-            max_sequence = existing_master.propertyValue("SEQUENCE")
+            max_sequence = None
+            if existing_master:
+                max_sequence = existing_master.propertyValue("SEQUENCE")
             if max_sequence is None:
                 max_sequence = 0
 
@@ -543,7 +560,7 @@
                         
                         # Remove the existing component.
                         existing_calendar.removeComponent(old_component)
-                else:
+                elif existing_master:
                     # We are trying to CANCEL a non-overridden instance, so we need to
                     # check SEQUENCE/DTSTAMP with the master.
                     if compareComponents(existing_master, component) < 0:
@@ -554,16 +571,28 @@
             # If we have any EXDATEs lets add them to the existing calendar object and write
             # it back.
             if exdates:
-                existing_master.addProperty(Property("EXDATE", exdates))
-                seq = existing_master.getProperty("SEQUENCE")
-                if seq:
-                    seq.setValue(max_sequence)
+                if existing_master:
+                    existing_master.addProperty(Property("EXDATE", exdates))
+                    seq = existing_master.getProperty("SEQUENCE")
+                    if seq:
+                        seq.setValue(max_sequence)
+                    else:
+                        existing_master.addProperty(Property("SEQUENCE", max_sequence))
+
+                # See if there are still components in the calendar - we might have deleted the last overridden instance
+                # in which case the calendar object is empty (except for VTIMEZONEs).
+                if existing_calendar.mainType() is None:
+                    # Delete the now empty calendar object
+                    d = waitForDeferred(deleteResource(updatecal, calmatch))
+                    yield d
+                    d.getResult()
+                    logging.info("[ITIP]: deleted calendar component %s after cancellations from iTIP message in %s." % (calmatch, calURL))
                 else:
-                    existing_master.addProperty(Property("SEQUENCE", max_sequence))
-                newchild = waitForDeferred(writeResource(request, calURL, updatecal, calmatch, existing_calendar))
-                yield newchild
-                newchild = newchild.getResult()
-                logging.info("[ITIP]: updated calendar component %s with cancellations from iTIP message in %s." % (calmatch, calURL))
+                    # Update the existing calendar object
+                    newchild = waitForDeferred(writeResource(request, calURL, updatecal, calmatch, existing_calendar))
+                    yield newchild
+                    newchild = newchild.getResult()
+                    logging.info("[ITIP]: updated calendar component %s with cancellations from iTIP message in %s." % (calmatch, calURL))
                 processed = "processed"
             else:
                 processed = "older"
@@ -1114,7 +1143,9 @@
     # We will update the SEQUENCE on the master to the highest value of the current one on the master
     # or the ones in the components we are changing.
     existing_master = oldcal.masterComponent()
-    max_sequence = existing_master.propertyValue("SEQUENCE")
+    max_sequence = None
+    if existing_master:
+        max_sequence = existing_master.propertyValue("SEQUENCE")
     if max_sequence is None:
         max_sequence = 0
 
@@ -1129,11 +1160,12 @@
         oldcal.addComponent(component)
         max_sequence = max(max_sequence, component.propertyValue("SEQUENCE"))
 
-    seq = existing_master.getProperty("SEQUENCE")
-    if seq:
-        seq.setValue(max_sequence)
-    else:
-        existing_master.addProperty(Property("SEQUENCE", max_sequence))
+    if existing_master:
+        seq = existing_master.getProperty("SEQUENCE")
+        if seq:
+            seq.setValue(max_sequence)
+        else:
+            existing_master.addProperty(Property("SEQUENCE", max_sequence))
 
 def getAllInfo(collection, calendar, ignore):
     """

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070905/db5910b4/attachment.html


More information about the calendarserver-changes mailing list