[CalendarServer-changes] [12280] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:24:37 PDT 2014


Revision: 12280
          http://trac.calendarserver.org//changeset/12280
Author:   cdaboo at apple.com
Date:     2014-01-10 07:30:43 -0800 (Fri, 10 Jan 2014)
Log Message:
-----------
Test client initiated smart recurrence spitting.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-pod.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/src/caldavtest.py

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/1.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/2.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/3.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/4.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/5.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/6.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/7.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/8.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/9.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/1.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/2.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/3.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/4.ics
    CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/5.ics
    CalDAVTester/trunk/scripts/tests/CalDAV/recurrence-splitting.xml

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/1.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,53 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+RRULE:FREQ=DAILY;COUNT=20
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.-5:T120000Z
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 2
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 3
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/2.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,53 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+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=20
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.-5:T120000Z
+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:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 2
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+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:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 3
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/3.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,41 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+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=20
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.-5:T120000Z
+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:
+TRANSP:TRANSPARENT
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+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:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/4.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,53 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+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=20
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.-5:T120000Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 2
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 3
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/5.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,53 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+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=20
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.-5:T120000Z
+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:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 2
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+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:
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 3
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/6.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/6.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,41 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.0:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+RRULE:FREQ=DAILY;COUNT=10
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 3
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/7.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,41 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:$olduid:
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+RRULE:FREQ=DAILY;UNTIL=$now.0:T115959Z
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:$olduid:
+RECURRENCE-ID:$now.-5:T120000Z
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder 2
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/8.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/8.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,41 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.0:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+RRULE:FREQ=DAILY;COUNT=10
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RECURRENCE-ID:$now.5:T120000Z
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 3
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/9.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/implicit/9.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,41 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:$olduid:
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+RRULE:FREQ=DAILY;UNTIL=$now.0:T115959Z
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 1
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-5:T130000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:$olduid:
+RECURRENCE-ID:$now.-5:T120000Z
+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:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+SEQUENCE:1
+BEGIN:VALARM
+ACTION:DISPLAY
+TRIGGER:-PT5M
+DESCRIPTION:Reminder attendee 2
+END:VALARM
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/1.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,13 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RRULE:FREQ=DAILY
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/2.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.0:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+RRULE:FREQ=DAILY
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/3.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:$olduid:
+RELATED-TO;RELTYPE=X-CALENDARSERVER-RECURRENCE-SET:$olduid:
+RRULE:FREQ=DAILY;UNTIL=$now.0:T115959Z
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/4.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,13 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+RRULE:FREQ=DAILY;COUNT=10
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/recurrence-splitting/simple/5.ics	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART:$now.-10:T120000Z
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1
+END:VEVENT
+END:VCALENDAR

Modified: CalDAVTester/trunk/scripts/server/serverinfo-pod.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-pod.xml	2014-01-10 03:39:29 UTC (rev 12279)
+++ CalDAVTester/trunk/scripts/server/serverinfo-pod.xml	2014-01-10 15:30:43 UTC (rev 12280)
@@ -90,6 +90,7 @@
 		<feature>private-events</feature>				<!-- private-events extension -->
 		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->
 		<!-- <feature>proxy-authz</feature> -->			<!-- sudo user extension -->
+		<feature>recurrence-splitting</feature>			<!-- Recurring components can be split -->
 		<feature>remove-duplicate-alarms</feature>   	<!-- Server removes any duplicate alarms on PUT -->
 		<feature>query-extended</feature>				<!-- calendar-query-extended extension -->
 		<feature>shared-calendars</feature>				<!-- Shared calendars extension -->

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2014-01-10 03:39:29 UTC (rev 12279)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2014-01-10 15:30:43 UTC (rev 12280)
@@ -85,6 +85,7 @@
 		<feature>private-events</feature>				<!-- private-events extension -->
 		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->
 		<!-- <feature>proxy-authz</feature> -->			<!-- sudo user extension -->
+		<feature>recurrence-splitting</feature>			<!-- Recurring components can be split -->
 		<feature>remove-duplicate-alarms</feature>   	<!-- Server removes any duplicate alarms on PUT -->
 		<feature>query-extended</feature>				<!-- calendar-query-extended extension -->
 		<feature>shared-calendars</feature>				<!-- Shared calendars extension -->

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2014-01-10 03:39:29 UTC (rev 12279)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2014-01-10 15:30:43 UTC (rev 12280)
@@ -85,6 +85,7 @@
 		<feature>private-events</feature>				<!-- private-events extension -->
 		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->
 		<!-- <feature>proxy-authz</feature> -->			<!-- sudo user extension -->
+		<feature>recurrence-splitting</feature>			<!-- Recurring components can be split -->
 		<feature>remove-duplicate-alarms</feature>   	<!-- Server removes any duplicate alarms on PUT -->
 		<feature>query-extended</feature>				<!-- calendar-query-extended extension -->
 		<feature>shared-calendars</feature>				<!-- Shared calendars extension -->

