[CalendarServer-changes] [10134] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Fri Dec 7 09:50:39 PST 2012


Revision: 10134
          http://trac.calendarserver.org//changeset/10134
Author:   cdaboo at apple.com
Date:     2012-12-07 09:50:39 -0800 (Fri, 07 Dec 2012)
Log Message:
-----------
Tests for standard timezone service protocol.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/
    CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/GB.ics
    CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/London.ics
    CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/New_York.ics
    CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml

Added: CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/GB.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/GB.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/GB.ics	2012-12-07 17:50:39 UTC (rev 10134)
@@ -0,0 +1,291 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//calendarserver.org//Zonal//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:GB
+X-LIC-LOCATION:GB
+BEGIN:STANDARD
+DTSTART:18471201T000000
+RDATE:18471201T000000
+TZNAME:S
+TZOFFSETFROM:-000115
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19160521T020000
+RDATE:19160521T020000
+RDATE:19170408T020000
+RDATE:19180324T020000
+RDATE:19190330T020000
+RDATE:19200328T020000
+RDATE:19210403T020000
+RDATE:19220326T020000
+RDATE:19230422T020000
+RDATE:19240413T020000
+RDATE:19270410T020000
+RDATE:19300413T020000
+RDATE:19330409T020000
+RDATE:19340422T020000
+RDATE:19350414T020000
+RDATE:19380410T020000
+RDATE:19390416T020000
+RDATE:19400225T020000
+RDATE:19460414T020000
+RDATE:19470316T020000
+RDATE:19480314T020000
+RDATE:19490403T020000
+RDATE:19530419T020000
+RDATE:19540411T020000
+RDATE:19570414T020000
+RDATE:19600410T020000
+RDATE:19680218T020000
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19161001T030000
+RDATE:19161001T030000
+RDATE:19170917T030000
+RDATE:19180930T030000
+RDATE:19190929T030000
+RDATE:19201025T030000
+RDATE:19211003T030000
+RDATE:19221008T030000
+RDATE:19391119T030000
+RDATE:19471102T030000
+RDATE:19481031T030000
+RDATE:19491030T030000
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19230916T030000
+RRULE:FREQ=YEARLY;UNTIL=19240921T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=9
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19250419T020000
+RRULE:FREQ=YEARLY;UNTIL=19260418T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19251004T030000
+RRULE:FREQ=YEARLY;UNTIL=19381002T020000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19280422T020000
+RRULE:FREQ=YEARLY;UNTIL=19290421T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19310419T020000
+RRULE:FREQ=YEARLY;UNTIL=19320417T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19360419T020000
+RRULE:FREQ=YEARLY;UNTIL=19370418T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19410504T020000
+RDATE:19410504T020000
+RDATE:19450402T020000
+RDATE:19470413T020000
+TZNAME:BDST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19410810T030000
+RRULE:FREQ=YEARLY;UNTIL=19430815T010000Z;BYDAY=SU;BYMONTHDAY=9,10,11,12,13
+ ,14,15;BYMONTH=8
+TZNAME:BST
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19420405T020000
+RRULE:FREQ=YEARLY;UNTIL=19440402T010000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=4
+TZNAME:BDST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19440917T030000
+RDATE:19440917T030000
+RDATE:19450715T030000
+RDATE:19470810T030000
+TZNAME:BST
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19451007T030000
+RRULE:FREQ=YEARLY;UNTIL=19461006T020000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19500416T020000
+RRULE:FREQ=YEARLY;UNTIL=19520420T020000Z;BYDAY=SU;BYMONTHDAY=14,15,16,17,1
+ 8,19,20;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19501022T030000
+RRULE:FREQ=YEARLY;UNTIL=19521026T020000Z;BYDAY=SU;BYMONTHDAY=21,22,23,24,2
+ 5,26,27;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19531004T030000
+RRULE:FREQ=YEARLY;UNTIL=19601002T020000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19550417T020000
+RRULE:FREQ=YEARLY;UNTIL=19560422T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19580420T020000
+RRULE:FREQ=YEARLY;UNTIL=19590419T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19610326T020000
+RRULE:FREQ=YEARLY;UNTIL=19630331T020000Z;BYDAY=-1SU;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19611029T030000
+RRULE:FREQ=YEARLY;UNTIL=19671029T020000Z;BYDAY=SU;BYMONTHDAY=23,24,25,26,2
+ 7,28,29;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19640322T020000
+RRULE:FREQ=YEARLY;UNTIL=19670319T020000Z;BYDAY=SU;BYMONTHDAY=19,20,21,22,2
+ 3,24,25;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19681027T000000
+RDATE:19681027T000000
+TZNAME:BST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0100
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19711031T030000
+RDATE:19711031T030000
+TZNAME:S
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19720319T020000
+RRULE:FREQ=YEARLY;UNTIL=19800316T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19721029T030000
+RRULE:FREQ=YEARLY;UNTIL=19801026T020000Z;BYDAY=SU;BYMONTHDAY=23,24,25,26,2
+ 7,28,29;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19810329T010000
+RRULE:FREQ=YEARLY;UNTIL=19950326T010000Z;BYDAY=-1SU;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19811025T020000
+RRULE:FREQ=YEARLY;UNTIL=19891029T010000Z;BYDAY=SU;BYMONTHDAY=23,24,25,26,2
+ 7,28,29;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19901028T020000
+RRULE:FREQ=YEARLY;UNTIL=19951022T010000Z;BYDAY=4SU;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19960101T000000
+RDATE:19960101T000000
+TZNAME:GMT/BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19960331T010000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
+TZNAME:GMT/BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19961027T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:GMT/BST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+END:VTIMEZONE
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/London.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/London.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/London.ics	2012-12-07 17:50:39 UTC (rev 10134)
@@ -0,0 +1,291 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//calendarserver.org//Zonal//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:Europe/London
+X-LIC-LOCATION:Europe/London
+BEGIN:STANDARD
+DTSTART:18471201T000000
+RDATE:18471201T000000
+TZNAME:S
+TZOFFSETFROM:-000115
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19160521T020000
+RDATE:19160521T020000
+RDATE:19170408T020000
+RDATE:19180324T020000
+RDATE:19190330T020000
+RDATE:19200328T020000
+RDATE:19210403T020000
+RDATE:19220326T020000
+RDATE:19230422T020000
+RDATE:19240413T020000
+RDATE:19270410T020000
+RDATE:19300413T020000
+RDATE:19330409T020000
+RDATE:19340422T020000
+RDATE:19350414T020000
+RDATE:19380410T020000
+RDATE:19390416T020000
+RDATE:19400225T020000
+RDATE:19460414T020000
+RDATE:19470316T020000
+RDATE:19480314T020000
+RDATE:19490403T020000
+RDATE:19530419T020000
+RDATE:19540411T020000
+RDATE:19570414T020000
+RDATE:19600410T020000
+RDATE:19680218T020000
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19161001T030000
+RDATE:19161001T030000
+RDATE:19170917T030000
+RDATE:19180930T030000
+RDATE:19190929T030000
+RDATE:19201025T030000
+RDATE:19211003T030000
+RDATE:19221008T030000
+RDATE:19391119T030000
+RDATE:19471102T030000
+RDATE:19481031T030000
+RDATE:19491030T030000
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19230916T030000
+RRULE:FREQ=YEARLY;UNTIL=19240921T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=9
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19250419T020000
+RRULE:FREQ=YEARLY;UNTIL=19260418T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19251004T030000
+RRULE:FREQ=YEARLY;UNTIL=19381002T020000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19280422T020000
+RRULE:FREQ=YEARLY;UNTIL=19290421T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19310419T020000
+RRULE:FREQ=YEARLY;UNTIL=19320417T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19360419T020000
+RRULE:FREQ=YEARLY;UNTIL=19370418T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19410504T020000
+RDATE:19410504T020000
+RDATE:19450402T020000
+RDATE:19470413T020000
+TZNAME:BDST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19410810T030000
+RRULE:FREQ=YEARLY;UNTIL=19430815T010000Z;BYDAY=SU;BYMONTHDAY=9,10,11,12,13
+ ,14,15;BYMONTH=8
+TZNAME:BST
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19420405T020000
+RRULE:FREQ=YEARLY;UNTIL=19440402T010000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=4
+TZNAME:BDST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19440917T030000
+RDATE:19440917T030000
+RDATE:19450715T030000
+RDATE:19470810T030000
+TZNAME:BST
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19451007T030000
+RRULE:FREQ=YEARLY;UNTIL=19461006T020000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19500416T020000
+RRULE:FREQ=YEARLY;UNTIL=19520420T020000Z;BYDAY=SU;BYMONTHDAY=14,15,16,17,1
+ 8,19,20;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19501022T030000
+RRULE:FREQ=YEARLY;UNTIL=19521026T020000Z;BYDAY=SU;BYMONTHDAY=21,22,23,24,2
+ 5,26,27;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19531004T030000
+RRULE:FREQ=YEARLY;UNTIL=19601002T020000Z;BYDAY=SU;BYMONTHDAY=2,3,4,5,6,7,8
+ ;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19550417T020000
+RRULE:FREQ=YEARLY;UNTIL=19560422T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19580420T020000
+RRULE:FREQ=YEARLY;UNTIL=19590419T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=4
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19610326T020000
+RRULE:FREQ=YEARLY;UNTIL=19630331T020000Z;BYDAY=-1SU;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19611029T030000
+RRULE:FREQ=YEARLY;UNTIL=19671029T020000Z;BYDAY=SU;BYMONTHDAY=23,24,25,26,2
+ 7,28,29;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19640322T020000
+RRULE:FREQ=YEARLY;UNTIL=19670319T020000Z;BYDAY=SU;BYMONTHDAY=19,20,21,22,2
+ 3,24,25;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19681027T000000
+RDATE:19681027T000000
+TZNAME:BST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0100
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19711031T030000
+RDATE:19711031T030000
+TZNAME:S
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19720319T020000
+RRULE:FREQ=YEARLY;UNTIL=19800316T020000Z;BYDAY=SU;BYMONTHDAY=16,17,18,19,2
+ 0,21,22;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19721029T030000
+RRULE:FREQ=YEARLY;UNTIL=19801026T020000Z;BYDAY=SU;BYMONTHDAY=23,24,25,26,2
+ 7,28,29;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19810329T010000
+RRULE:FREQ=YEARLY;UNTIL=19950326T010000Z;BYDAY=-1SU;BYMONTH=3
+TZNAME:BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19811025T020000
+RRULE:FREQ=YEARLY;UNTIL=19891029T010000Z;BYDAY=SU;BYMONTHDAY=23,24,25,26,2
+ 7,28,29;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19901028T020000
+RRULE:FREQ=YEARLY;UNTIL=19951022T010000Z;BYDAY=4SU;BYMONTH=10
+TZNAME:GMT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19960101T000000
+RDATE:19960101T000000
+TZNAME:GMT/BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0000
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19960331T010000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
+TZNAME:GMT/BST
+TZOFFSETFROM:+0000
+TZOFFSETTO:+0100
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19961027T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:GMT/BST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0000
+END:STANDARD
+END:VTIMEZONE
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/New_York.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/New_York.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/timezonestdservice/New_York.ics	2012-12-07 17:50:39 UTC (rev 10134)
@@ -0,0 +1,148 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//calendarserver.org//Zonal//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+TZID:America/New_York
+X-LIC-LOCATION:America/New_York
+BEGIN:STANDARD
+DTSTART:18831118T120358
+RDATE:18831118T120358
+TZNAME:EST
+TZOFFSETFROM:-045602
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19180331T020000
+RRULE:FREQ=YEARLY;UNTIL=19190330T070000Z;BYDAY=-1SU;BYMONTH=3
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19181027T020000
+RRULE:FREQ=YEARLY;UNTIL=19191026T060000Z;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19200101T000000
+RDATE:19200101T000000
+RDATE:19420101T000000
+RDATE:19460101T000000
+RDATE:19670101T000000
+TZNAME:EST
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19200328T020000
+RDATE:19200328T020000
+RDATE:19740106T020000
+RDATE:19750223T020000
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19201031T020000
+RDATE:19201031T020000
+RDATE:19450930T020000
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19210424T020000
+RRULE:FREQ=YEARLY;UNTIL=19410427T070000Z;BYDAY=-1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19210925T020000
+RRULE:FREQ=YEARLY;UNTIL=19410928T060000Z;BYDAY=-1SU;BYMONTH=9
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19420209T020000
+RDATE:19420209T020000
+TZNAME:EWT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19450814T190000
+RDATE:19450814T190000
+TZNAME:EPT
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19460428T020000
+RRULE:FREQ=YEARLY;UNTIL=19660424T070000Z;BYDAY=-1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19460929T020000
+RRULE:FREQ=YEARLY;UNTIL=19540926T060000Z;BYDAY=-1SU;BYMONTH=9
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:STANDARD
+DTSTART:19551030T020000
+RRULE:FREQ=YEARLY;UNTIL=19661030T060000Z;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19670430T020000
+RRULE:FREQ=YEARLY;UNTIL=19730429T070000Z;BYDAY=-1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:19671029T020000
+RRULE:FREQ=YEARLY;UNTIL=20061029T060000Z;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:19760425T020000
+RRULE:FREQ=YEARLY;UNTIL=19860427T070000Z;BYDAY=-1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:19870405T020000
+RRULE:FREQ=YEARLY;UNTIL=20060402T070000Z;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:DAYLIGHT
+DTSTART:20070311T020000
+RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20071104T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+END:VCALENDAR

