[CalendarServer-changes] [9754] CalDAVTester/branches/users/cdaboo/recurrence-split
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 29 19:25:32 PDT 2012
Revision: 9754
http://trac.macosforge.org/projects/calendarserver/changeset/9754
Author: cdaboo at apple.com
Date: 2012-08-29 19:25:32 -0700 (Wed, 29 Aug 2012)
Log Message:
-----------
Checkpoint of work so far.
Modified Paths:
--------------
CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-partitioning.xml
CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-template.xml
CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo.xml
CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/sslserverinfo.xml
CalDAVTester/branches/users/cdaboo/recurrence-split/src/caldavtest.py
CalDAVTester/branches/users/cdaboo/recurrence-split/verifiers/multistatusItems.py
Added Paths:
-----------
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/1.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/2.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/3.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/4.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/5.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/6.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/1.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/2.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/3.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/1.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/2.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/3.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/4.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/5.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/6.ics
CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/tests/CalDAV/recurrence_split.xml
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/1.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/1.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,65 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;COUNT=5
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0102T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-2
+UID:event1
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0102T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01-2
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0104T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-4
+UID:event1
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0104T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01-4
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/2.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/2.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/2.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,65 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;COUNT=5
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0102T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-2
+UID:event1
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0102T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02-2
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0104T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-4
+UID:event1
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0104T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02-4
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/3.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/3.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,51 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0103T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1-split
+RRULE:FREQ=DAILY;COUNT=3
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01-split
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0104T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-4
+UID:event1-split
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0104T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01-split-4
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/4.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/4.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,51 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;UNTIL=$now.year.0:0103T135959Z
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0102T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-2
+UID:event1
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0102T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01-2
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/5.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/5.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,51 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;UNTIL=$now.year.0:0103T135959Z
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0102T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-2
+UID:event1
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0102T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02-2
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/6.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/override-sharing/6.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,51 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0103T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1-split
+RRULE:FREQ=DAILY;COUNT=3
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0104T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1-4
+UID:event1-split
+RECURRENCE-ID;TZID=US/Eastern:$now.year.0:0104T090000
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02-4
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/1.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/1.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;COUNT=5
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/2.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/2.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/2.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0103T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1 modified
+UID:event1-split
+RRULE:FREQ=DAILY;COUNT=3
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/3.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple/3.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,32 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;UNTIL=$now.year.0:0103T135959Z
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/1.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/1.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;COUNT=5
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/2.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/2.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/2.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;COUNT=5
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/3.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/3.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0103T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1-split
+RRULE:FREQ=DAILY;COUNT=3
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01-split
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/4.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/4.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;UNTIL=$now.year.0:0103T135959Z
+BEGIN:VALARM
+DESCRIPTION:Event reminder user01
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/5.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/5.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0101T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1
+RRULE:FREQ=DAILY;UNTIL=$now.year.0:0103T135959Z
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/6.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/Resource/CalDAV/recurrence_split/simple-sharing/6.ics 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,37 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051228T232517Z
+DTSTART;TZID=US/Eastern:$now.year.0:0103T090000
+DURATION:PT1H
+LOCATION:Durham
+SUMMARY:Meeting 1
+UID:event1-split
+RRULE:FREQ=DAILY;COUNT=3
+BEGIN:VALARM
+DESCRIPTION:Event reminder user02
+TRIGGER:-PT8M
+ACTION:DISPLAY
+END:VALARM
+END:VEVENT
+END:VCALENDAR
Modified: CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-partitioning.xml 2012-08-30 02:19:02 UTC (rev 9753)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-partitioning.xml 2012-08-30 02:25:32 UTC (rev 9754)
@@ -76,6 +76,7 @@
<feature>proxy</feature> <!-- calendar-user-proxy extension -->
<!-- <feature>proxy-authz</feature> --> <!-- sudo user extension -->
<feature>query-extended</feature> <!-- calendar-query-extended extension -->
+ <feature>recurrence-splitting</feature> <!-- Supports POST to split recurrences -->
<feature>shared-calendars</feature> <!-- Shared calendars extension -->
<feature>schedule-changes</feature> <!-- schedule-changes property extension -->
<feature>split-calendars</feature> <!-- Calendars are split by component type -->
Modified: CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-template.xml 2012-08-30 02:19:02 UTC (rev 9753)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo-template.xml 2012-08-30 02:25:32 UTC (rev 9754)
@@ -52,6 +52,7 @@
<feature>prefer-noroot</feature> <!-- Prefer header depth-noroot -->
<feature>quota</feature> <!-- WebDAV QUOTA -->
<!-- <feature>quota-on-resources</feature> --> <!-- WebDAV QUOTA on calendar and address book object resources -->
+ <feature>recurrence-splitting</feature> <!-- Supports POST to split recurrences -->
<feature>resource-id</feature> <!-- WebDAV BIND DAV:resource-id property -->
<feature>sync-report</feature> <!-- WebDAV collection sync REPORT -->
<feature>sync-report-home</feature> <!-- WebDAV collection sync REPORT on Homes -->
Modified: CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo.xml 2012-08-30 02:19:02 UTC (rev 9753)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/serverinfo.xml 2012-08-30 02:25:32 UTC (rev 9754)
@@ -76,6 +76,7 @@
<feature>proxy</feature> <!-- calendar-user-proxy extension -->
<!-- <feature>proxy-authz</feature> --> <!-- sudo user extension -->
<feature>query-extended</feature> <!-- calendar-query-extended extension -->
+ <feature>recurrence-splitting</feature> <!-- Supports POST to split recurrences -->
<feature>shared-calendars</feature> <!-- Shared calendars extension -->
<feature>schedule-changes</feature> <!-- schedule-changes property extension -->
<feature>split-calendars</feature> <!-- Calendars are split by component type -->
Modified: CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/sslserverinfo.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/sslserverinfo.xml 2012-08-30 02:19:02 UTC (rev 9753)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/server/sslserverinfo.xml 2012-08-30 02:25:32 UTC (rev 9754)
@@ -77,6 +77,7 @@
<feature>proxy</feature> <!-- calendar-user-proxy extension -->
<!-- <feature>proxy-authz</feature> --> <!-- sudo user extension -->
<feature>query-extended</feature> <!-- calendar-query-extended extension -->
+ <feature>recurrence-splitting</feature> <!-- Supports POST to split recurrences -->
<feature>shared-calendars</feature> <!-- Shared calendars extension -->
<feature>schedule-changes</feature> <!-- schedule-changes property extension -->
<feature>split-calendars</feature> <!-- Calendars are split by component type -->
Added: CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/tests/CalDAV/recurrence_split.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/tests/CalDAV/recurrence_split.xml (rev 0)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/scripts/tests/CalDAV/recurrence_split.xml 2012-08-30 02:25:32 UTC (rev 9754)
@@ -0,0 +1,630 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2012 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<caldavtest>
+ <description>Test POST doing recurrence split in CalDAV</description>
+
+ <require-feature>
+ <feature>caldav</feature>
+ <feature>recurrence-splitting</feature>
+ </require-feature>
+
+ <start>
+ <request user="$userid1:" pswd="$pswd1:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath1:/</ruri>
+ <ruri>$inboxpath1:/</ruri>
+ <ruri>$notificationpath1:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid3:" pswd="$pswd3:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$notificationpath3:/</ruri>
+ </request>
+ </start>
+
+ <test-suite name='OPTIONS header' ignore='no'>
+ <test name='1'>
+ <description>Look for options header tag on principal</description>
+ <request print-response="no">
+ <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-suite>
+
+ <test-suite name='Simple split - no sharing, no attendees' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>PUT recurring event without overrides</description>
+ <request end-delete='yes'>
+ <method>PUT</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/simple/1.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>POST to split</description>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarpath1:/1.ics?action=recurrence-split&recurrence-id=$now.year.0:0103T140000Z</ruri>
+ <header>
+ <name>Prefer</name>
+ <value>return-representation</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/simple/2.ics</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>totalcount</name>
+ <value>2</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>Check original data</description>
+ <request print-response='no'>
+ <method>GET</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/simple/3.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>Check new data</description>
+ <request print-response='no'>
+ <method>GETOTHER</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/simple/2.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <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>
+ <request user="$userid3:" pswd="$pswd3:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='Shared simple split - no attendees' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>Setup shared calendar</description>
+ <request end-delete="no">
+ <method>MKCALENDAR</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/MKCALENDAR/sharedcalendar.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharinginvite2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>WAITCOUNT 1</method>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GETNEW</method>
+ <ruri>$notificationpath2:/</ruri>
+ <grabelement>
+ <name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+ <variable>$inviteuid2:</variable>
+ </grabelement>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome2:/</ruri>
+ <data substitutions='yes'>
+ <content-type>application/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+ </data>
+ <grabelement>
+ <name>{DAV:}href</name>
+ <variable>$sharedcalendar2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>PUT recurring event without overrides with alarm</description>
+ <request end-delete='no'>
+ <method>PUT</method>
+ <ruri>$calendarhome1:/shared/1.ics</ruri>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/simple-sharing/1.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>Sharee adds alarm</description>
+ <request user="$userid2:" pswd="$pswd2:" end-delete='yes'>
+ <method>PUT</method>
+ <ruri>$sharedcalendar2:/1.ics</ruri>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/simple-sharing/2.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>POST to split</description>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/1.ics?action=recurrence-split&recurrence-id=$now.year.0:0103T140000Z</ruri>
+ <header>
+ <name>Prefer</name>
+ <value>return-representation</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/simple-sharing/3.ics</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>totalcount</name>
+ <value>2</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>Check original data</description>
+ <request print-response='no'>
+ <method>GET</method>
+ <ruri>$calendarhome1:/shared/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/simple-sharing/4.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>Check new data</description>
+ <request print-response='no'>
+ <method>GETOTHER</method>
+ <ruri>$calendarhome1:/shared/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/simple-sharing/3.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>Check original shared data</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GET</method>
+ <ruri>$sharedcalendar2:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/simple-sharing/5.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>Check new shared data</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GETOTHER</method>
+ <ruri>$sharedcalendar2:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/simple-sharing/6.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>Clean-up</description>
+ <request user="$userid1:" pswd="$pswd1:">
+ <method>DELETE</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ </request>
+ <request user="$userid1:" pswd="$pswd1:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath1:/</ruri>
+ <ruri>$inboxpath1:/</ruri>
+ <ruri>$notificationpath1:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid3:" pswd="$pswd3:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$notificationpath3:/</ruri>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='Shared overridde split - no attendees' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>Setup shared calendar</description>
+ <request end-delete="no">
+ <method>MKCALENDAR</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/MKCALENDAR/sharedcalendar.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharinginvite2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>WAITCOUNT 1</method>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GETNEW</method>
+ <ruri>$notificationpath2:/</ruri>
+ <grabelement>
+ <name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+ <variable>$inviteuid2:</variable>
+ </grabelement>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome2:/</ruri>
+ <data substitutions='yes'>
+ <content-type>application/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+ </data>
+ <grabelement>
+ <name>{DAV:}href</name>
+ <variable>$sharedcalendar2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>PUT recurring event without overrides with alarm</description>
+ <request end-delete='no'>
+ <method>PUT</method>
+ <ruri>$calendarhome1:/shared/1.ics</ruri>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/override-sharing/1.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>Sharee adds alarm</description>
+ <request user="$userid2:" pswd="$pswd2:" end-delete='yes'>
+ <method>PUT</method>
+ <ruri>$sharedcalendar2:/1.ics</ruri>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/override-sharing/2.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>POST to split</description>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/1.ics?action=recurrence-split&recurrence-id=$now.year.0:0103T140000Z</ruri>
+ <header>
+ <name>Prefer</name>
+ <value>return-representation</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/recurrence_split/override-sharing/3.ics</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>totalcount</name>
+ <value>2</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>Check original data</description>
+ <request print-response='no'>
+ <method>GET</method>
+ <ruri>$calendarhome1:/shared/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/override-sharing/4.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>Check new data</description>
+ <request print-response='no'>
+ <method>GETOTHER</method>
+ <ruri>$calendarhome1:/shared/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/override-sharing/3.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>Check original shared data</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GET</method>
+ <ruri>$sharedcalendar2:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/override-sharing/5.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>Check new shared data</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GETOTHER</method>
+ <ruri>$sharedcalendar2:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/recurrence_split/override-sharing/6.ics</value>
+ </arg>
+ <arg>
+ <name>filter</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>RECURRENCE-SET</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>Clean-up</description>
+ <request user="$userid1:" pswd="$pswd1:">
+ <method>DELETE</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ </request>
+ <request user="$userid1:" pswd="$pswd1:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath1:/</ruri>
+ <ruri>$inboxpath1:/</ruri>
+ <ruri>$notificationpath1:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid3:" pswd="$pswd3:">
+ <method>DELETEALL</method>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$notificationpath3:/</ruri>
+ </request>
+ </test>
+ </test-suite>
+
+ <end/>
+
+</caldavtest>
Modified: CalDAVTester/branches/users/cdaboo/recurrence-split/src/caldavtest.py
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/src/caldavtest.py 2012-08-30 02:19:02 UTC (rev 9753)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/src/caldavtest.py 2012-08-30 02:25:32 UTC (rev 9754)
@@ -1,5 +1,5 @@
##
-# Copyright (c) 2006-2011 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2012 Apple Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -276,6 +276,12 @@
self.dorequest( req, False, False, label=label )
def dofindnew( self, collection, label = "" ):
+ """
+ Find the newest resource that is a child of the specified collection.
+ This does a PROPFIND on the specified collection and iterates over the results
+ ignoring the collection to find the newest child.
+ """
+
hresult = ""
req = request(self.manager)
req.method = "PROPFIND"
@@ -344,6 +350,88 @@
return hresult
+ def dofindother( self, sibling, label = "" ):
+ """
+ Find the newest resource that is a sibling of the specified resource (not the specified resource itself).
+ This does a PROPFIND on the parent of the specified resource and iterates over the results ignoring the parent
+ and specified resource to find the newest sibling.
+ """
+
+ hresult = ""
+ sibling = list(sibling)
+ notthis = sibling[0]
+ sibling[0] = "/".join(notthis.split("/")[:-1]) + "/"
+ req = request(self.manager)
+
+ req.ruri = notthis
+ notthis_uri = req.getURI( self.manager.server_info )
+
+ req.method = "PROPFIND"
+ req.ruris.append(sibling[0])
+ req.ruri = sibling[0]
+ req.headers["Depth"] = "1"
+ if len(sibling[1]):
+ req.user = sibling[1]
+ if len(sibling[2]):
+ req.pswd = sibling[2]
+ req.data = data()
+ req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:getetag/>
+<D:getlastmodified/>
+</D:prop>
+</D:propfind>
+"""
+ req.data.content_type = "text/xml"
+ result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label="%s | %s" % (label, "FINDNEW") )
+ if result and (response is not None) and (response.status == 207) and (respdata is not None):
+ try:
+ tree = ElementTree(file=StringIO(respdata))
+ except Exception:
+ return hresult
+
+ latest = 0
+ request_uri = req.getURI( self.manager.server_info )
+ for response in tree.findall("{DAV:}response" ):
+
+ # Get href for this response
+ href = response.findall("{DAV:}href")
+ if len(href) != 1:
+ return False, " Wrong number of DAV:href elements\n"
+ href = href[0].text
+ if href not in (request_uri, notthis_uri,):
+
+ # Get all property status
+ propstatus = response.findall("{DAV:}propstat")
+ for props in propstatus:
+ # Determine status for this propstat
+ status = props.findall("{DAV:}status")
+ if len(status) == 1:
+ statustxt = status[0].text
+ status = False
+ if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
+ status = (statustxt[9] == "2")
+ else:
+ status = False
+
+ # Get properties for this propstat
+ prop = props.findall("{DAV:}prop")
+ for el in prop:
+
+ # Get properties for this propstat
+ glm = el.findall("{DAV:}getlastmodified")
+ if len(glm) != 1:
+ continue
+ value = glm[0].text
+ value = rfc822.parsedate(value)
+ value = time.mktime(value)
+ if value > latest:
+ hresult = href
+ latest = value
+
+ return hresult
+
def dowaitcount( self, collection, count, label = ""):
for _ignore in range(30):
@@ -472,6 +560,13 @@
req.method = "GET"
req.ruri = "$"
+ # Special for GETOTHER
+ elif req.method == "GETOTHER":
+ collection = (req.ruri, req.user, req.pswd)
+ self.grabbedlocation = self.dofindother(collection, label=label)
+ req.method = "GET"
+ req.ruri = "$"
+
# Special check for WAITCOUNT
elif req.method.startswith("WAITCOUNT"):
count = int(req.method[10:])
Modified: CalDAVTester/branches/users/cdaboo/recurrence-split/verifiers/multistatusItems.py
===================================================================
--- CalDAVTester/branches/users/cdaboo/recurrence-split/verifiers/multistatusItems.py 2012-08-30 02:19:02 UTC (rev 9753)
+++ CalDAVTester/branches/users/cdaboo/recurrence-split/verifiers/multistatusItems.py 2012-08-30 02:25:32 UTC (rev 9754)
@@ -1,5 +1,5 @@
##
-# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2012 Apple Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
are returned with appropriate status codes.
"""
+from urlparse import urlsplit
from xml.etree.ElementTree import ElementTree
from StringIO import StringIO
@@ -45,7 +46,7 @@
if len(prefix):
prefix = prefix[0] if prefix[0] != "-" else ""
else:
- prefix = uri
+ prefix = urlsplit(uri)[2]
okhrefs = [prefix + i for i in okhrefs]
nohrefs = [prefix + i for i in nohrefs]
badhrefs = [prefix + i for i in badhrefs]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120829/b7774cfc/attachment-0001.html>
More information about the calendarserver-changes
mailing list