Added: CalDAVTester/trunk/scripts/tests/CalDAV/recurrence-splitting.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/recurrence-splitting.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/recurrence-splitting.xml	2014-01-10 15:30:43 UTC (rev 12280)
@@ -0,0 +1,634 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<caldavtest>
+	<description>Test that POST to split recurrences works</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>recurrence-splitting</feature>
+	</require-feature>
+
+	<start>
+		<request user="$userid1:" pswd="$pswd1:">
+			<method>GET</method>
+			<ruri>$calendarpath1:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>GET</method>
+			<ruri>$calendarpath2:/</ruri>
+		</request>
+		<request user="$userid1:" pswd="$pswd1:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath1:/</ruri>
+			<ruri>$inboxpath1:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath2:/</ruri>
+			<ruri>$inboxpath2:/</ruri>
+		</request>
+	</start>
+	
+	
+	<test-suite name='OPTIONS header'>
+		<test name='1'>
+			<description>Look for options header tag on principal</description>
+			<request>
+				<method>OPTIONS</method>
+				<ruri>$principal1:</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>*DAV$.*calendarserver-recurrence-split*</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Look for options header tag on calendar home</description>
+			<request>
+				<method>OPTIONS</method>
+				<ruri>$calendarhome1:/</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>*DAV$.*calendarserver-recurrence-split*</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='No Organizer, no overrides, no prefer'>
+		<test name='1'>
+			<description>Create event</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST to split</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=$now.0:T000000Z</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Split-Component-URL</name>
+					<variable>$href2:</variable>
+				</grabheader>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$href2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/UID</name>
+					<variable>$olduid:</variable>
+				</grabcalproperty>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET new-part split (original) resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/simple/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>GET old-part split (new resource)</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/simple/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean-up</description>
+			<request>
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='No Organizer, no overrides, prefer'>
+		<test name='1'>
+			<description>Create event</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST to split</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=$now.0:T000000Z</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>totalcount</name>
+						<value>2</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}calendar-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$multistatus-href-prefix:</name>
+					<variable>$href1:</variable>
+					<variable>$href2:</variable>
+				</grabelement>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$href2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/UID</name>
+					<variable>$olduid:</variable>
+				</grabcalproperty>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET new-part split (original) resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href1:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/simple/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>GET old-part split (new resource)</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/simple/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean-up</description>
+			<request>
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	
+	<test-suite name='Bad POSTs'>
+		<test name='1'>
+			<description>Create event</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST bad rid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=FOOBAR</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-rid-parameter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>POST no rid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-rid-parameter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST rid too early</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=$now.-50:T000000Z</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{http://calendarserver.org/ns/}invalid-split</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Event with count</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/simple/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST rid too late</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=$now.50:T000000Z</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{http://calendarserver.org/ns/}invalid-split</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>Event non-recurring</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/simple/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>POST non-recurring</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=$now.-10:T000000Z</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{http://calendarserver.org/ns/}invalid-split</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean-up</description>
+			<request>
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Scheduled event, with per-organizer/per-attendee data'>
+		<test name='1'>
+			<description>Organizer invites Attendee (with alarm and override)</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/implicit/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Organizer checks data</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>WAITDELETEALL 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/3.ics</value>
+					</arg>
+				</verify>
+				<graburi>$attendee1:</graburi>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee -> Accepted with alarm</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PUT</method>
+				<ruri>$attendee1:</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrence-splitting/implicit/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Organizer Inbox Item</description>
+			<request>
+				<method>WAITDELETEALL 1</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+		</test>
+		<test name='7'>
+			<description>Organizer data changed</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>POST to split</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=split&amp;rid=$now.0:T000000Z</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return=representation</value>
+				</header>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>totalcount</name>
+						<value>2</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}getetag</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}calendar-data</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>$multistatus-href-prefix:</name>
+					<variable>$href1:</variable>
+					<variable>$href2:</variable>
+				</grabelement>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$href2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/UID</name>
+					<variable>$olduid:</variable>
+				</grabcalproperty>
+			</request>
+		</test>
+		<test name='9'>
+			<description>GET new-part split (original) resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href1:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>GET old-part split (new resource)</description>
+			<request>
+				<method>GET</method>
+				<ruri>$href2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11'>
+			<description>GET attendee new-part split (original) resource</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attendee1:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>GET attendee old-part split (new resource)</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/recurrence-splitting/implicit/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2014-01-10 03:39:29 UTC (rev 12279)
+++ CalDAVTester/trunk/src/caldavtest.py	2014-01-10 15:30:43 UTC (rev 12280)
@@ -521,6 +521,8 @@
         elif req.method == "GETNEW":
             collection = (req.ruri, req.user, req.pswd)
             self.grabbedlocation = self.dofindnew(collection, label=label)
+            if req.graburi:
+                self.manager.server_info.addextrasubs({req.graburi: self.grabbedlocation})
             req.method = "GET"
             req.ruri = "$"
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/4f5e1e48/attachment.html>


More information about the calendarserver-changes mailing list