[CalendarServer-changes] [10177] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Dec 17 09:35:17 PST 2012


Revision: 10177
          http://trac.calendarserver.org//changeset/10177
Author:   cdaboo at apple.com
Date:     2012-12-17 09:35:17 -0800 (Mon, 17 Dec 2012)
Log Message:
-----------
Test for time stamps added to ATTENDEE properties on PARTSTAT changes.

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

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/1.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/10.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/11.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/2.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/3.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/4.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/5.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/6.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/7.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/8.ics
    CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/9.ics
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitpartstattimestamp.xml

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/1.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,34 @@
+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:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:event1 at ninevah.local
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/10.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/10.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/10.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2:;X-CALENDARSERVER-DTSTAMP=20080101T000000Z:$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SEQUENCE:1
+SUMMARY:event 1 - changed
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/11.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/11.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/11.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2:;X-CALENDARSERVER-DTSTAMP=20080101T000000Z:$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;SCHEDULE-STATUS=1.2;EMAIL=$email1::$cuaddrurn1:
+SEQUENCE:1
+SUMMARY:event 1 - changed
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/2.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,34 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/3.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/4.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,34 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+CREATED:20060101T151000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/5.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,34 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2:;X-CALENDARSERVER-DTSTAMP=20080101T000000Z:$cuaddrurn2:
+CREATED:20060101T151000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/6.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/6.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,34 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/7.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:$cuaddr2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1::$cuaddr1:
+SEQUENCE:1
+SUMMARY:event 1 - changed
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/8.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/8.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SEQUENCE:1
+SUMMARY:event 1 - changed
+END:VEVENT
+END:VCALENDAR

Added: CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/9.ics
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/implicit/partstattimestamp/9.ics	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:event1 at ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2:;X-CALENDARSERVER-DTSTAMP=20080101T000000Z:$cuaddrurn2:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;SCHEDULE-STATUS=1.2;EMAIL=$email1::$cuaddrurn1:
+SEQUENCE:1
+SUMMARY:event 1 - changed
+END:VEVENT
+END:VCALENDAR

Modified: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-12-17 17:33:34 UTC (rev 10176)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-12-17 17:35:17 UTC (rev 10177)
@@ -73,6 +73,7 @@
 		<feature>managed-attachments</feature>			<!-- CalDAV Managed Attachments -->
 		<feature>maskuid</feature>						<!-- maskuid extension -->
 		<feature>partitioning</feature>					<!-- Partitioned server -->
+		<feature>partstat-timestamp</feature>			<!-- Time stamps when PARTSTAT changes extension -->
 		<feature>private-comments</feature>				<!-- private-comments extension -->
 		<feature>private-events</feature>				<!-- private-events extension -->
 		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-12-17 17:33:34 UTC (rev 10176)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-12-17 17:35:17 UTC (rev 10177)
@@ -73,6 +73,7 @@
 		<feature>managed-attachments</feature>			<!-- CalDAV Managed Attachments -->
 		<feature>maskuid</feature>						<!-- maskuid extension -->
 		<!-- <feature>partitioning</feature> -->		<!-- Partitioned server -->
+		<feature>partstat-timestamp</feature>			<!-- Time stamps when PARTSTAT changes extension -->
 		<feature>private-comments</feature>				<!-- private-comments extension -->
 		<feature>private-events</feature>				<!-- private-events extension -->
 		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-12-17 17:33:34 UTC (rev 10176)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-12-17 17:35:17 UTC (rev 10177)
@@ -73,6 +73,7 @@
 		<feature>managed-attachments</feature>			<!-- CalDAV Managed Attachments -->
 		<feature>maskuid</feature>						<!-- maskuid extension -->
 		<!-- <feature>partitioning</feature> -->		<!-- Partitioned server -->
+		<feature>partstat-timestamp</feature>			<!-- Time stamps when PARTSTAT changes extension -->
 		<feature>private-comments</feature>				<!-- private-comments extension -->
 		<feature>private-events</feature>				<!-- private-events extension -->
 		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->