Modified: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-12-07 17:50:06 UTC (rev 10133)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-12-07 17:50:39 UTC (rev 10134)
@@ -85,7 +85,8 @@
 		<feature>supported-component-sets-one</feature>	<!-- Only single component calendars allowed to be created -->
 		<feature>timerange-low-limit</feature>			<!-- Time-range only valid one year back -->
 		<feature>timerange-high-limit</feature>			<!-- Time-range only valid 5 years ahead -->
-		<feature>timezone-service</feature>				<!-- Timezone service extension -->
+		<feature>timezone-service</feature>				<!-- Timezone service extension for Wiki-->
+		<feature>timezone-std-service</feature>			<!-- Timezone standard service extension -->
 		<feature>vavailability</feature>				<!-- VAVAILABILITY on inbox -->
 		<feature>webcal</feature>						<!-- Internet calendar subscription via GET on calendar collection -->
 
@@ -279,6 +280,12 @@
 			<value>$root:timezones</value>
 		</substitution>
 
+		<!-- timezone std service-->
+		<substitution>
+			<key>$timezonestdservice:</key>
+			<value>$root:stdtimezones</value>
+		</substitution>
+
 		<!-- relative path to calendars collection-->
 		<substitution>
 			<key>$addressbooks:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-12-07 17:50:06 UTC (rev 10133)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-12-07 17:50:39 UTC (rev 10134)
