[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$&lt;href xmlns="DAV:"&gt;/calendars/users/user01/calendar/&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set$&lt;href xmlns="DAV:"&gt;$calendarpath1:/&lt;/href&gt;</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