[CalendarServer-changes] [1799]
source_changes at macosforge.org
source_changes at macosforge.org
Mon Aug 20 09:43:24 PDT 2007
Revision: 1799
http://trac.macosforge.org/projects/calendarserver/changeset/1799
Author: cdaboo at apple.com
Date: 2007-08-20 09:43:23 -0700 (Mon, 20 Aug 2007)
Log Message:
-----------
Make sure we only verify calendars added to the property and not ones that were already there.
Modified Paths:
--------------
CalDAVTester/trunk/Resource/scheduleprops/3.xml
CalDAVTester/trunk/Resource/scheduleprops/4.xml
CalDAVTester/trunk/scripts/tests/scheduleprops.xml
CalendarServer/trunk/twistedcaldav/schedule.py
Added Paths:
-----------
CalDAVTester/trunk/Resource/scheduleprops/6.xml
CalDAVTester/trunk/Resource/scheduleprops/7.xml
CalDAVTester/trunk/Resource/scheduleprops/8.xml
Modified: CalDAVTester/trunk/Resource/scheduleprops/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/scheduleprops/3.xml 2007-08-20 14:53:04 UTC (rev 1798)
+++ CalDAVTester/trunk/Resource/scheduleprops/3.xml 2007-08-20 16:43:23 UTC (rev 1799)
@@ -2,7 +2,7 @@
<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:set>
<D:prop>
-<C:calendar-free-busy-set><D:href>/calendars/users/user01/calendar/</D:href></C:calendar-free-busy-set>
+<C:calendar-free-busy-set><D:href>$calendarpath1:/</D:href></C:calendar-free-busy-set>
</D:prop>
</D:set>
</D:propertyupdate>
Modified: CalDAVTester/trunk/Resource/scheduleprops/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/scheduleprops/4.xml 2007-08-20 14:53:04 UTC (rev 1798)
+++ CalDAVTester/trunk/Resource/scheduleprops/4.xml 2007-08-20 16:43:23 UTC (rev 1799)
@@ -2,7 +2,7 @@
<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:set>
<D:prop>
-<C:calendar-free-busy-set><D:href>/calendars/users/user01/calendar/</D:href><D:href>/calendars/users/user01/dropbox/</D:href></C:calendar-free-busy-set>
+<C:calendar-free-busy-set><D:href>$calendarpath1:/</D:href><D:href>/calendars/users/user01/dropbox/</D:href></C:calendar-free-busy-set>
</D:prop>
</D:set>
</D:propertyupdate>
Added: CalDAVTester/trunk/Resource/scheduleprops/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/scheduleprops/6.xml (rev 0)
+++ CalDAVTester/trunk/Resource/scheduleprops/6.xml 2007-08-20 16:43:23 UTC (rev 1799)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:set>
+<D:prop>
+<C:calendar-free-busy-set><D:href>$calendarpath1:</D:href><D:href>$pathprefix:/test2/</D:href></C:calendar-free-busy-set>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Added: CalDAVTester/trunk/Resource/scheduleprops/7.xml
===================================================================
--- CalDAVTester/trunk/Resource/scheduleprops/7.xml (rev 0)
+++ CalDAVTester/trunk/Resource/scheduleprops/7.xml 2007-08-20 16:43:23 UTC (rev 1799)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:set>
+<D:prop>
+<C:calendar-free-busy-set><D:href>$calendarpath1:</D:href><D:href>$pathprefix:/test1/</D:href><D:href>$pathprefix:/test2/</D:href></C:calendar-free-busy-set>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Added: CalDAVTester/trunk/Resource/scheduleprops/8.xml
===================================================================
--- CalDAVTester/trunk/Resource/scheduleprops/8.xml (rev 0)
+++ CalDAVTester/trunk/Resource/scheduleprops/8.xml 2007-08-20 16:43:23 UTC (rev 1799)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:set>
+<D:prop>
+<C:calendar-free-busy-set><D:href>$calendarpath1:</D:href><D:href>$pathprefix:/test1-bogus/</D:href><D:href>$pathprefix:/test2/</D:href></C:calendar-free-busy-set>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Modified: CalDAVTester/trunk/scripts/tests/scheduleprops.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/scheduleprops.xml 2007-08-20 14:53:04 UTC (rev 1798)
+++ CalDAVTester/trunk/scripts/tests/scheduleprops.xml 2007-08-20 16:43:23 UTC (rev 1799)
@@ -70,7 +70,7 @@
<callback>propfindItems</callback>
<arg>
<name>okprops</name>
- <value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set$<href xmlns="DAV:">/calendars/users/user01/calendar/</href></value>
+ <value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set$<href xmlns="DAV:">$calendarpath1:/</href></value>
</arg>
</verify>
</request>
@@ -147,6 +147,105 @@
</verify>
</request>
</test>
+ <test name='6' ignore='no'>
+ <description>Setup some calendars</description>
+ <request end-delete='yes' print-response="no">
+ <method>MKCALENDAR</method>
+ <ruri>$pathprefix:/test1/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request end-delete='yes' print-response="no">
+ <method>MKCALENDAR</method>
+ <ruri>$pathprefix:/test2/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='7' ignore='no'>
+ <description>PROPPATCH - valid</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$pathprefix:/$inbox:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/scheduleprops/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8' ignore='no'>
+ <description>Delete a calendar</description>
+ <request print-response="no">
+ <method>DELETE</method>
+ <ruri>$pathprefix:/test2/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='9' ignore='no'>
+ <description>PROPPATCH - valid new calendar, invalid existing</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$pathprefix:/$inbox:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/scheduleprops/7.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='10' ignore='no'>
+ <description>PROPPATCH - invalid new calendar, invalid existing</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$pathprefix:/$inbox:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/scheduleprops/8.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>badprops</name>
+ <value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11' ignore='no'>
+ <description>PROPPATCH valid calendar - reset it</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$pathprefix:/$inbox:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/scheduleprops/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
</test-suite>
<end/>
Modified: CalendarServer/trunk/twistedcaldav/schedule.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/schedule.py 2007-08-20 14:53:04 UTC (rev 1798)
+++ CalendarServer/trunk/twistedcaldav/schedule.py 2007-08-20 16:43:23 UTC (rev 1799)
@@ -138,7 +138,15 @@
))
elif property.qname() == (caldav_namespace, "calendar-free-busy-set"):
- for href in property.children:
+ # Verify that the calendars added in the PROPPATCH are valid. We do not check
+ # whether existing items in the property are still valid - only new ones.
+ new_calendars = set([str(href) for href in property.children])
+ if not self.hasDeadProperty(property):
+ old_calendars = set()
+ else:
+ old_calendars = set([str(href) for href in self.readDeadProperty(property).children])
+ added_calendars = new_calendars.difference(old_calendars)
+ for href in added_calendars:
cal = waitForDeferred(request.locateResource(str(href)))
yield cal
cal = cal.getResult()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070820/fa674d2e/attachment.html
More information about the calendarserver-changes
mailing list