@@ -85,7 +85,8 @@
 		<feature>supported-component-sets-one</feature>	<!-- Only single component calendars allowed to be created -->
 		<feature>timerange-low-limit</feature>			<!-- Time-range only valid one year back -->
 		<feature>timerange-high-limit</feature>			<!-- Time-range only valid 5 years ahead -->
-		<feature>timezone-service</feature>				<!-- Timezone service extension -->
+		<feature>timezone-service</feature>				<!-- Timezone service extension for Wiki-->
+		<feature>timezone-std-service</feature>			<!-- Timezone standard service extension -->
 		<feature>vavailability</feature>				<!-- VAVAILABILITY on inbox -->
 		<feature>webcal</feature>						<!-- Internet calendar subscription via GET on calendar collection -->
 
@@ -279,6 +280,12 @@
 			<value>$root:timezones</value>
 		</substitution>
 
+		<!-- timezone std service-->
+		<substitution>
+			<key>$timezonestdservice:</key>
+			<value>$root:stdtimezones</value>
+		</substitution>
+
 		<!-- relative path to calendars collection-->
 		<substitution>
 			<key>$addressbooks:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-12-07 17:50:06 UTC (rev 10133)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-12-07 17:50:39 UTC (rev 10134)
@@ -85,7 +85,8 @@
 		<feature>supported-component-sets-one</feature>	<!-- Only single component calendars allowed to be created -->
 		<feature>timerange-low-limit</feature>			<!-- Time-range only valid one year back -->
 		<feature>timerange-high-limit</feature>			<!-- Time-range only valid 5 years ahead -->