Added: CalDAVTester/trunk/scripts/tests/CalDAV/implicitpartstattimestamp.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitpartstattimestamp.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitpartstattimestamp.xml	2012-12-17 17:35:17 UTC (rev 10177)
@@ -0,0 +1,379 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2010 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 implicit scheduling with partstat timestamps added</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>implicit-scheduling</feature>
+		<feature>partstat-timestamp</feature>
+	</require-feature>
+
+	<start>
+		<request user="$userid1:" pswd="$pswd1:">
+			<method>GET</method>
+			<ruri>$calendarpath1:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>GET</method>
+			<ruri>$calendarpath2:/</ruri>
+		</request>
+		<request user="$userid1:" pswd="$pswd1:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath1:/</ruri>
+			<ruri>$inboxpath1:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$calendarpath2:/</ruri>
+			<ruri>$inboxpath2:/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name='Simple Changes' ignore='no'>
+		<test name='1'>
+			<description>Organizer invites Attendee</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/partstattimestamp/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Organizer checks 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/implicit/partstattimestamp/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/partstattimestamp/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee deletes Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Attendee -> Accepted</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PUT</method>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/partstattimestamp/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>Attendee has data with timestamp</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/partstattimestamp/5.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>!ATTENDEE:X-CALENDARSERVER-DTSTAMP</value>
+					</arg>
+				</verify>
+				<grabcalparameter>
+					<name>VEVENT/ATTENDEE/X-CALENDARSERVER-DTSTAMP$$cuaddrurn2:</name>
+					<variable>$dtstamp1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Organizer Inbox Item has no timestamp</description>
+			<request print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath1:/</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>X-CALENDARSERVER-DTSTAMP</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Organizer deletes Inbox Item</description>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Organizer data changed</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/partstattimestamp/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11'>
+			<description>Organizer changes Summary</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/partstattimestamp/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>Organizer checks 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/implicit/partstattimestamp/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='14'>
+			<description>Attendee has data timestamp unchanged</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/partstattimestamp/9.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>!ATTENDEE:X-CALENDARSERVER-DTSTAMP</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>X-CALENDARSERVER-DTSTAMP=$dtstamp1:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='15'>
+			<description>Attendee deletes Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='16'>
+			<description>Attendee -> Declined</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PUT</method>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/implicit/partstattimestamp/10.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='17'>
+			<description>Attendee has data timestamp changed</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/implicit/partstattimestamp/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+			</request>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELAY</method>
+				<ruri>2</ruri>
+			</request>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2012-12-17 17:33:34 UTC (rev 10176)
+++ CalDAVTester/trunk/src/caldavtest.py	2012-12-17 17:35:17 UTC (rev 10177)
@@ -630,6 +630,8 @@
         if req.grabcalprop:
             for propname, variable in req.grabcalprop:
                 # grab the property here
+                propname = self.manager.server_info.subs(propname)
+                propname = self.manager.server_info.extrasubs(propname)
                 propvalue = self.extractCalProperty(propname, respdata)
                 if propvalue == None:
                     result = False
@@ -640,6 +642,8 @@
         if req.grabcalparam:
             for paramname, variable in req.grabcalparam:
                 # grab the property here
+                paramname = self.manager.server_info.subs(paramname)
+                paramname = self.manager.server_info.extrasubs(paramname)
                 paramvalue = self.extractCalParameter(paramname, respdata)
                 if paramvalue == None:
                     result = False
@@ -822,7 +826,11 @@
         # e.g. VEVENT/ATTACH
         bits = parametername.split("/")
         propertyname = "/".join(bits[:-1])
-        pname = bits[-1]
+        param = bits[-1]
+        bits = param.split("$")
+        pname = bits[0]
+        if len(bits) > 1:
+            propertyname += "$%s" % (bits[1],)
 
         prop = self._calProperty(propertyname, respdata)
 
@@ -843,7 +851,10 @@
         # e.g. VEVENT/ATTACH
         bits = propertyname.split("/")
         components = bits[:-1]
-        pname = bits[-1]
+        prop = bits[-1]
+        bits = prop.split("$")
+        pname = bits[0]
+        pvalue = bits[1] if len(bits) > 1 else None
 
         while components:
             for c in cal.getComponents():
@@ -858,7 +869,14 @@
             return None
 
         props = cal.getProperties(pname)
-        return props[0] if props else None
+        if pvalue:
+            for prop in props:
+                if prop.getValue().getValue() == pvalue:
+                    return prop
+            else:
+                return None
+        else:
+            return props[0] if props else None
 
 
     def postgresInit(self):

Modified: CalDAVTester/trunk/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/calendarDataMatch.py	2012-12-17 17:33:34 UTC (rev 10176)
+++ CalDAVTester/trunk/verifiers/calendarDataMatch.py	2012-12-17 17:35:17 UTC (rev 10177)
@@ -33,6 +33,7 @@
         if "EMAIL parameter" not in manager.server_info.features:
             filters.append("ATTENDEE:EMAIL")
             filters.append("ORGANIZER:EMAIL")
+        filters.append("ATTENDEE:X-CALENDARSERVER-DTSTAMP")
         filters.append("CALSCALE")
         filters.append("PRODID")
         filters.append("DTSTAMP")
@@ -40,6 +41,11 @@
         filters.append("LAST-MODIFIED")
         filters.append("X-WR-CALNAME")
 
+        for afilter in tuple(filters):
+            if afilter[0] == "!" and afilter[1:] in filters:
+                filters.remove(afilter[1:])
+        filters = filter(lambda x: x[0] != "!", filters)
+
         # status code must be 200, 201, 207
         if response.status not in (200, 201, 207):
             return False, "        HTTP Status Code Wrong: %d" % (response.status,)
@@ -79,8 +85,8 @@
             for properties in component.getProperties().itervalues():
                 allProps.extend(properties)
             for property in allProps:
-                # Always reset DTSTAMP on this X- prop
-                if property.getName() == "X-CALENDARSERVER-ATTENDEE-COMMENT":
+                # Always reset DTSTAMP on these properties
+                if property.getName() in ("ATTENDEE", "X-CALENDARSERVER-ATTENDEE-COMMENT"):
                     if property.hasAttribute("X-CALENDARSERVER-DTSTAMP"):
                         property.replaceAttribute(PyCalendarAttribute("X-CALENDARSERVER-DTSTAMP", "20080101T000000Z"))
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20121217/5f93481e/attachment-0001.html>


More information about the calendarserver-changes mailing list