[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&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&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&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&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&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&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&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