-		<feature>timezone-service</feature>				<!-- Timezone service extension -->
+		<feature>timezone-service</feature>				<!-- Timezone service extension for Wiki-->
+		<feature>timezone-std-service</feature>			<!-- Timezone standard service extension -->
 		<feature>vavailability</feature>				<!-- VAVAILABILITY on inbox -->
 		<feature>webcal</feature>						<!-- Internet calendar subscription via GET on calendar collection -->
 
@@ -279,6 +280,12 @@
 			<value>$root:timezones</value>
 		</substitution>
 
+		<!-- timezone std service-->
+		<substitution>
+			<key>$timezonestdservice:</key>
+			<value>$root:stdtimezones</value>
+		</substitution>
+
 		<!-- relative path to calendars collection-->
 		<substitution>
 			<key>$addressbooks:</key>

Added: CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml	2012-12-07 17:50:39 UTC (rev 10134)
@@ -0,0 +1,975 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ 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.
+ 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 standard timezone service</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>timezone-std-service</feature>
+	</require-feature>
+
+	<start/>
+	
+	<test-suite name='Non-query GET/POST'>
+		<test name='1'>
+			<description>GET on well-known resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>/.well-known/timezone</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>301</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Non-query GET/POST'>
+		<test name='1'>
+			<description>GET on resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND on resource</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$timezonestdservice:</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>POST on resource</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>PUT on resource - fails</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$timezonestdservice:</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/recurrenceput/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>DELETE on resource - fails</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$timezonestdservice:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Query bogus parameters'>
+		<test name='1'>
+			<description>GET on resource - invalid parameter</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?query=true</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-action</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST on resource - invalid parameter</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?query=true</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-action</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET on resource - invalid action</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=true</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-action</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST on resource - invalid action</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=true</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-action</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>GET on resource - multiple actions</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=list&amp;action=list</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-action</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST on resource - multiple methods</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=list&amp;action=list</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-action</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Query method=list'>
+		<test name='1'>
+			<description>GET on resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=list</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/timezones/./tzid~$America/New_York</value>
+						<value>/timezones/./tzid~$America/Phoenix</value>
+						<value>/timezones/./aliases/.~$GB</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST on resource</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=list</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/timezones/./tzid~$America/New_York</value>
+						<value>/timezones/./tzid~$America/Phoenix</value>
+						<value>/timezones/./aliases/.~$GB</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Invalid query action=get'>
+		<test name='1'>
+			<description>GET on resource - no tzid</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=get</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST on resource - no tzid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=get</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET on resource - multiple tzid</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=America/New_York&amp;tzid=America/Los_Angeles</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST on resource - multiple tzid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=America/New_York&amp;tzid=America/Los_Angeles</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>GET on resource - invalid tzid</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=America/Pittsburgh</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$missing-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST on resource - invalid tzid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=America/Pittsburgh</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$missing-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Query action=get'>
+		<test name='1'>
+			<description>GET on resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=America/New_York</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/timezonestdservice/New_York.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST on resource</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=America/New_York</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/timezonestdservice/New_York.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET on resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=Europe/London</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/timezonestdservice/London.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST on resource</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=Europe/London</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/timezonestdservice/London.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>GET on resource</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=GB</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/timezonestdservice/GB.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST on resource</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=get&amp;tzid=GB</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/timezonestdservice/GB.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Invalid query action=expand'>
+		<test name='1'>
+			<description>GET on resource - no tzid</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST on resource - no tzid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET on resource - multiple tzid</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;tzid=America/Los_Angeles</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST on resource - multiple tzid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;tzid=America/Los_Angeles</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>GET on resource - invalid tzid</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/Pittsburgh</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$missing-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST on resource - invalid tzid</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/Pittsburgh</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$missing-tzid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>GET on resource - too many start</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;start=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-start</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>POST on resource - too many start</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;start=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-start</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>GET on resource - invalid start</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=2007</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-start</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>POST on resource - invalid start</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=2007</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-start</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11'>
+			<description>GET on resource - too many end</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20090101&amp;end=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>POST on resource - too many end</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20090101&amp;end=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13'>
+			<description>GET on resource - invalid end</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=2009</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='14'>
+			<description>POST on resource - invalid end</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=2009</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='15'>
+			<description>GET on resource - start > end</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20090101&amp;end=20080101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='16'>
+			<description>POST on resource - start > end</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20090101&amp;end=20080101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='17'>
+			<description>GET on resource - start == end</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20080101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='18'>
+			<description>POST on resource - start == end</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20080101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+					<arg>
+						<name>exists</name>
+						<value>/error~$invalid-end</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name="Expand">
+		<test name='1'>
+			<description>GET on resource - simple range</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/observances/./onset~$2008-01-01T00:00:00</value>
+						<value>/observances/./onset~$2008-03-09T02:00:00</value>
+						<value>/observances/./onset~$2008-11-02T02:00:00</value>
+						<value>/observances/./utc-offset-from~$-18000</value>
+						<value>/observances/./utc-offset-to~$-18000</value>
+						<value>/observances/./utc-offset-from~$-14400</value>
+						<value>/observances/./utc-offset-to~$-14400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST on resource - simple range</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/observances/./onset~$2008-01-01T00:00:00</value>
+						<value>/observances/./onset~$2008-03-09T02:00:00</value>
+						<value>/observances/./onset~$2008-11-02T02:00:00</value>
+						<value>/observances/./utc-offset-from~$-18000</value>
+						<value>/observances/./utc-offset-to~$-18000</value>
+						<value>/observances/./utc-offset-from~$-14400</value>
+						<value>/observances/./utc-offset-to~$-14400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>GET on resource - complex range</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20060101&amp;end=20080101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/observances/./onset~$2006-01-01T00:00:00</value>
+						<value>/observances/./onset~$2006-04-02T02:00:00</value>
+						<value>/observances/./onset~$2006-10-29T02:00:00</value>
+						<value>/observances/./onset~$2007-03-11T02:00:00</value>
+						<value>/observances/./onset~$2007-11-04T02:00:00</value>
+						<value>/observances/./utc-offset-from~$-18000</value>
+						<value>/observances/./utc-offset-to~$-18000</value>
+						<value>/observances/./utc-offset-from~$-14400</value>
+						<value>/observances/./utc-offset-to~$-14400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST on resource - complex range</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/New_York&amp;start=20060101&amp;end=20080101</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/observances/./onset~$2006-01-01T00:00:00</value>
+						<value>/observances/./onset~$2006-04-02T02:00:00</value>
+						<value>/observances/./onset~$2006-10-29T02:00:00</value>
+						<value>/observances/./onset~$2007-03-11T02:00:00</value>
+						<value>/observances/./onset~$2007-11-04T02:00:00</value>
+						<value>/observances/./utc-offset-from~$-18000</value>
+						<value>/observances/./utc-offset-to~$-18000</value>
+						<value>/observances/./utc-offset-from~$-14400</value>
+						<value>/observances/./utc-offset-to~$-14400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>GET on resource - no DST</description>
+			<request>
+				<method>GET</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/Phoenix&amp;start=20060101&amp;end=20090101</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>2006-01-01T00:00:00</value>
+						<value>-25200</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>2007</value>
+						<value>2008</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST on resource - start == end</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:?action=expand&amp;tzid=America/Phoenix&amp;start=20060101&amp;end=20090101</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>2006-01-01T00:00:00</value>
+						<value>-25200</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>2007</value>
+						<value>2008</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>POST on resource trailing slash - simple range</description>
+			<request>
+				<method>POST</method>
+				<ruri>$timezonestdservice:/?action=expand&amp;tzid=America/New_York&amp;start=20080101&amp;end=20090101</ruri>
+				<verify>
+					<callback>jsonPointerMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>/dtstamp</value>
+						<value>/observances/./onset~$2008-01-01T00:00:00</value>
+						<value>/observances/./onset~$2008-03-09T02:00:00</value>
+						<value>/observances/./onset~$2008-11-02T02:00:00</value>
+						<value>/observances/./utc-offset-from~$-18000</value>
+						<value>/observances/./utc-offset-to~$-18000</value>
+						<value>/observances/./utc-offset-from~$-14400</value>
+						<value>/observances/./utc-offset-to~$-14400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20121207/b75da47a/attachment-0001.html>


More information about the calendarserver-changes mailing list