[CalendarServer-changes] [11854] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:20:40 PDT 2014


Revision: 11854
          http://trac.calendarserver.org//changeset/11854
Author:   cdaboo at apple.com
Date:     2013-10-30 17:42:10 -0700 (Wed, 30 Oct 2013)
Log Message:
-----------
Support timezones-by-reference behavior in the server.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml
    CalDAVTester/trunk/verifiers/calendarDataMatch.py

Modified: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2013-10-31 00:42:10 UTC (rev 11854)
@@ -94,7 +94,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 for Wiki-->
+		<feature>timezones-by-reference</feature>		<!-- Timezones by reference enabled -->
+		<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 -->

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2013-10-31 00:42:10 UTC (rev 11854)
@@ -94,7 +94,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 for Wiki-->
+		<feature>timezones-by-reference</feature>		<!-- Timezones by reference enabled -->
+		<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 -->

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2013-10-31 00:42:10 UTC (rev 11854)
@@ -94,7 +94,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 for Wiki-->
+		<feature>timezones-by-reference</feature>		<!-- Timezones by reference enabled -->
+		<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 -->

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml	2013-10-31 00:42:10 UTC (rev 11854)
@@ -333,6 +333,9 @@
 			</request>
 		</test>
 		<test name='10'>
+			<exclude-feature>
+				<feature>timezones-by-reference</feature>
+			</exclude-feature>
 			<description>PUT without timezone</description>
 			<request print-response='no'>
 				<method>PUT</method>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml	2013-10-31 00:42:10 UTC (rev 11854)
@@ -376,6 +376,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezoneservice/New_York.ics</value>
 					</arg>
@@ -393,6 +397,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezoneservice/New_York.ics</value>
 					</arg>
@@ -410,6 +418,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezoneservice/London.ics</value>
 					</arg>
@@ -427,6 +439,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezoneservice/London.ics</value>
 					</arg>
@@ -444,6 +460,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezoneservice/GB.ics</value>
 					</arg>
@@ -461,6 +481,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezoneservice/GB.ics</value>
 					</arg>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/timezonestdservice.xml	2013-10-31 00:42:10 UTC (rev 11854)
@@ -389,6 +389,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezonestdservice/New_York.ics</value>
 					</arg>
@@ -406,6 +410,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezonestdservice/New_York.ics</value>
 					</arg>
@@ -423,6 +431,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezonestdservice/London.ics</value>
 					</arg>
@@ -440,6 +452,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezonestdservice/London.ics</value>
 					</arg>
@@ -457,6 +473,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezonestdservice/GB.ics</value>
 					</arg>
@@ -474,6 +494,10 @@
 				<verify>
 					<callback>calendarDataMatch</callback>
 					<arg>
+						<name>doTimezones</name>
+						<value>true</value>
+					</arg>
+					<arg>
 						<name>filepath</name>
 						<value>Resource/CalDAV/timezonestdservice/GB.ics</value>
 					</arg>

Modified: CalDAVTester/trunk/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/calendarDataMatch.py	2013-10-30 21:49:19 UTC (rev 11853)
+++ CalDAVTester/trunk/verifiers/calendarDataMatch.py	2013-10-31 00:42:10 UTC (rev 11854)
@@ -30,6 +30,7 @@
         caldata = args.get("data", [])
         filters = args.get("filter", [])
         statusCode = args.get("status", ["200", "201", "207"])
+        doTimezones = args.get("doTimezones", None)
 
         if "EMAIL parameter" not in manager.server_info.features:
             filters.append("ATTENDEE:EMAIL")
@@ -47,6 +48,11 @@
                 filters.remove(afilter[1:])
         filters = filter(lambda x: x[0] != "!", filters)
 
+        if doTimezones is None:
+            doTimezones = "timezones-by-reference" not in manager.server_info.features
+        else:
+            doTimezones = doTimezones == "true"
+
         # status code must be 200, 201, 207 or explicitly specified code
         if str(response.status) not in statusCode:
             return False, "        HTTP Status Code Wrong: %d" % (response.status,)
@@ -79,6 +85,11 @@
 
         def removePropertiesParameters(component):
 
+            if not doTimezones:
+                for subcomponent in tuple(component.getComponents()):
+                    if subcomponent.getType() == "VTIMEZONE":
+                        component.removeComponent(subcomponent)
+
             for subcomponent in component.getComponents():
                 removePropertiesParameters(subcomponent)
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/ce4db7cd/attachment.html>


More information about the calendarserver-changes mailing list