[CalendarServer-changes] [264] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Oct 10 10:08:45 PDT 2006


Revision: 264
          http://trac.macosforge.org/projects/calendarserver/changeset/264
Author:   cdaboo at apple.com
Date:     2006-10-10 10:08:43 -0700 (Tue, 10 Oct 2006)

Log Message:
-----------
Major file re-org. Initial commit of performance testing tool.

Modified Paths:
--------------
    CalDAVTester/trunk/src/account.py
    CalDAVTester/trunk/src/populate.py
    CalDAVTester/trunk/src/test.py
    CalDAVTester/trunk/src/testsuite.py
    CalDAVTester/trunk/testcaldav.py

Added Paths:
-----------
    CalDAVTester/trunk/performer.py
    CalDAVTester/trunk/scripts/
    CalDAVTester/trunk/scripts/performance/
    CalDAVTester/trunk/scripts/performance/perfinfo.dtd
    CalDAVTester/trunk/scripts/performance/perfinfo.xml
    CalDAVTester/trunk/scripts/server1/
    CalDAVTester/trunk/scripts/server1/serverinfo.dtd
    CalDAVTester/trunk/scripts/server1/serverinfo.xml
    CalDAVTester/trunk/scripts/server1/sslserverinfo.xml
    CalDAVTester/trunk/scripts/tests1/
    CalDAVTester/trunk/scripts/tests1/acl.xml
    CalDAVTester/trunk/scripts/tests1/acldisabled.xml
    CalDAVTester/trunk/scripts/tests1/aclreports.xml
    CalDAVTester/trunk/scripts/tests1/attachments.xml
    CalDAVTester/trunk/scripts/tests1/caldavIOP.xml
    CalDAVTester/trunk/scripts/tests1/copymove.xml
    CalDAVTester/trunk/scripts/tests1/delete.xml
    CalDAVTester/trunk/scripts/tests1/depthreports.xml
    CalDAVTester/trunk/scripts/tests1/depthreportsacl.xml
    CalDAVTester/trunk/scripts/tests1/encodedURIs.xml
    CalDAVTester/trunk/scripts/tests1/errors.xml
    CalDAVTester/trunk/scripts/tests1/floating.xml
    CalDAVTester/trunk/scripts/tests1/mkcalendar.xml
    CalDAVTester/trunk/scripts/tests1/populate.xml
    CalDAVTester/trunk/scripts/tests1/propfind.xml
    CalDAVTester/trunk/scripts/tests1/proppatch.xml
    CalDAVTester/trunk/scripts/tests1/put.xml
    CalDAVTester/trunk/scripts/tests1/quota.xml
    CalDAVTester/trunk/scripts/tests1/recurrenceput.xml
    CalDAVTester/trunk/scripts/tests1/reports.xml
    CalDAVTester/trunk/scripts/tests1/schedule.xml
    CalDAVTester/trunk/scripts/tests1/scheduleacl.xml
    CalDAVTester/trunk/scripts/tests1/scheduleauto.xml
    CalDAVTester/trunk/scripts/tests1/schedulenormal.xml
    CalDAVTester/trunk/scripts/tests1/schedulepost.xml
    CalDAVTester/trunk/scripts/tests1/schedulepostacl.xml
    CalDAVTester/trunk/scripts/tests1/schedulepostauto.xml
    CalDAVTester/trunk/scripts/tests1/schedulepostnormal.xml
    CalDAVTester/trunk/scripts/tests1/scheduleprops.xml
    CalDAVTester/trunk/src/
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/manager.py
    CalDAVTester/trunk/src/multithread.py
    CalDAVTester/trunk/src/perfinfo.py
    CalDAVTester/trunk/src/request.py
    CalDAVTester/trunk/src/serverinfo.py
    CalDAVTester/trunk/src/xmlDefs.py

Removed Paths:
-------------
    CalDAVTester/trunk/acl.xml
    CalDAVTester/trunk/acldisabled.xml
    CalDAVTester/trunk/aclreports.xml
    CalDAVTester/trunk/attachments.xml
    CalDAVTester/trunk/caldavIOP.xml
    CalDAVTester/trunk/caldavtest.dtd
    CalDAVTester/trunk/copymove.xml
    CalDAVTester/trunk/delete.xml
    CalDAVTester/trunk/depthreports.xml
    CalDAVTester/trunk/depthreportsacl.xml
    CalDAVTester/trunk/encodedURIs.xml
    CalDAVTester/trunk/errors.xml
    CalDAVTester/trunk/floating.xml
    CalDAVTester/trunk/mkcalendar.xml
    CalDAVTester/trunk/populate.xml
    CalDAVTester/trunk/propfind.xml
    CalDAVTester/trunk/proppatch.xml
    CalDAVTester/trunk/put.xml
    CalDAVTester/trunk/quota.xml
    CalDAVTester/trunk/recurrenceput.xml
    CalDAVTester/trunk/reports.xml
    CalDAVTester/trunk/schedule.xml
    CalDAVTester/trunk/scheduleacl.xml
    CalDAVTester/trunk/scheduleauto.xml
    CalDAVTester/trunk/schedulenormal.xml
    CalDAVTester/trunk/schedulepost.xml
    CalDAVTester/trunk/schedulepostacl.xml
    CalDAVTester/trunk/schedulepostauto.xml
    CalDAVTester/trunk/schedulepostnormal.xml
    CalDAVTester/trunk/scheduleprops.xml
    CalDAVTester/trunk/serverinfo.dtd
    CalDAVTester/trunk/serverinfo.xml
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/manager.py
    CalDAVTester/trunk/src/request.py
    CalDAVTester/trunk/src/serverinfo.py
    CalDAVTester/trunk/src/xmlDefs.py
    CalDAVTester/trunk/sslserverinfo.xml

Deleted: CalDAVTester/trunk/acl.xml
===================================================================
--- CalDAVTester/trunk/acl.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/acl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,1009 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test ACLs on the server</description>
-
-	<start>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/1.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/2.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1todo.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/todo/1.txt</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix2:/visibletouser01/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>ACL</method>
-			<ruri>$pathprefix2:/visibletouser01/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acls/3.xml</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/visibletouser01/hidden1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/acls/16.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>ACL</method>
-			<ruri>$pathprefix2:/visibletouser01/hidden1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acls/20.xml</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/visibletouser01/visible2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/acls/17.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix2:/notvisibletouser01/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>ACL</method>
-			<ruri>$pathprefix2:/notvisibletouser01/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acls/4.xml</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/notvisibletouser01/hidden1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/acls/16.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix2:/writeabletouser01/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>ACL</method>
-			<ruri>$pathprefix2:/writeabletouser01/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acls/13.xml</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix2:/calreadtoauth/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>ACL</method>
-			<ruri>$pathprefix2:/calreadtoauth/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acls/18.xml</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calreadtoauth/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/acls/16.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>MKCOL</method>
-			<ruri>$pathprefix2:/colreadtoauth/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>ACL</method>
-			<ruri>$pathprefix2:/colreadtoauth/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acls/18.xml</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/colreadtoauth/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/acls/16.ics</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='Read ACLs' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>PROPFIND existing VEVENT</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>/calendars/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:getcontentlength</value>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:resourcetype</value>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>DAV:supported-privilege-set</value>
-						<value>DAV:current-user-privilege-set</value>
-						<value>DAV:acl</value>
-						<value>DAV:acl-restrictions</value>
-						<value>DAV:inherited-acl-set</value>
-						<value>DAV:principal-collection-set</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:owner</value>
-						<value>DAV:group</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PROPFIND without DAV:read-acl or DAV:read-current-user-privilege-set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>/calendars/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:getcontentlength</value>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:resourcetype</value>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>DAV:supported-privilege-set</value>
-						<value>DAV:acl-restrictions</value>
-						<value>DAV:inherited-acl-set</value>
-						<value>DAV:principal-collection-set</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:current-user-privilege-set</value>
-						<value>DAV:acl</value>
-						<value>DAV:owner</value>
-						<value>DAV:group</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Check for schedule privilege on iTIP Inbox</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>aclItems</callback>
-					<arg>
-						<name>granted</name>
-						<value>DAV:read</value>
-						<value>DAV:write</value>
-						<value>DAV:write-acl</value>
-						<value>DAV:read-current-user-privilege-set</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Check for schedule privilege on iTIP Outbox</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>aclItems</callback>
-					<arg>
-						<name>granted</name>
-						<value>DAV:read</value>
-						<value>DAV:write</value>
-						<value>DAV:write-acl</value>
-						<value>DAV:read-current-user-privilege-set</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Check for lack of schedule privilege on regular calendar</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>aclItems</callback>
-					<arg>
-						<name>granted</name>
-						<value>DAV:read</value>
-						<value>DAV:write</value>
-						<value>DAV:write-acl</value>
-						<value>DAV:read-current-user-privilege-set</value>
-					</arg>
-					<arg>
-						<name>denied</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='PROPFIND interaction with ACL' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>PROPFIND all calendars</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix2:/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value/>
-						<value>visibletouser01/</value>
-						<value>writeabletouser01/</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PROPFIND: prinicpal-collection-set test</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/14.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:principal-collection-set$&lt;href>/principals/users/&lt;/href></value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='ACL method preconditions' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Failure when DAV:write-acl not granted</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>$pathprefix2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>DAV:no-ace-conflict precondition failure - attempt to set protected ACE</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/5.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:no-ace-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>DAV:no-ace-conflict precondition failure - attempt to set inherited ACE</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:no-ace-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>DAV:no-protected-ace-conflict precondition failure - attempt to change protected ACE</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/7.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:no-protected-ace-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<!-- This error is no longer generated by the server.
-		<test name='5' ignore='no'>
-			<description>DAV:no-inherited-ace-conflict precondition failure - attempt to change inherited ACE</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/8.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:no-inherited-ace-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		-->
-		<test name='6' ignore='no'>
-			<description>DAV:deny-before-grant precondition failure - attempt to deny before grant a set of ACEs</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/9.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:deny-before-grant</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>DAV:not-supported-privilege precondition failure - attempt to use unsupported privilege</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/10.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:not-supported-privilege</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>DAV:recognized-principal precondition failure - attempt to use unknown principal</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/11.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:recognized-principal</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>Valid command</description>
-			<request print-response='no'>
-				<method>ACL</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:recognized-principal</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='COPY/MOVE interaction with ACL' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>COPY to non-writeable shared calendar</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/visibletouser01/copy1.ics</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>COPY to non-visible shared calendar</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/notvisibletouser01/copy1.ics</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>COPY to non-visible shared calendar with overwrite</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/notvisibletouser01/hidden1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>COPY to visible with no overwrite shared calendar</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/writeabletouser01/1.ics</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>201</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>COPY to writeable shared calendar</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/writeabletouser01/copy1.ics</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>MOVE to non-writeable shared calendar</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/visibletouser01/move2.ics</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>MOVE to non-visible shared calendar</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/notvisibletouser01/move2.ics</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>MOVE to non-visible shared calendar with overwrite</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/notvisibletouser01/hidden1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>MOVE to writeable shared calendar</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix2:/writeabletouser01/move2.ics</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>201</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Principal Properties' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>PROPFIND principal VEVENT</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$principal:</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/15.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:alternate-URI-set</value>
-						<value>DAV:principal-URL$&lt;href>$principal:&lt;/href></value>
-						<value>DAV:group-member-set</value>
-						<value>DAV:group-membership</value>
-						<value>DAV:displayname$User 01</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='Directory list access' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Get calendar home collection</description>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix2:/</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>inbox</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Get calendar collection</description>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix2:/visibletouser01/</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>VTODO</value>
-					</arg>
-					<arg>
-						<name>notcontains</name>
-						<value>VEVENT</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='ACL calendar collection inheritance' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Check that read is not set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/calreadtoauth/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Check that read is not inherited</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/calreadtoauth/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Set read on collection only</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>ACL</method>
-				<ruri>$pathprefix2:/calreadtoauth/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/19.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Check that read is set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/calreadtoauth/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>aclItems</callback>
-					<arg>
-						<name>granted</name>
-						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Check that read is inherited</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/calreadtoauth/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>aclItems</callback>
-					<arg>
-						<name>granted</name>
-						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='ACL regular collection no inheritance' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Check that read is not set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/colreadtoauth/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Check that read is not inherited</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/colreadtoauth/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Set read on collection only</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>ACL</method>
-				<ruri>$pathprefix2:/colreadtoauth/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/19.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Check that read is set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/colreadtoauth/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>aclItems</callback>
-					<arg>
-						<name>granted</name>
-						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Check that read is inherited</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix2:/colreadtoauth/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acls/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETE</method>
-			<ruri>$pathprefix2:/visibletouser01/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETE</method>
-			<ruri>$pathprefix2:/notvisibletouser01/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETE</method>
-			<ruri>$pathprefix2:/writeabletouser01/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETE</method>
-			<ruri>$pathprefix2:/calreadtoauth/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETE</method>
-			<ruri>$pathprefix2:/colreadtoauth/</ruri>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/acldisabled.xml
===================================================================
--- CalDAVTester/trunk/acldisabled.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/acldisabled.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,335 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test ACLs on the server</description>
-
-	<start>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/</ruri>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/collection/disabled/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acldisabled/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/collection/enabled/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/acldisabled/1.xml</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='Read Resource OK' ignore='yes'>
-		<test name='1' ignore='no'>
-			<description>GET on disabled ics, user01</description>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>GET on disabled ics, user02</description>
-			<request print-response='no' user='$userid2:' pswd="$pswd2:">
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>GET on disabled ics, admin</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>GET on enabled ics, user01</description>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='PROPFIND OK' ignore='yes'>
-		<test name='1' ignore='no'>
-			<description>PROPFIND on collection, depth infinity</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acldisabled/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/collection/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value/>
-						<value>enabled/</value>
-						<value>enabled/1.ics</value>
-						<value>disabled/</value>
-						<value>disabled/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PROPFIND on disabled, depth infinity</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/disabled/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acldisabled/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/collection/disabled/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value/>
-						<value>1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Disable Access' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Disable access</description>
-			<request>
-				<method>ACCESS-DISABLE</method>
-				<ruri>$pathprefix:/collection/disabled</ruri>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='Read Resource Forbidden' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>GET on ics, user01</description>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>GET on ics, user02</description>
-			<request print-response='no' user='$userid2:' pswd="$pswd2:">
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>GET on ics, admin</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>GET on enabled ics, user01</description>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='PROPFIND FORBIDDEN' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>PROPFIND on collection, depth infinity</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acldisabled/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/collection/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value/>
-						<value>enabled/</value>
-						<value>enabled/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PROPFIND on disabled, depth infinity</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/disabled/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/acldisabled/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Delete Resource Forbidden, then allowed' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>DELETE on ics, user01</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Enable access</description>
-			<request>
-				<method>ACCESS-ENABLE</method>
-				<ruri>$pathprefix:/collection/disabled</ruri>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>DELETE on ics, user01</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end>
-		<request>
-			<method>DELETE</method>
-			<ruri>$pathprefix:/collection/</ruri>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/aclreports.xml
===================================================================
--- CalDAVTester/trunk/aclreports.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/aclreports.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,635 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test ACLs on the server</description>
-
-	<start>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PROPPATCH</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/aclreports/10.xml</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/2.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PROPPATCH</method>
-			<ruri>2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/aclreports/9.xml</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1todo.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/todo/1.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='acl-principal-prop-set REPORT' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>No DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Too many DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>No DAV:read-acl privilege</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>Valid report</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>/principals/users/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$userid1:</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$useradmin:</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='principal-match REPORT' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Too many DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>500</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Valid self report with DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>$userid1:</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Valid self report without DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/5.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>$userid1:</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>Valid principal-search report with DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/7.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>2.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>Valid principal-search report without DAV:prop</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/8.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>2.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>principal-search with inaccessible property</description>
-			<request print-response='no' user='$userid2:' pswd='$pswd2:'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/11.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='principal-property-search REPORT' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Valid non-apply-to report with DAV:prop</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>REPORT</method>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>public01</value>
-						<value>resource01</value>
-						<value>$userid1:</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Valid non-apply-to report without DAV:prop</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>REPORT</method>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/13.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>public02</value>
-						<value>resource02</value>
-						<value>user02</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Valid apply-to report with DAV:prop</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>REPORT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/14.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>/principals/users/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>public01</value>
-						<value>resource01</value>
-						<value>$userid1:</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>Valid non-apply-to report without DAV:prop</description>
-			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
-				<method>REPORT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/15.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>/principals/users/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>public02</value>
-						<value>resource02</value>
-						<value>user02</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='principal-search-property-set REPORT' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Wrong Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Report on non-principal collection</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:supported-report</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Valid report</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/aclreports/18.xml</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='supported-report-set property' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Regular resource</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/17.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>207</value>
-					</arg>
-				</verify>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/aclreports/19.xml</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Regular resource</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>/principals/users/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/aclreports/17.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>207</value>
-					</arg>
-				</verify>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/aclreports/20.xml</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/attachments.xml
===================================================================
--- CalDAVTester/trunk/attachments.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/attachments.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,144 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test attachments with CalDAV</description>
-
-	<start/>
-	
-	<test-suite name='Inline'>
-		<test name='1' ignore='no'>
-			<description>VEVENT with image/jpeg</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/attachments/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>ATTACH;FMTTYPE=image/jpeg;ENCODING=BASE64;VALUE=BINARY:</value>
-					</arg>
-					<arg>
-						<name>contains</name>
-						<value>RQAUUUUAFFFFAH//2Q==</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>VTODO with image/jpeg</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/attachments/2.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>ATTACH;FMTTYPE=image/jpeg;ENCODING=BASE64;VALUE=BINARY:</value>
-					</arg>
-					<arg>
-						<name>contains</name>
-						<value>RQAUUUUAFFFFAH//2Q==</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='External'>
-		<test name='1' ignore='no'>
-			<description>VEVENT with http://</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/attachments/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>3.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>ATTACHMENT:http://www.example.com/test.jpg</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>VTODO with image/jpeg</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/attachments/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>4.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>ATTACHMENT:http://www.example.com/test.jpg</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/caldavIOP.xml
===================================================================
--- CalDAVTester/trunk/caldavIOP.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/caldavIOP.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,275 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start/>
-	
-	<test-suite name='1. Event Creation'>
-		<test name='1.1'>
-			<description>Create new single-instance meeting titled "Meeting 1.1" with the location "Durham".</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1-1_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/1/1_1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='1.2'>
-			<description>Create new meeting titled "Meeting 1.2" recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1-1_2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/1/1_2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='1.3'>
-			<description>Create new single-instance meeting titled "Meeting 1.3" with 2 other attendees.</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1-1_3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/1/1_3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='1.4'>
-			<description>Create new single-instance meeting titled "Meeting 1.4" with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1-1_4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/1/1_4.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='2. Event Modification'>
-		<test name='2.1'>
-			<description>Modify the title of meeting "Meeting 1.1" to "Meeting 1.1bis".</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_1.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.2'>
-			<description>Modify the location of the meeting "Meeting 1.1bis" to "Seattle bis".</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_2.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.3'>
-			<description>Reschedule meeting "Meeting 1.1bis" to the next day.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_3.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.4'>
-			<description>Add an attendee to "Meeting 1.1bis".</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_4.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.5'>
-			<description>Add an alarm to "Meeting 1.1bis".</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_5.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.6'>
-			<description>Modify the title of the 1st instance of the recurring meeting created in 1.2.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_6.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.7'>
-			<description>Modify the participation status of 1st instance to DECLINED.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_7.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.8'>
-			<description>Cancel the 4th instance of the recurring meeting created in 1.2.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>1-1_2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_8.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2.9'>
-			<description>One client changes "Meeting 1.1bis" to a different time, second client 'refreshes' its display to see the modification.</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>2-2_9.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/2/2_9.txt</filepath>
-				</data>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='4. Event Deletion'>
-		<test name='4.1'>
-			<description>Delete a single non-recurring meeting.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>4-4_1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_1.txt</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>4-4_1.ics</ruri>
-			</request>
-		</test>
-		<test name='4.2'>
-			<description>Delete a single recurring meeting with no overridden instances.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>4-4_2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_2.txt</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>4-4_2.ics</ruri>
-			</request>
-		</test>
-		<test name='4.3'>
-			<description>Delete a single recurring meeting with overridden instances.</description>
-			<request>
-				<method>PUT</method>
-				<ruri>4-4_3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_3.txt</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>4-4_3.ics</ruri>
-			</request>
-		</test>
-		<test name='4.4'>
-			<description>Delete a non-overridden instance of a recurring meeting.</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4-4_4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_4a.txt</filepath>
-				</data>
-			</request>
-			<request>
-				<method>PUT</method>
-				<ruri>4-4_4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_4b.txt</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='4.5'>
-			<description>Delete an overridden instance of a recurring meeting.</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4-4_5.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_5a.txt</filepath>
-				</data>
-			</request>
-			<request>
-				<method>PUT</method>
-				<ruri>4-4_5.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/caldaviop/4/4_5b.txt</filepath>
-				</data>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/caldavtest.dtd	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/caldavtest.dtd	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,59 +0,0 @@
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<!ELEMENT caldavtest (description?, start, test-suite*, end) >
-	<!ATTLIST caldavtest ignore-all (yes|no) "no">
-
-	<!ELEMENT description (#PCDATA)>
-
-	<!ELEMENT start (request*)>
-	<!ELEMENT end (request*)>
-
-	<!ELEMENT request (method, header*, ruri?, data?, verify*, grablocation?)>
-		<!ATTLIST request auth (yes|no) "yes"
-						 user CDATA ""
-						 pswd CDATA ""
-						 end-delete (yes|no) "no"
-						 print-response (yes|no) "no">
-		
-		<!ELEMENT method (#PCDATA)>
-		<!ELEMENT header (name, value)>
-			<!ELEMENT name (#PCDATA)>
-			<!ELEMENT value (#PCDATA)>
-		<!ELEMENT ruri (#PCDATA)>
-		<!ELEMENT data (content-type, filepath)>
-			<!ATTLIST data substitutions (yes|no) "no">
-			<!ELEMENT content-type (#PCDATA)>
-			<!ELEMENT filepath (#PCDATA)>
-
-		<!ELEMENT verify (callback, arg*)>
-			
-				<!ELEMENT callback (#PCDATA)>
-				<!ELEMENT arg (name, value+)>
-		
-		<!ELEMENT grablocation EMPTY>
-	
-	<!ELEMENT test-suite (test*)>
-		<!ATTLIST test-suite name CDATA #REQUIRED
-							ignore (yes|no) "no">
-	
-		<!ELEMENT test (description?, request+)>
-			<!ATTLIST test name CDATA #REQUIRED
-						  count CDATA "1"
-						  stats (yes|no) "no"
-						  ignore (yes|no) "no">

Deleted: CalDAVTester/trunk/copymove.xml
===================================================================
--- CalDAVTester/trunk/copymove.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/copymove.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,439 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test COPY/MOVE methods in CalDAV to ensure proper behaviour
-	of calendar resources wrt UIDs, server indexing etc</description>
-
-	<start>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/1.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/2.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/calendar2/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/calendar2/2_2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/2.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/3.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/3.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/4.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/calendar2/4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/4.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/5.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/copymove/6.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='COPY'>
-		<test name='1' ignore='no'>
-			<description>COPY within same calendar to new resource</description>
-			<request print-response="no">
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-						<value>409</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>COPY within same calendar to existing resource with overwrite</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-						<value>409</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>COPY within same calendar to existing resource without overwrite</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>F</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-						<value>409</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>COPY to different calendar, new resource</description>
-			<request print-response="no">
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>201</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>COPY to different calendar, new resource, duplicate UID</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/copy2_2.ics</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-						<value>409</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>COPY to different calendar, existing resource with overwrite</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>204</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7'>
-			<description>COPY to different calendar, existing resource with overwrite, duplicate UID</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-						<value>409</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8'>
-			<description>COPY to different calendar, existing resource without overwrite</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>F</value>
-				</header>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>412</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9'>
-			<description>COPY to different calendar, existing resource without overwrite, duplicate UID</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>F</value>
-				</header>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>412</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='MOVE' ignore='no'>
-		<test name='1'>
-			<description>MOVE within same calendar to new resource</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>5.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>2xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>MOVE within same calendar to existing resource with overwrite</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>6.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-						<value>409</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>MOVE within same calendar to existing resource without overwrite</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>F</value>
-				</header>
-				<ruri>3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>412</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>MOVE to different calendar, new resource</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/move2_1.ics</value>
-				</header>
-				<ruri>move1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>2xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>MOVE to different calendar, existing resource with overwrite</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/3.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>T</value>
-				</header>
-				<ruri>3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>2xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>MOVE to different calendar, existing resource without overwrite</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar2/4.ics</value>
-				</header>
-				<header>
-					<name>Overwrite</name>
-					<value>F</value>
-				</header>
-				<ruri>4.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>412</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end>
-		<request>
-			<method>DELETE</method>
-			<ruri>copy1.ics</ruri>
-		</request>
-		<request>
-			<method>DELETE</method>
-			<ruri>move1.ics</ruri>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/delete.xml
===================================================================
--- CalDAVTester/trunk/delete.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/delete.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,85 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test DELETE method in CalDAV to ensure proper behaviour
-	of server indexing</description>
-
-	<start>
-		<request end-delete="yes" print-response="yes">
-			<method>PUT</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/delete/1.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1todo.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/todo/1.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='DELETE'>
-		<test name='1'>
-			<description>DELETE existing VEVENT</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>DELETE existing VTODO</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>1todo.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>DELETE non-existing resource</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/depthreports.xml
===================================================================
--- CalDAVTester/trunk/depthreports.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/depthreports.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,827 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start>
-		<request end-delete="yes">
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/2.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/3.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/4.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/5.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/6.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/7.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/7.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/8.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/8.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/9.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/9.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/10.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/10.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/11.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/11.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/12.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/12.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/13.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/13.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/14.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/14.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar/15.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/15.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/2.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/16.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/16.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/top-collection/collection/</ruri>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/collection/calendar3/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/2.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/collection/calendar3/10.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/10.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/collection/calendar3/17.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/17.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='multiget reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>multiget on calendar</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/depth1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>multiget on collection</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/depth2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar/1.ics</value>
-						<value>calendar/2.ics</value>
-						<value>calendar/3.ics</value>
-						<value>calendar/4.ics</value>
-						<value>calendar2/1.ics</value>
-						<value>calendar2/16.ics</value>
-						<value>collection/calendar3/2.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>multiget on calendar resource</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/depth3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/top-collection/calendar/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>2.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>multiget on non calendar resource</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/1.ics</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/depth4.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='basic query reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>query on calendar with no Depth</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query on calendar with Depth 0</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>query on calendar with Depth 1</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>query on calendar with Depth infinity</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>query on collection with no Depth</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>query on collection with Depth 0</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>query on collection with Depth 1</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar/1.ics</value>
-						<value>calendar/10.ics</value>
-						<value>calendar/11.ics</value>
-						<value>calendar/12.ics</value>
-						<value>calendar/13.ics</value>
-						<value>calendar/14.ics</value>
-						<value>calendar2/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>query on collection with Depth infinity</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar/1.ics</value>
-						<value>calendar/10.ics</value>
-						<value>calendar/11.ics</value>
-						<value>calendar/12.ics</value>
-						<value>calendar/13.ics</value>
-						<value>calendar/14.ics</value>
-						<value>calendar2/1.ics</value>
-						<value>collection/calendar3/10.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>query on matching calendar resource with no Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/top-collection/calendar/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>query on non-matching calendar resource with no Depth</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/2.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='11' ignore='no'>
-			<description>query on non calendar resource with no Depth</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>4xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='free-busy reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>query for free busy on calendar with no Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T150000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T170000Z</value>
-						<value>20060108T210000Z/20060108T213000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query for free busy on calendar with Depth 0</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T150000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T170000Z</value>
-						<value>20060108T210000Z/20060108T213000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>query for free busy on calendar with Depth 1</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T150000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T170000Z</value>
-						<value>20060108T210000Z/20060108T213000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>query for free busy on calendar with Depth infinity</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T150000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T170000Z</value>
-						<value>20060108T210000Z/20060108T213000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>query for free busy on collection with no Depth</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>query for free busy on collection with Depth 0</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>query for free busy on collection with Depth 1</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-						<value>20060108T200000Z/20060108T203000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T170000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T173000Z</value>
-						<value>20060108T210000Z/20060108T213000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>query for free busy on collection with Depth infinity</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-						<value>20060108T200000Z/20060108T210000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T170000Z</value>
-						<value>20060108T173000Z/20060108T180000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T173000Z</value>
-						<value>20060108T210000Z/20060108T220000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>query for free busy on resource</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>4xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/depthreportsacl.xml
===================================================================
--- CalDAVTester/trunk/depthreportsacl.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/depthreportsacl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,307 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start>
-		<request end-delete="yes">
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with DAV:read only -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal2.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal3.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with no privileges -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal4.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal5.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal6.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with CALDAV:read-free-busy only -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal7.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal8.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal9.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='Reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>multiget on top collection</description>
-			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/depthreportsacl/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar1/1.ics</value>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>calendar1/2.ics</value>
-						<value>calendar1/3.ics</value>
-						<value>calendar2/1.ics</value>
-						<value>calendar2/2.ics</value>
-						<value>calendar2/3.ics</value>
-						<value>calendar3/1.ics</value>
-						<value>calendar3/2.ics</value>
-						<value>calendar3/3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query on top collection</description>
-			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/depthreportsacl/5.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar1/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>query for free busy on collection with Depth infinity</description>
-			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/top-collection/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/depthreportsacl/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060101T060000Z/20060101T070000Z</value>
-						<value>20060101T100000Z/20060101T110000Z</value>
-						<value>20060101T180000Z/20060101T190000Z</value>
-						<value>20060101T220000Z/20060101T230000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/encodedURIs.xml
===================================================================
--- CalDAVTester/trunk/encodedURIs.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/encodedURIs.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,278 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start>
-		<request end-delete='yes'>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection%201/</ruri>
-		</request>
-		<request end-delete='yes'>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/calendar%202/</ruri>
-		</request>
-		<request end-delete='yes'>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/calendar%203/</ruri>
-		</request>
-	</start>
-
-	<test-suite name='regular resource'>
-		<test name='1'>
-			<description>PUT</description>
-			<request print-response='no' end-delete='yes'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection%201/2%20a.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>!Location</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-
-		<test name='2'>
-			<description>COPY</description>
-			<request print-response='no' end-delete='yes'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/collection%201/2_2%20a.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection%201/2%20a.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$$host:$pathprefix:/collection%201/2_2%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection%201/2_2%20a.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value/>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$pathprefix:/collection%201/2_2%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>MOVE</description>
-			<request print-response='no' end-delete='yes'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/collection%201/2_3%20a.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection%201/2%20a.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$$host:$pathprefix:/collection%201/2_3%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection%201/2_2%20a.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value/>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$pathprefix:/collection%201/2_2%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='calendar resource'>
-		<test name='1'>
-			<description>PUT</description>
-			<request print-response='no' end-delete='yes'>
-				<method>PUT</method>
-				<ruri>2%20a.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>!Location</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>COPY</description>
-			<request print-response='no' end-delete='yes'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar%202/2_2%20a.ics</value>
-				</header>
-				<ruri>2%20a.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$$host:$pathprefix:/calendar%202/2_2%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/calendar%202/2_2%20a.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value/>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$pathprefix:/calendar%202/2_2%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>MOVE</description>
-			<request print-response='no' end-delete='yes'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar%203/2_3%20a.ics</value>
-				</header>
-				<ruri>2%20a.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$$host:$pathprefix:/calendar%203/2_3%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/calendar%203/2_3%20a.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value/>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>$pathprefix:/calendar%203/2_3%20a.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/errors.xml
===================================================================
--- CalDAVTester/trunk/errors.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/errors.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,1105 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Tests of various pre-/post-conditions</description>
-
-	<start>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/6.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/calendar2/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/calendar2/6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/6.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/calendar2/7.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/7.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/1.xml</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/errors/1.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/2.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/3.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/4.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/5.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/6.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/7.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/7.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/8.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/8.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix:/9.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/errors/9.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='PUT' ignore='no'>
-		<test name='1'>
-			<description>PUT non-calendar data</description>
-			<request>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>PUT invalid calendar data</description>
-			<request>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>PUT with multiple component types</description>
-			<request>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>PUT with METHOD property</description>
-			<request>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>PUT with different uids in same resource</description>
-			<request>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>PUT with duplicate uids</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7'>
-			<description>PUT with different uid onto existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8'>
-			<description>PUT with too many recurrence instances to new resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/8.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9'>
-			<description>PUT with too many recurrence instances to existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/9.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10'>
-			<description>PUT without timezone</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/errors/28.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='COPY' ignore='no'>
-		<test name='1'>
-			<description>COPY non-calendar data</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/1.xml</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>COPY invalid calendar data</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/2.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>COPY with multiple component types</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/3.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>COPY with METHOD property</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/4.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>COPY with different uids in same resource</description>
-			<request>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/5.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>COPY with duplicate uids</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/6.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7'>
-			<description>COPY from calendar with duplicate uids</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/copy1.ics</value>
-				</header>
-				<ruri>$pathprefix:/calendar2/6.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8'>
-			<description>COPY with different uid onto existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/7.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9'>
-			<description>COPY from calendar with different uid onto existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/calendar2/7.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10'>
-			<description>COPY with too many recurrence instances to new resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/2.ics</value>
-				</header>
-				<ruri>$pathprefix:/8.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='11'>
-			<description>COPY with too many recurrence instances to existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/9.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='MOVE' ignore='no'>
-		<test name='1'>
-			<description>MOVE non-calendar data</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/1.xml</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>MOVE invalid calendar data</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/2.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>MOVE with multiple component types</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/3.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>MOVE with METHOD property</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/4.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>MOVE with different uids in same resource</description>
-			<request>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/5.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>MOVE with duplicate uids</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/6.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7'>
-			<description>MOVE from calendar with duplicate uids</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/move1.ics</value>
-				</header>
-				<ruri>$pathprefix:/calendar2/6.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8'>
-			<description>MOVE with different uid onto existing resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/7.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9'>
-			<description>MOVE from calendar with different uid onto existing resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/calendar2/7.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10'>
-			<description>MOVE with too many recurrence instances to new resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/2.ics</value>
-				</header>
-				<ruri>$pathprefix:/8.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='11'>
-			<description>MOVE with too many recurrence instances to existing resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$host:$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/9.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='REPORT/calendar-data' ignore='no'>
-		<test name='1'>
-			<description>query with invalid calendar-data content-type</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/10.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>query with invalid calendar-data version</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/11.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>multiget with invalid calendar-data content-type</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/12.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>multiget with invalid calendar-data version</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/13.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='REPORT/filter' ignore='no'>
-		<test name='1'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/14.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/15.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/16.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/17.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/18.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/19.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/20.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/21.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9'>
-			<description>query with invalid filter</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/22.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10'>
-			<description>query with invalid time-range (dates)</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/29.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='11'>
-			<description>query with invalid time-range (floating)</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/30.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='12'>
-			<description>free-busy with invalid time-range (dates)</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/31.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='13'>
-			<description>free-busy with invalid time-range (floating)</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/32.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>400</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='REPORT/too big' ignore='no'>
-		<test name='1'>
-			<description>query with too many results</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/calendar.1000/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/23.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>multiget with too many results</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/calendar.1000/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/24.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>free-busy with too many results</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/calendar.1000/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/25.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Invalid CalDAV:timezone' ignore='no'>
-		<test name='1'>
-			<description>query with invalid timezone</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/26.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>proppatch with invalid timezone</description>
-			<request print-response='no'>
-				<method>PROPPATCH</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/errors/27.txt</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-timezone</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/floating.xml
===================================================================
--- CalDAVTester/trunk/floating.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/floating.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,497 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test all-day/floating tests for timezone proeprty</description>
-
-	<start>
-		<request end-delete="yes">
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/floating/</ruri>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/floating/calendar-none/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/2.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/3.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/4.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/5.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/6.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-none/7.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/7.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/floating/calendar-us/</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/8.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/1.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/2.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/3.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/4.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/5.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/6.txt</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/floating/calendar-us/7.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/floating/put/7.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='REPORT floating behaviour - calendar without timezone'>
-		<test name='1' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Eastern</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-none/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/calendar-none/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-none/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/calendar-none/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-none/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/calendar-none/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='REPORT floating behaviour - calendar with timezone'>
-		<test name='1' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: no timezone</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-us/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/calendar-us/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Eastern</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-us/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/calendar-us/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
-			<request>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-us/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/calendar-us/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='REPORT floating behaviour - collection'>
-		<test name='1' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: no timezone</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/floating/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar-none/1.ics</value>
-						<value>calendar-none/3.ics</value>
-						<value>calendar-none/5.ics</value>
-						<value>calendar-none/6.ics</value>
-						<value>calendar-us/1.ics</value>
-						<value>calendar-us/3.ics</value>
-						<value>calendar-us/5.ics</value>
-						<value>calendar-us/6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Eastern</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/floating/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar-none/1.ics</value>
-						<value>calendar-none/3.ics</value>
-						<value>calendar-none/5.ics</value>
-						<value>calendar-none/6.ics</value>
-						<value>calendar-us/1.ics</value>
-						<value>calendar-us/3.ics</value>
-						<value>calendar-us/5.ics</value>
-						<value>calendar-us/6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
-			<request>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/floating/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value>$pathprefix:/floating/</value>
-					</arg>
-					<arg>
-						<name>okhrefs</name>
-						<value>calendar-none/1.ics</value>
-						<value>calendar-none/3.ics</value>
-						<value>calendar-none/6.ics</value>
-						<value>calendar-us/1.ics</value>
-						<value>calendar-us/3.ics</value>
-						<value>calendar-us/6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='REPORT free-busy floating behaviour'>
-		<test name='1' ignore='no'>
-			<description>free-busy on collection without timezone</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/floating/calendar-none/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060101T000000Z/20060101T020000Z</value>
-						<value>20060101T050000Z/20060101T060000Z</value>
-						<value>20060101T080000Z/20060101T090000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060101T000000Z/20060102T000000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>free-busy on collection with timezone</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/floating/calendar-us/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060101T000000Z/20060101T010000Z</value>
-						<value>20060101T050000Z/20060101T070000Z</value>
-						<value>20060101T080000Z/20060101T090000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060101T050000Z/20060102T000000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>free-busy on multiple collections with/without timezone</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix:/floating/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/floating/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060101T000000Z/20060101T020000Z</value>
-						<value>20060101T050000Z/20060101T070000Z</value>
-						<value>20060101T080000Z/20060101T090000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060101T000000Z/20060102T000000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/mkcalendar.xml
===================================================================
--- CalDAVTester/trunk/mkcalendar.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/mkcalendar.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,175 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start/>
-	
-	<test-suite name='MKCALENDAR without body'>
-		<test name='1'>
-			<description>Simple MKCALENDAR</description>
-			<request end-delete='yes'>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest1/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>201</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>MKCALENDAR on existing resource</description>
-			<request>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest1/</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>MKCALENDAR inside another calendar</description>
-			<request>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest1/caltest2/</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-collection-location-ok</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>MKCOL inside a calendar</description>
-			<request>
-				<method>MKCOL</method>
-				<ruri>$pathprefix:/caltest1/collection/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='MKCALENDAR with body'>
-		<test name='1'>
-			<description>MKCALENDAR with correct request body</description>
-			<request end-delete='yes'>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/mkcalendar/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>201</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>MKCALENDAR with correct request body on existing resource</description>
-			<request>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/mkcalendar/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>MKCALENDAR with incorrect request body</description>
-			<request end-delete='yes' print-response='no'>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest3/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/mkcalendar/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/caltest3/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>MKCALENDAR with incorrect request body on existing resource</description>
-			<request>
-				<method>MKCALENDAR</method>
-				<ruri>$pathprefix:/caltest2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/mkcalendar/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-
-</caldavtest>

Added: CalDAVTester/trunk/performer.py
===================================================================
--- CalDAVTester/trunk/performer.py	                        (rev 0)
+++ CalDAVTester/trunk/performer.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,156 @@
+#!/usr/bin/env python
+#
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+#
+# Runs a series of test suites inb parallel using a thread pool
+#
+import sys
+
+from random import randrange
+from threading import Timer
+import math
+import time
+import xml.dom.minidom
+import src.xmlDefs
+
+from src.manager import manager
+from src.perfinfo import perfinfo
+
+EX_INVALID_CONFIG_FILE = "Invalid Config File"
+
+if __name__ == "__main__":
+    
+    def readXML():
+
+        perfinfoname = "scripts/performance/perfinfo.xml"
+        if len(sys.argv) > 1:
+            perfinfoname = sys.argv[1]
+            
+        # Open and parse the server config file
+        fd = open(perfinfoname, "r")
+        doc = xml.dom.minidom.parse( fd )
+        fd.close()
+
+        # Verify that top-level element is correct
+        perfinfo_node = doc._get_documentElement()
+        if perfinfo_node._get_localName() != src.xmlDefs.ELEMENT_PERFINFO:
+            raise EX_INVALID_CONFIG_FILE
+        if not perfinfo_node.hasChildNodes():
+            raise EX_INVALID_CONFIG_FILE
+        pinfo = perfinfo()
+        pinfo.parseXML(perfinfo_node)
+        return pinfo
+    
+    def subs(str, i):
+        if "%" in str:
+            return str % i
+        else:
+            return str
+
+    pinfo = readXML()
+
+    # Cummulative results
+    allresults = []
+    
+    for test in pinfo.tests:
+        result = [0.0, 0.0, 0.0]
+        print "|",
+        for loop in range(test[1]):
+            print ".",
+            results = []
+        
+            def runner(*args):
+                """
+                Test runner method. 
+                @param *args:
+                """
+                
+                if pinfo.logging:
+                    print "Start: %s" % (args[0]["moresubs"]["$userid1:"],)
+                try:
+                    mgr = manager(level=manager.LOG_NONE)
+                    result, timing = mgr.runWithOptions(*args[1:], **args[0])
+                    results.append(timing)
+                    if pinfo.logging:
+                        print "Done: %s" % (args[0]["moresubs"]["$userid1:"],)
+                except Exception, e:
+                    print "Thread run exception: %s" % (str(e),)
+        
+            # Create argument list that varies for each threaded client. Basically use a separate
+            # server account for each client.
+            args = []
+            for i in range(1, pinfo.clients + 1):
+                moresubs = {}
+                for key, value in pinfo.subsdict.iteritems():
+                    moresubs[key] = subs(value, i)
+                args.append(({"moresubs": moresubs}, subs(pinfo.serverinfo, i), "", [subs(pinfo.testinfo, i)]))
+        
+            if pinfo.threads:
+                # Run threads by queuing up a set of timers set to start 5 seconds + random time
+                # after thread is actually started. The random time is spread over the interval
+                # we are testing over. Wait for all threads to finish.
+                timers = []
+                for arg in args:
+                    sleeper = 5.0 + randrange(0, 100)/100.0 * test[0]
+                    timers.append(Timer(sleeper, runner, arg))
+            
+                startTime = time.time() + 5.0
+                for thread in timers:
+                    thread.start( )
+            
+                for thread in timers:
+                    thread.join(None)
+            else:
+                # Just execute each client request one after the other.
+                startTime = time.time()
+                for arg in args:
+                    runner(*arg)
+    
+            # Determine timing stats for this run
+            diffTime = time.time() - startTime
+
+            average = 0.0
+            for i in results:
+                average += i
+                if pinfo.logging:
+                    print i
+            average /= len(results)
+            
+            stddev = 0.0
+            for i in results:
+                stddev += (i - average) ** 2
+            stddev /= len(results)
+            stddev = math.sqrt(stddev)
+            
+            result[0] += average
+            result[1] += stddev
+            result[2] += diffTime
+        
+        # Average results from runs.
+        result[0] /= test[1]
+        result[1] /= test[1]
+        result[2] /= test[1]
+        
+        allresults.append(result)
+    
+    # Print out averaged results.
+    print "\n\nSpread\tReqs/sec\tAverage\t\tStd. Dev.\tTotal"
+    print "==============================================================="
+    for i in range(len(pinfo.tests)):
+        print "%.0f\t%.3f\t\t%.3f\t\t%.3f\t\t%.3f" % (pinfo.tests[i][0], pinfo.clients/pinfo.tests[i][0], allresults[i][0], allresults[i][1], allresults[i][2],)

Deleted: CalDAVTester/trunk/populate.xml
===================================================================
--- CalDAVTester/trunk/populate.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/populate.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,48 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<populate>
-	<description>Populate a TwistedCalDAV server with user accounts.</description>
-	<path>/Users/</path>
-	
-	<account count='1'>
-		<name>User-1.10</name>
-		<calendars>
-			<name>calendar</name>
-			<datasource count='1' mode='all'>Resource/Populate/</datasource>
-		</calendars>
-	</account>
-	<account count='1'>
-		<name>User-1.100</name>
-		<calendars>
-			<name>calendar</name>
-			<datasource count='10' mode='all'>Resource/Populate/</datasource>
-		</calendars>
-	</account>
-	<account count='1'>
-		<name>User-1.1000</name>
-		<calendars>
-			<name>calendar</name>
-			<datasource count='100' mode='all'>Resource/Populate/</datasource>
-		</calendars>
-	</account>
-</populate>

Deleted: CalDAVTester/trunk/propfind.xml
===================================================================
--- CalDAVTester/trunk/propfind.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/propfind.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,273 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start/>
-	
-	<test-suite name='regular prop finds'>
-		<test name='1'>
-			<description>PROPFIND of basic properties depth=0</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>PROPFIND of basic properties depth=1</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>PROPFIND of basic properties depth=infinity</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>PROPFIND getcontentlength=0</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:getcontentlength$</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='prop names'>
-		<test name='1'>
-			<description>PROPFIND of property names depth=0</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>PROPFIND of property names depth=1</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>PROPFIND of property names depth=infinity</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='prop all'>
-		<test name='1'>
-			<description>PROPFIND of all properties depth=0</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>PROPFIND of all properties depth=1</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>PROPFIND of all properties depth=infinity</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='prop errors'>
-		<test name='1'>
-			<description>PROPFIND with invalid elements</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>4xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>PROPFIND of unknown element</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>4xx</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>PROPFIND with one unknown property</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/propfinds/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/proppatch.xml
===================================================================
--- CalDAVTester/trunk/proppatch.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/proppatch.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,165 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start/>
-	
-	<test-suite name='prop patches'>
-		<test name='1' ignore="no">
-			<description>PROPPATCH of details: good</description>
-			<request print-response='no'>
-				<method>PROPPATCH</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:details</value>
-						<value>DAV:details2</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:details$My Name</value>
-						<value>DAV:details2$My Name 2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore="no">
-			<description>PROPPATCH of details: remove it</description>
-			<request print-response='no'>
-				<method>PROPPATCH</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:details</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:details</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>PROPPATCH remove non-existant</description>
-			<request print-response='no'>
-				<method>PROPPATCH</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:missing</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>PROPPATCH of resourcetype: fails</description>
-			<request print-response='no'>
-				<method>PROPPATCH</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/5.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:details</value>
-						<value>DAV:details2</value>
-						<value>DAV:resourcetype</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/proppatches/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:details</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/put.xml
===================================================================
--- CalDAVTester/trunk/put.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/put.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,500 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test PUT method in CalDAV</description>
-
-	<start/>
-	
-	<test-suite name='PUT VEVENT'>
-		<test name='1' ignore='no'>
-			<description>PUT non-recurring timed event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>1.ics</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/recurrenceput/1.txt</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PUT not in calendar collection</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>$pathprefix:/1.ics</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/recurrenceput/1.txt</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Put VTODO' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Plain VTODO with no date</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>1todo.ics</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/todo/1.txt</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Plain VTODO with DUE only</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>2todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>2todo.ics</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/todo/2.txt</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Plain VTODO with DTSTART/DUARTION only</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>3todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>3todo.ics</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/todo/3.txt</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Plain VTODO with DTSTART only</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>GET</method>
-				<ruri>4todo.ics</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/todo/4.txt</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='Problem VEVENTs - EXDATE &amp; various combinations of date-time/date values'>
-		<test name='1' ignore='no'>
-			<description>PUT problem event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>DTSTART/DATE-TIME/UTC, DTEND/DATE</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/2.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>DTSTART/DATE-TIME/TZID, DTEND/DATE</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>18.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/16.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>DTSTART/DATE-TIME/Float, DTEND/DATE</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>19.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/17.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>DTSTART/DATE-TIME/UTC, DTEND/DATE-TIME/TZID</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>5.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>DTSTART/DATE-TIME/UTC, DTEND/DATE-TIME/Float</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>6.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>DTSTART/DATE-TIME/TZID, DTEND/DATE-TIME/UTC</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>7.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/5.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>DTSTART/DATE-TIME/TZID, DTEND/DATE-TIME/Float</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>8.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/6.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>DTSTART/DATE-TIME/Float, DTEND/DATE-TIME/UTC</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>9.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/7.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>DTSTART/DATE-TIME/Float, DTEND/DATE-TIME/TZID</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>10.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/8.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='Problem VTODOs - various combinations of date-time/date values'>
-		<test name='1' ignore='no'>
-			<description>DTSTART/DATE-TIME/UTC, DUE/DATE</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>11.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/9.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>DTSTART/DATE-TIME/TZID, DUE/DATE</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>20.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/18.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>DTSTART/DATE-TIME/Float, DUE/DATE</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>21.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/19.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>DTSTART/DATE, DUE/DATE-TIME/UTC</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>22.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/20.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>DTSTART/DATE, DUE/DATE-TIME/TZID</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>23.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/21.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>DTSTART/DATE, DUE/DATE-TIME/Float</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>24.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/22.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>DTSTART/DATE-TIME/UTC, DUE/DATE-TIME/TZID</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>12.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/10.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>DTSTART/DATE-TIME/UTC, DUE/DATE-TIME/Float</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>13.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/11.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>DTSTART/DATE-TIME/TZID, DUE/DATE-TIME/UTC</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>14.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/12.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>DTSTART/DATE-TIME/TZID, DUE/DATE-TIME/Float</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>15.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/13.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='11' ignore='no'>
-			<description>DTSTART/DATE-TIME/Float, DUE/DATE-TIME/UTC</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>16.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/14.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='12' ignore='no'>
-			<description>DTSTART/DATE-TIME/Float, DUE/DATE-TIME/TZID</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>17.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/problemics/15.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/quota.xml
===================================================================
--- CalDAVTester/trunk/quota.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/quota.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,2974 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest ignore-all="yes">
-	<description>Test Quota support on the server</description>
-
-	<start>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/</ruri>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/temp/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/temp/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/2.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/3.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/temp/4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/4.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/temp/5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/5.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/temp/6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/6.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/noquotacol/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/quotacol/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-2048</method>
-			<ruri>$pathprefix:/collection/quotacol/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/quotacol/temp/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/quotacol/temp/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/quotacol/temp/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/2.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/largequotacol/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
-			<ruri>$pathprefix:/collection/largequotacol/</ruri>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-4096</method><!-- 4Kb -->
-			<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-2048</method><!-- 2Kb -->
-			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-		</request>
-		<request>
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
-			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/collection/noquotacal/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/collection/quotacal/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-2048</method>
-			<ruri>$pathprefix:/collection/quotacal/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/collection/largequotacal/</ruri>
-		</request>
-		<request>
-			<method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
-			<ruri>$pathprefix:/collection/largequotacal/</ruri>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/calendar/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/quota/2.ics</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='Properties on collections' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>allprop on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>allprop on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>propname on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>propname on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>props on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>props on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$118</value>
-						<value>DAV:quota-used-bytes$1930</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Properties on resources' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>allprop on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>allprop on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>propname on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>propname on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>props on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>props on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$118</value>
-						<value>DAV:quota-used-bytes$1930</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Properties on calendars' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>allprop on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>allprop on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>propname on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>propname on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>props on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>props on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Properties on calendar resources' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>allprop on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>allprop on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>propname on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>notcontains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>propname on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>quota-available-bytes</value>
-						<value>quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>props on non-quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-					</arg>
-					<arg>
-						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>props on quota collection</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='PUT Over quota on collection' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>over quota on quota collection with new resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/quotacol/2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>over quota on quota collection with existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event_1</value>
-					</arg>
-					<arg>
-						<name>notcontains</name>
-						<value>more</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>over quota on quota sub-collection with new resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>over quota on quota sub-collection with existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event_1</value>
-					</arg>
-					<arg>
-						<name>notcontains</name>
-						<value>more</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='PUT Over quota on calendar' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>over quota on quota calendar with new resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/quotacal/4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacal/4.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>over quota on quota calendar with existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/6.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event_1</value>
-					</arg>
-					<arg>
-						<name>notcontains</name>
-						<value>more</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='COPY resource over quota' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>over quota on quota collection with new resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacol/2.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>over quota on quota collection with existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacol/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event_1</value>
-					</arg>
-					<arg>
-						<name>notcontains</name>
-						<value>more</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>over quota on quota collection copying collection</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacol/test/</value>
-				</header>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/test/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='COPY calendar resource over quota' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>over quota on quota calendar with new resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacal/4.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/4.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/4.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/4.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>over quota on quota calendar with existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacal/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/6.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event_1</value>
-					</arg>
-					<arg>
-						<name>notcontains</name>
-						<value>more</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/6.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>not allowed on quota calendar copying collection</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacal/test/</value>
-				</header>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>405</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacal/test/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/quotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='COPY collection over quota' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>over quota on quota collection with new collection</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacol/test/</value>
-				</header>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/test/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>over quota on quota collection with existing collection</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacol/temp/</value>
-				</header>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>over quota on quota collection copying collection</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/quotacol/temp/test/</value>
-				</header>
-				<header>
-					<name>Depth</name>
-					<value>infinity</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/quotacol/temp/test/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='PUT/DELETE/COPY/MOVE of resource with quota update' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Initial quota values</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PUT new resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047941</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>PUT existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047490</value>
-						<value>DAV:quota-used-bytes$1086</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>COPY new resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacol/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047941</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>COPY existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacol/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047490</value>
-						<value>DAV:quota-used-bytes$1086</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>MOVE new resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacol/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047941</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>MOVE existing resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacol/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047490</value>
-						<value>DAV:quota-used-bytes$1086</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='PUT/DELETE/COPY/MOVE of calendar resource with quota update' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Initial quota values</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-			<!-- Make sure we have the source collection files in place -->
-			<request>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.ics</filepath>
-				</data>
-			</request>
-			<request>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.ics</filepath>
-				</data>
-			</request>
-			<request>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PUT new resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047941</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>PUT existing resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047490</value>
-						<value>DAV:quota-used-bytes$1086</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>COPY new resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacal/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047941</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>COPY existing resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacal/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047490</value>
-						<value>DAV:quota-used-bytes$1086</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>MOVE new resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacal/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047941</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>MOVE existing resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacal/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1047490</value>
-						<value>DAV:quota-used-bytes$1086</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacal/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='COPY/MOVE/DELETE of collection with quota update' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Initial quota values</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-			<!-- Make sure we have the source collection files in place -->
-			<request>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.ics</filepath>
-				</data>
-			</request>
-			<request>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.ics</filepath>
-				</data>
-			</request>
-			<request>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.ics</filepath>
-				</data>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>COPY new collection</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacol/test/</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1033552</value>
-						<value>DAV:quota-used-bytes$15024</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>DELETE existing collection</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacol/test/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>MOVE new collection</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/collection/largequotacol/test/</value>
-				</header>
-				<ruri>$pathprefix:/collection/temp/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1033552</value>
-						<value>DAV:quota-used-bytes$15024</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>DELETE existing resource</description>
-			<request print-response='no'>
-				<method>DELETE</method>
-				<ruri>$pathprefix:/collection/largequotacol/test/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/largequotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='PUT with nested over quota' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Initial quota values</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$4096</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$2048</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PUT small resource below nested and below parent quota</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$3461</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>PUT smallish resource above nested but below parent quota</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>507</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/4.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$3461</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1048576</value>
-						<value>DAV:quota-used-bytes$0</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>PUT smallish resource below nested (2) and below parent quota</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$426</value>
-						<value>DAV:quota-used-bytes$3670</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1413</value>
-						<value>DAV:quota-used-bytes$635</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1045541</value>
-						<value>DAV:quota-used-bytes$3035</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>PUT small resource below nested but above parent quota</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/2.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$0</value>
-						<value>DAV:quota-used-bytes$4330</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$753</value>
-						<value>DAV:quota-used-bytes$1295</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1045541</value>
-						<value>DAV:quota-used-bytes$3035</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>PUT large resource below nested (2) but above parent quota</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/5.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/5.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$0</value>
-						<value>DAV:quota-used-bytes$11200</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$753</value>
-						<value>DAV:quota-used-bytes$1295</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/quota/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$1038671</value>
-						<value>DAV:quota-used-bytes$9905</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='PUT with oversize attachment' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>PUT new oversized resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/calendar/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/7.ics</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/calendar/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PUT existing oversized resource</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/calendar/2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/7.ics</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/calendar/2.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event 2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>PUT new oversized resource to regular collection</description>
-			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/quota/7.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>COPY new oversized resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/calendar/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>COPY existing oversized resource</description>
-			<request print-response='no'>
-				<method>COPY</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/calendar/2.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/calendar/2.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event 2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>MOVE new oversized resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/calendar/1.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/calendar/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>404</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>MOVE existing oversized resource</description>
-			<request print-response='no'>
-				<method>MOVE</method>
-				<header>
-					<name>Destination</name>
-					<value>$pathprefix:/calendar/2.ics</value>
-				</header>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/calendar/2.ics</ruri>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>event 2</value>
-					</arg>
-				</verify>
-			</request>
-			<request print-response='no'>
-				<method>GET</method>
-				<ruri>$pathprefix:/collection/1.ics</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end>
-		<request>
-			<method>DELETE</method>
-			<ruri>$pathprefix:/collection/</ruri>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/recurrenceput.xml
===================================================================
--- CalDAVTester/trunk/recurrenceput.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/recurrenceput.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,247 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test PUT method in CalDAV with various recurrences to ensure
-	proper behaviour of server indexing</description>
-
-	<start/>
-	
-	<test-suite name='VEVENTs'>
-		<test name='1' ignore='no'>
-			<description>PUT non-recurring timed event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>PUT non-recurring all day event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>2.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>PUT recurring (no exceptions) timed event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>3.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>PUT recurring (no exceptions) all day event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>PUT recurring (with exceptions) timed event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>5.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>PUT recurring (with exceptions) all day event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>6.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>PUT recurring (with future exceptions) timed event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>7.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>PUT recurring (with future exceptions) all day event</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>8.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/recurrenceput/8.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='VTODOs' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Plain VTODO with no date - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>1todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Plain VTODO with all-day DUE only - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>2todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>Plain VTODO with all-day DTSTART/DURATION only - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>3todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>Plain VTODO with all-day DTSTART only - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>3todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/8.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Plain VTODO with timed DUE only - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>4todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/9.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>Plain VTODO with timed DTSTART/DURATION only - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>5todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/10.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>Plain VTODO with timed DTSTART/DURATION only - recurring</description>
-			<request end-delete='yes'>
-				<method>PUT</method>
-				<ruri>5todo.ics</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/todo/11.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/reports.xml
===================================================================
--- CalDAVTester/trunk/reports.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/reports.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,1201 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/1.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/2.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/3.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>4.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/4.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>5.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/5.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>6.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/6.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>7.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/7.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>8.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/8.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>9.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/9.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>10.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/10.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>11.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/11.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>12.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/12.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>13.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/13.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>14.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/14.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>15.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/15.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>101.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/101.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>102.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/102.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>103.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/103.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>104.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/104.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>105.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/105.txt</filepath>
-			</data>
-		</request>
-		<request end-delete="yes">
-			<method>PUT</method>
-			<ruri>106.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/reports/put/106.txt</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='multiget reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>basic multiget of 4 resources returning etag and entire ics data</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>101.ics</value>
-						<value>102.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>basic multiget of 4 resources returning etag and only VCALENDAR property data (no embedded components)</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>basic multiget of 4 resources returning etag and only VTIMEZONE components</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>basic multiget of 4 resources returning etag and only SUMMARY/UID properties inside VEVENT components and VALARMs</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>101.ics</value>
-						<value>102.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>as 4.txt except that the SUMMARY property value is not returned</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>101.ics</value>
-						<value>102.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>Does allprop</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>Does propname</description>
-			<request>
-				<method>REPORT</method>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/multiget/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='basic query reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>query for resources with VCALENDAR &amp; VEVENT defined</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query for resources with VCALENDAR &amp; VEVENT not defined</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/8.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>15.ics</value>
-						<value>101.ics</value>
-						<value>102.ics</value>
-						<value>103.ics</value>
-						<value>104.ics</value>
-						<value>105.ics</value>
-						<value>106.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>query for resources where the SUMMARY in a VEVENT contains the character '1'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>query for resources where the SUMMARY in a VEVENT does not contain the character '1'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>query for resources where the DESCRIPTION property exists in a VEVENT</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>2.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>query for resources where the DESCRIPTION property does not exist in a VEVENT</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/9.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>query for resources that have a DTSTART in a VEVENT that contains a TZID parameter containing the text 'Paci'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>query for resources that have a DTSTART in a VEVENT that contains a TZID parameter not containing the text 'Paci'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/10.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>4.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>query for resources that have a DTSTART in a VEVENT that contains a TZID parameter containing the text 'Paci' or 'Moun'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>2.ics</value>
-						<value>3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>query for resources where the SUMMARY in a VEVENT contains the character '4' or has a DTSTART in a VEVENT that contains a TZID parameter containing the text 'East'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>4.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='11' ignore='no'>
-			<description>query for resources where the RECURRENCE-ID in a VEVENT does not contain a RANGE parameter</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/11.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='12' ignore='no'>
-			<description>query for resources with VCALENDAR &amp; VTODO defined</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/101.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>101.ics</value>
-						<value>102.ics</value>
-						<value>103.ics</value>
-						<value>104.ics</value>
-						<value>105.ics</value>
-						<value>106.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='13' ignore='no'>
-			<description>query for resources where the SUMMARY in a VTODO contains the character '1'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/102.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>101.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='14' ignore='no'>
-			<description>query for resources that have a DUE in a VTODO that contains a TZID parameter containing the text 'East'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/103.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>102.ics</value>
-						<value>104.ics</value>
-						<value>106.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='15' ignore='no'>
-			<description>query for resources with VCALENDAR &amp; VEVENT or VTODO defined</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/201.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-						<value>101.ics</value>
-						<value>102.ics</value>
-						<value>103.ics</value>
-						<value>104.ics</value>
-						<value>105.ics</value>
-						<value>106.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='16' ignore='no'>
-			<description>query for resources where the SUMMARY in a VEVENT or VTODO contains the character '1'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/202.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-						<value>101.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='17' ignore='no'>
-			<description>query for resources that have a DTSTART in a VEVENT with TZID containg 'Paci' or a DUE in a VTODO with TZID containing 'East'</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/203.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>3.ics</value>
-						<value>102.ics</value>
-						<value>104.ics</value>
-						<value>106.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='18' ignore='no'>
-			<description>query for VEVENTs that do not contain VALARMs</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/basicquery/12.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='time-range query reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>query for VEVENTs within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query for VEVENT/VFREEBUSYs that have a CREATED/DTSTAMP within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-						<value>2.ics</value>
-						<value>3.ics</value>
-						<value>4.ics</value>
-						<value>8.ics</value>
-						<value>9.ics</value>
-						<value>10.ics</value>
-						<value>11.ics</value>
-						<value>12.ics</value>
-						<value>13.ics</value>
-						<value>14.ics</value>
-						<value>15.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>query for VEVENTs within time range with specific SUMMARY text</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>query for VEVENT recurrence instance within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>query for overridden VEVENT instance within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>query for overridden VEVENT not within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>query for overridden this-and-future VEVENT within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/7.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>query for VTODOs within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/101.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>102.ics</value>
-						<value>103.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>query for VTODOs within time range with specific SUMMARY text</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/102.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>102.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>query for VTODO recurrence instance within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/timerangequery/103.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>105.ics</value>
-						<value>106.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='alarm time-range query reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>query for VALARMS within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/alarmtimerangequery/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query for repeating VALARMS within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/alarmtimerangequery/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>query for recurring VALARMS within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/alarmtimerangequery/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>query for recurring/overridden VALARMS within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/alarmtimerangequery/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>6.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>query for VALARMS on VTODO within time range</description>
-			<request>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/alarmtimerangequery/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>102.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='free-busy reports' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>query for free busy with time range</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060101T150000Z/20060101T160000Z</value>
-						<value>20060101T180000Z/20060101T190000Z</value>
-						<value>20060101T210000Z/20060101T220000Z</value>
-						<value>20060101T230000Z/20060102T000000Z</value>
-						<value>20060102T150000Z/20060102T160000Z</value>
-						<value>20060103T150000Z/20060103T160000Z</value>
-						<value>20060104T150000Z/20060104T160000Z</value>
-						<value>20060102T190000Z/20060102T200000Z</value>
-						<value>20060103T190000Z/20060103T200000Z</value>
-						<value>20060104T210000Z/20060104T220000Z</value>
-						<value>20060102T230000Z/20060103T000000Z</value>
-						<value>20060103T230000Z/20060104T000000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>query for free busy with overlapping and consecutive events</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/freebusy/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>freeBusy</callback>
-					<arg>
-						<name>busy</name>
-						<value>20060107T010000Z/20060107T020000Z</value>
-						<value>20060107T150000Z/20060107T163000Z</value>
-						<value>20060108T150000Z/20060108T180000Z</value>
-						<value>20060108T190000Z/20060108T193000Z</value>
-					</arg>
-					<arg>
-						<name>unavailable</name>
-						<value>20060108T130000Z/20060108T150000Z</value>
-					</arg>
-					<arg>
-						<name>tentative</name>
-						<value>20060108T160000Z/20060108T170000Z</value>
-						<value>20060108T210000Z/20060108T213000Z</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='limit/expand recurrence in reports' ignore='no'>
-		<test name='1' ignore='yes'>
-			<description>time-range query with limit over same range</description>
-			<request print-response='yes'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/limitexpand/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='yes'>
-			<description>time-range query with limit over different range</description>
-			<request print-response='yes'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/limitexpand/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>time-range query with expand over same range</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/limitexpand/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>time-range query with expand over different range</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/limitexpand/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>5.ics</value>
-						<value>6.ics</value>
-						<value>7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>query with limit-freebusy-set</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/reports/limitexpand/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>okhrefs</name>
-						<value>15.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/schedule.xml
===================================================================
--- CalDAVTester/trunk/schedule.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/schedule.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,727 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test SCHEDULE method in CalDAV</description>
-
-	<start>
-		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calendar/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/7.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calendar/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/8.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calendar/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/10.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix3:/calendar/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/9.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix3:/calendar/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/10.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/outbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/inbox/</ruri>
-		</request>
-	</start>
-	
-	<test-suite name='SCHEDULE Errors' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>SCHEDULE on invalid outbox</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Organizer</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-collection</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>SCHEDULE with invalid content</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Organizer</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>SCHEDULE with invalid calendar data</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>SCHEDULE without METHOD property</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>SCHEDULE with invalid iTIP object</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>SCHEDULE without Originator:</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator-specified</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>SCHEDULE with non-authorized Originator:</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01-bogus at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>SCHEDULE without Recipient:</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavrecipient-specified</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>SCHEDULE with non-authorized Organizer:</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>SCHEDULE reply with too many Attendees:</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user02 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/17.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='11' ignore='no'>
-			<description>SCHEDULE reply with non-authorized Attendee:</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user02 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/18.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name="SCHEDULEs" ignore='no'>
-		<test name='1'>
-			<description>SCHEDULE which should work</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Make sure resource exists and properties are set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/11.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Make sure resource exists and properties are set</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix2:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Make sure resource exists and properties are set</description>
-			<request  user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix3:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix3:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>SCHEDULE which should work (using relative principal addressing)</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, $principal3:</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-		<test name='6'>
-			<description>SCHEDULE which should work (using absolute principal addressing)</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>$host:/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>$host:/principals/users/user02, $host:$principal3:</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name="Reports on Inbox/Outbox" ignore='no'>
-		<test name='1'>
-			<description>Simple calendar-query for VEVENTs</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/13.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>207</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Simple calendar-query for VEVENTs</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/13.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>207</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Simple calendar-multiget for VEVENTs</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/14.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>badhrefs</name>
-						<value>1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Simple calendar-multiget for VEVENTs</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/15.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value/>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$pathprefix:/inbox/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>free-busy-query failure</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:supported-report</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>free-busy-query failure</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:supported-report</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name="SCHEDULEs free busy" ignore='no'>
-		<test name='1'>
-			<description>SCHEDULE free busy</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T170000Z/PT1H,20060101T190000Z/PT1H,20060101T2
- 20000Z/PT1H</value>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>SCHEDULE free busy - recipients with failure</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:broken at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value><![CDATA[<recipient-exists xmlns='urn:ietf:params:xml:ns:caldav'/>]]></value>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/scheduleacl.xml
===================================================================
--- CalDAVTester/trunk/scheduleacl.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/scheduleacl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,285 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start>
-		<request end-delete="yes">
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with DAV:read only -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with DAV:read only -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with no privileges -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal2.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with DAV:read-free-busy only -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal3.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with no privileges -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with DAV:read only -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal4.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with no privileges -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal5.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with DAV:read-free-busy only -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal6.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with CALDAV:read-free-busy only -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with DAV:read only -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal7.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with no privileges -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal8.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<!--  Event with DAV:read-free-busy only -->
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal9.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Set calendar-free-busy-set to the calendars only -->
-		<request>
-			<method>PROPPATCH</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-			<data substitutions='yes'>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/scheduleacl/1.xml</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='Schedule free-busy' ignore='no'>
-		<test name='1'>
-			<description>SCHEDULE free busy</description>
-			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user02 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleacl/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T060000Z/PT1H,20060101T100000Z/PT1H,20060101T1
- 80000Z/PT1H,20060101T220000Z/PT1H</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end>
-		<!--  Set calendar-free-busy-set back to default -->
-		<request>
-			<method>PROPPATCH</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-			<data substitutions='yes'>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/scheduleacl/2.xml</filepath>
-			</data>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/scheduleauto.xml
===================================================================
--- CalDAVTester/trunk/scheduleauto.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/scheduleauto.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,1177 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test SCHEDULE method in CalDAV</description>
-
-	<start>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/outbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/calendar/</ruri>
-		</request>
-	</start>
-	
-	<test-suite name='SCHEDULE non-recurring without conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/2.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Update to previous request - no auto-reply' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/5.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>One item in resource01 Inbox (old one deleted)</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='Repeat request - no auto-reply' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/5.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>One item in resource01 Inbox (old one deleted)</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='SCHEDULE non-recurring with conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/7.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/8.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/8.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='SCHEDULE recurring with conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/9.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/10.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/10.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='SCHEDULE recurring without conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/11.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/11.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/11.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/11.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/12.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/13.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/13.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='SCHEDULE non-recurring with recurring conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/14.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Two items in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/15.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/15.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='SCHEDULE recurring with recurring conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/16.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/16.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/16.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/16.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Two items in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/17.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/17.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='SCHEDULE cancel non-recurring' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do SCHEDULE</description>
-			<request>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/18.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/18.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/18.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/18.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Two items in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>6</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>6</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/outbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/calendar/</ruri>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/schedulenormal.xml
===================================================================
--- CalDAVTester/trunk/schedulenormal.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/schedulenormal.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,197 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test normal SCHEDULE operations in CalDAV</description>
-
-	<start>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/outbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/inbox/</ruri>
-		</request>
-	</start>
-	
-	<test-suite name="SCHEDULEs" ignore='no'>
-		<test name='1'>
-			<description>Initial REQUEST</description>
-			<request print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, $principal3:</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Make sure resource exists and properties are set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Make sure resource exists and properties are set</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix2:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Make sure resource exists and properties are set</description>
-			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix3:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix3:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>REPLY from one</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>SCHEDULE</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user02</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix2:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/schedulepost.xml
===================================================================
--- CalDAVTester/trunk/schedulepost.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/schedulepost.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,727 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test POST method in CalDAV</description>
-
-	<start>
-		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calendar/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/7.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calendar/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/8.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix2:/calendar/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/10.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix3:/calendar/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/9.ics</filepath>
-			</data>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
-			<method>PUT</method>
-			<ruri>$pathprefix3:/calendar/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/schedule/10.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/outbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/inbox/</ruri>
-		</request>
-	</start>
-	
-	<test-suite name='POST Errors' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>POST on invalid outbox</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Organizer</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-collection</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>POST with invalid content</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Organizer</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>POST with invalid calendar data</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/1.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>POST without METHOD property</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/2.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>POST with invalid iTIP object</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/5.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>POST without Originator:</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator-specified</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>POST with non-authorized Originator:</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01-bogus at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>POST without Recipient:</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavrecipient-specified</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>POST with non-authorized Organizer:</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/4.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>POST reply with too many Attendees:</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user02 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/17.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='11' ignore='no'>
-			<description>POST reply with non-authorized Attendee:</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user02 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/18.txt</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name="POSTs" ignore='no'>
-		<test name='1'>
-			<description>POST which should work</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Make sure resource exists and properties are set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/11.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Make sure resource exists and properties are set</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix2:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Make sure resource exists and properties are set</description>
-			<request  user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix3:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/12.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix3:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>POST which should work (using relative principal addressing)</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, $principal3:</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-		<test name='6'>
-			<description>POST which should work (using absolute principal addressing)</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>$host:/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>$host:/principals/users/user02, $host:$principal3:</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/3.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name="Reports on Inbox/Outbox" ignore='no'>
-		<test name='1'>
-			<description>Simple calendar-query for VEVENTs</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/13.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>207</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Simple calendar-query for VEVENTs</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/13.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>207</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Simple calendar-multiget for VEVENTs</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data substitutions='yes'>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/14.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>badhrefs</name>
-						<value>1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Simple calendar-multiget for VEVENTs</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/15.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>prefix</name>
-						<value/>
-					</arg>
-					<arg>
-						<name>badhrefs</name>
-						<value>$pathprefix:/inbox/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>free-busy-query failure</description>
-			<request print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:supported-report</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6'>
-			<description>free-busy-query failure</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>REPORT</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedule/16.xml</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>DAV:supported-report</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name="POSTs free busy" ignore='no'>
-		<test name='1'>
-			<description>POST free busy</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T170000Z/PT1H,20060101T190000Z/PT1H,20060101T2
- 20000Z/PT1H</value>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>POST free busy - recipients with failure</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:broken at example.com, mailto:user03 at example.com</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedule/6.txt</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value><![CDATA[<recipient-exists xmlns='urn:ietf:params:xml:ns:caldav'/>]]></value>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/schedulepostacl.xml
===================================================================
--- CalDAVTester/trunk/schedulepostacl.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/schedulepostacl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,276 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<start>
-		<request end-delete="yes">
-			<method>MKCOL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with DAV:read only -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal1.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal2.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal3.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with no privileges -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal4.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal5.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal6.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Calendar with CALDAV:read-free-busy only -->
-		<request>
-			<method>MKCALENDAR</method>
-			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal7.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/1.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal8.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/2.xml</filepath>
-			</data>
-		</request>
-		<request>
-			<method>PUT</method>
-			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
-			<data>
-				<content-type>text/calendar; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/cal9.ics</filepath>
-			</data>
-		</request>
-		<request>
-			<method>ACL</method>
-			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
-			<data>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/depthreportsacl/3.xml</filepath>
-			</data>
-		</request>
-		<!--  Set calendar-free-busy-set to the calendars only -->
-		<request>
-			<method>PROPPATCH</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-			<data substitutions='yes'>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/scheduleacl/1.xml</filepath>
-			</data>
-		</request>
-	</start>
-	
-	<test-suite name='Schedule free-busy' ignore='no'>
-		<test name='1'>
-			<description>POST free busy</description>
-			<request user="$userid2:" pswd='$pswd2:' print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>mailto:user02 at example.com</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>mailto:user01 at example.com</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleacl/3.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>dataString</callback>
-					<arg>
-						<name>contains</name>
-						<value>FREEBUSY;FBTYPE=BUSY:20060101T060000Z/PT1H,20060101T100000Z/PT1H,20060101T1
- 80000Z/PT1H,20060101T220000Z/PT1H</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end>
-		<!--  Set calendar-free-busy-set back to default -->
-		<request>
-			<method>PROPPATCH</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-			<data substitutions='yes'>
-				<content-type>text/xml; charset=utf-8</content-type>
-				<filepath>Resource/scheduleacl/2.xml</filepath>
-			</data>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/schedulepostauto.xml
===================================================================
--- CalDAVTester/trunk/schedulepostauto.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/schedulepostauto.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,1177 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test POST method in CalDAV</description>
-
-	<start>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/outbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/calendar/</ruri>
-		</request>
-	</start>
-	
-	<test-suite name='POST non-recurring without conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/1.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/2.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/3.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='Update to previous request - no auto-reply' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/5.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>One item in resource01 Inbox (old one deleted)</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='Repeat request - no auto-reply' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/4.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/5.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>One item in resource01 Inbox (old one deleted)</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='POST non-recurring with conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/7.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/7.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/8.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/8.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='POST recurring with conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/9.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/9.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/10.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/10.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='POST recurring without conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/11.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/11.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/11.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/11.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>One item in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/12.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/13.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/13.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='POST non-recurring with recurring conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/14.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/14.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Two items in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/15.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/15.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='POST recurring with recurring conflict' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/16.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/16.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/16.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/16.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Two items in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>2</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/17.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/17.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<test-suite name='POST cancel non-recurring' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>Do POST</description>
-			<request>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, /principals/users/resource01</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/18.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELAY</method>
-				<ruri>6</ruri>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>One item in user01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/18.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>One item in user02 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/18.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>One item in resource01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>GETNEW</method>
-				<ruri>/calendars/users/resource01/inbox/</ruri>
-				<verify>
-					<callback>dataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/scheduleauto/18.ics</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>Two items in resource01 Calendar</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/calendar/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleauto/6.xml</filepath>
-				</data>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>1</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>One item in resource01 Outbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>/calendars/users/resource01/outbox/</ruri>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>6</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>One item in user01 Inbox</description>
-			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
-				<method>PROPFIND</method>
-				<ruri>$pathprefix:/inbox/</ruri>
-				<verify>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>6</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-	<end>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/outbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/inbox/</ruri>
-		</request>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>/calendars/users/resource01/calendar/</ruri>
-		</request>
-	</end>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/schedulepostnormal.xml
===================================================================
--- CalDAVTester/trunk/schedulepostnormal.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/schedulepostnormal.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,197 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test normal POST operations in CalDAV</description>
-
-	<start>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/outbox/</ruri>
-		</request>
-		<request>
-			<method>DELETEALL</method>
-			<ruri>$pathprefix:/inbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/outbox/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix2:/inbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/outbox/</ruri>
-		</request>
-		<request user="$userid3:" pswd="$pswd3:">
-			<method>DELETEALL</method>
-			<ruri>$pathprefix3:/inbox/</ruri>
-		</request>
-	</start>
-	
-	<test-suite name="POSTs" ignore='no'>
-		<test name='1'>
-			<description>Initial REQUEST</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user02, $principal3:</value>
-				</header>
-				<ruri>$pathprefix:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/1.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Make sure resource exists and properties are set</description>
-			<request print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Make sure resource exists and properties are set</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix2:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix2:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Make sure resource exists and properties are set</description>
-			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>1</value>
-				</header>
-				<ruri>$pathprefix3:/inbox/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>ignore</name>
-						<value>$pathprefix3:/inbox/</value>
-					</arg>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5'>
-			<description>REPLY from one</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>POST</method>
-				<header>
-					<name>Originator</name>
-					<value>/principals/users/user02</value>
-				</header>
-				<header>
-					<name>Recipient</name>
-					<value>/principals/users/user01</value>
-				</header>
-				<ruri>$pathprefix2:/outbox/</ruri>
-				<data>
-					<content-type>text/calendar; charset=utf-8</content-type>
-					<filepath>Resource/schedulenormal/4.ics</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<verify>
-					<callback>header</callback>
-					<arg>
-						<name>header</name>
-						<value>Location$^$pathprefix2:/outbox/[^/]+\.ics$</value>
-					</arg>
-				</verify>
-				<grablocation/>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Deleted: CalDAVTester/trunk/scheduleprops.xml
===================================================================
--- CalDAVTester/trunk/scheduleprops.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/scheduleprops.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,57 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<caldavtest>
-	<description>Test properties defined by caldav-schedule</description>
-
-	<start/>
-	
-	<test-suite name='Inbox/Outbox' ignore='no'>
-		<test name='1' ignore='no'>
-			<description>PROPFIND inbox/outbox URLs</description>
-			<request>
-				<method>PROPFIND</method>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<ruri>$principal:</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/scheduleprops/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>propfindItems</callback>
-					<arg>
-						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-inbox-URL</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-outbox-URL</value>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-user-address-set</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end/>
-	
-</caldavtest>

Added: CalDAVTester/trunk/scripts/performance/perfinfo.dtd
===================================================================
--- CalDAVTester/trunk/scripts/performance/perfinfo.dtd	                        (rev 0)
+++ CalDAVTester/trunk/scripts/performance/perfinfo.dtd	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,42 @@
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<!ELEMENT perfinfo (clients, threads, logging, tests, serverinfo, testinfo, substitutions)? >
+
+	<!ELEMENT clients		(#PCDATA)>
+
+	<!ELEMENT threads		EMPTY>
+		<!ATTLIST threads	enable (yes|no) "no">
+
+	<!ELEMENT logging		EMPTY>
+		<!ATTLIST logging	enable (yes|no) "no">
+
+	<!ELEMENT tests			(test*)>
+		<!ELEMENT test			(spread, runs)>
+			<!ELEMENT spread		(#PCDATA)>
+			<!ELEMENT runs			(#PCDATA)>
+
+	<!ELEMENT serverinfo	(#PCDATA)>
+
+	<!ELEMENT testinfo	(#PCDATA)>
+
+	<!ELEMENT substitutions	(substitution*)>
+		<!ELEMENT substitution	(key, value)>
+			<!ELEMENT key			(#PCDATA)>
+			<!ELEMENT value			(#PCDATA)>
+	

Added: CalDAVTester/trunk/scripts/performance/perfinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/performance/perfinfo.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/performance/perfinfo.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,90 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE perfinfo SYSTEM "perfinfo.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<perfinfo>
+	<clients>20</clients>
+	<threads enable="yes"/>
+	<logging enable="no"/>
+	<tests>
+		<test>
+			<spread>1.0</spread>
+			<runs>5</runs>
+		</test>
+		<test>
+			<spread>2.0</spread>
+			<runs>5</runs>
+		</test>
+		<test>
+			<spread>5.0</spread>
+			<runs>5</runs>
+		</test>
+		<test>
+			<spread>10.0</spread>
+			<runs>2</runs>
+		</test>
+		<test>
+			<spread>20.0</spread>
+			<runs>2</runs>
+		</test>
+		<test>
+			<spread>30.0</spread>
+			<runs>2</runs>
+		</test>
+		<test>
+			<spread>45.0</spread>
+			<runs>2</runs>
+		</test>
+		<test>
+			<spread>60.0</spread>
+			<runs>2</runs>
+		</test>
+	</tests>
+	<serverinfo>scripts/server/serverinfo.xml</serverinfo>
+	<testinfo>performance/put-small.xml</testinfo>
+	<substitutions>
+		<!-- first user id -->
+		<substitution>
+			<key>$userid1:</key>
+			<value>user%02d</value>
+		</substitution>
+		<!-- password for first user -->
+		<substitution>
+			<key>$pswd1:</key>
+			<value>user%02d</value>
+		</substitution>
+		<!-- relative path to first user principal resource-->
+		<substitution>
+			<key>$principal:</key>
+			<value>/principals/users/user%02d</value>
+		</substitution>
+		<!-- relative path to first user calendar home-->
+		<substitution>
+			<key>$pathprefix:</key>
+			<value>/calendars/users/user%02d</value>
+		</substitution>
+		<!-- relative path to first user calendar home-->
+		<substitution>
+			<key>$calendarpath1:</key>
+			<value>/calendars/users/user%02d/calendar</value>
+		</substitution>
+	</substitutions>
+</perfinfo>

Added: CalDAVTester/trunk/scripts/server1/serverinfo.dtd
===================================================================
--- CalDAVTester/trunk/scripts/server1/serverinfo.dtd	                        (rev 0)
+++ CalDAVTester/trunk/scripts/server1/serverinfo.dtd	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,29 @@
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<!ELEMENT serverinfo (host, port, ssl?, substitutions, serverfilepath)? >
+
+	<!ELEMENT host			(#PCDATA)>
+	<!ELEMENT port			(#PCDATA)>
+	<!ELEMENT ssl			EMPTY>
+	<!ELEMENT substitutions	(substitution*)>
+		<!ELEMENT substitution	(key, value)>
+			<!ELEMENT key			(#PCDATA)>
+			<!ELEMENT value			(#PCDATA)>
+	<!ELEMENT serverfilepath	(#PCDATA)>
+	

Added: CalDAVTester/trunk/scripts/server1/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server1/serverinfo.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/server1/serverinfo.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,117 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<serverinfo>
+	<host>localhost</host>
+	<port>8008</port>
+	<substitutions>
+		<substitution>
+			<key>$host:</key>
+			<value>http://localhost:8008</value>
+		</substitution>
+
+		<!-- user id for admin user -->
+		<substitution>
+			<key>$useradmin:</key>
+			<value>admin</value>
+		</substitution>
+		<!-- password for admin user -->
+		<substitution>
+			<key>$pswdadmin:</key>
+			<value>admin</value>
+		</substitution>
+		<!-- relative path to admin principal resource-->
+		<substitution>
+			<key>$principaladmin:</key>
+			<value>/principals/users/admin</value>
+		</substitution>
+
+		<!-- relative path to first user principal resource-->
+		<substitution>
+			<key>$userid1:</key>
+			<value>user01</value>
+		</substitution>
+		<!-- password for first user -->
+		<substitution>
+			<key>$pswd1:</key>
+			<value>user01</value>
+		</substitution>
+		<!-- relative path to first user principal resource-->
+		<substitution>
+			<key>$principal:</key>
+			<value>/principals/users/user01</value>
+		</substitution>
+		<!-- relative path to first user calendar home-->
+		<substitution>
+			<key>$pathprefix:</key>
+			<value>/calendars/users/user01</value>
+		</substitution>
+		<!-- relative path to first user calendar home-->
+		<substitution>
+			<key>$calendarpath1:</key>
+			<value>/calendars/users/user01/calendar</value>
+		</substitution>
+		
+		<!-- user id for second user -->
+		<substitution>
+			<key>$userid2:</key>
+			<value>user02</value>
+		</substitution>
+		<!-- password for second user -->
+		<substitution>
+			<key>$pswd2:</key>
+			<value>user02</value>
+		</substitution>
+		<!-- relative path to second user principal resource-->
+		<substitution>
+			<key>$principal2:</key>
+			<value>/principals/users/user02</value>
+		</substitution>
+		<!-- relative path to second user calendar home-->
+		<substitution>
+			<key>$pathprefix2:</key>
+			<value>/calendars/users/user02</value>
+		</substitution>
+		
+		<!-- user id for third user -->
+		<substitution>
+			<key>$userid3:</key>
+			<value>user03</value>
+		</substitution>
+		<!-- password for third user -->
+		<substitution>
+			<key>$pswd3:</key>
+			<value>user03</value>
+		</substitution>
+		<!-- relative path to third user principal resource-->
+		<substitution>
+			<key>$principal3:</key>
+			<value>/principals/users/user03</value>
+		</substitution>
+		<!-- relative path to third user calendar home-->
+		<substitution>
+			<key>$pathprefix3:</key>
+			<value>/calendars/users/user03</value>
+		</substitution>
+	</substitutions>
+	<serverfilepath>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/CalendarServer/twistedcaldav/test/data/</serverfilepath>
+</serverinfo>

Added: CalDAVTester/trunk/scripts/server1/sslserverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server1/sslserverinfo.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/server1/sslserverinfo.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,111 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<serverinfo>
+	<host>localhost</host>
+	<port>8443</port>
+	<ssl/>
+	<calendarpath>/calendars/users/user01/calendar</calendarpath>
+	<user>user01</user>
+	<pswd>user01</pswd>
+	<substitutions>
+		<substitution>
+			<key>$host:</key>
+			<value>https://localhost:8443</value>
+		</substitution>
+
+		<!-- user id for admin user -->
+		<substitution>
+			<key>$useradmin:</key>
+			<value>admin</value>
+		</substitution>
+		<!-- password for admin user -->
+		<substitution>
+			<key>$pswdadmin:</key>
+			<value>admin</value>
+		</substitution>
+		<!-- relative path to admin principal resource-->
+		<substitution>
+			<key>$principaladmin:</key>
+			<value>/principals/users/admin</value>
+		</substitution>
+
+		<!-- relative path to first user principal resource-->
+		<substitution>
+			<key>$userid1:</key>
+			<value>user01</value>
+		</substitution>
+		<!-- relative path to first user principal resource-->
+		<substitution>
+			<key>$principal:</key>
+			<value>/principals/users/user01</value>
+		</substitution>
+		<!-- relative path to first user calendar home-->
+		<substitution>
+			<key>$pathprefix:</key>
+			<value>/calendars/users/user01</value>
+		</substitution>
+		
+		<!-- user id for second user -->
+		<substitution>
+			<key>$userid2:</key>
+			<value>user02</value>
+		</substitution>
+		<!-- password for second user -->
+		<substitution>
+			<key>$pswd2:</key>
+			<value>user02</value>
+		</substitution>
+		<!-- relative path to second user principal resource-->
+		<substitution>
+			<key>$principal2:</key>
+			<value>/principals/users/user02</value>
+		</substitution>
+		<!-- relative path to second user calendar home-->
+		<substitution>
+			<key>$pathprefix2:</key>
+			<value>/calendars/users/user02</value>
+		</substitution>
+		
+		<!-- user id for third user -->
+		<substitution>
+			<key>$userid3:</key>
+			<value>user03</value>
+		</substitution>
+		<!-- password for third user -->
+		<substitution>
+			<key>$pswd3:</key>
+			<value>user03</value>
+		</substitution>
+		<!-- relative path to third user principal resource-->
+		<substitution>
+			<key>$principal3:</key>
+			<value>/principals/users/user03</value>
+		</substitution>
+		<!-- relative path to third user calendar home-->
+		<substitution>
+			<key>$pathprefix3:</key>
+			<value>/calendars/users/user03</value>
+		</substitution>
+	</substitutions>
+	<serverfilepath>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/CalendarServer/twistedcaldav/test/data/</serverfilepath>
+</serverinfo>

Added: CalDAVTester/trunk/scripts/tests1/acl.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/acl.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/acl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,1009 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test ACLs on the server</description>
+
+	<start>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/1.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/2.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1todo.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/todo/1.txt</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix2:/visibletouser01/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>ACL</method>
+			<ruri>$pathprefix2:/visibletouser01/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acls/3.xml</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/visibletouser01/hidden1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/acls/16.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>ACL</method>
+			<ruri>$pathprefix2:/visibletouser01/hidden1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acls/20.xml</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/visibletouser01/visible2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/acls/17.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix2:/notvisibletouser01/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>ACL</method>
+			<ruri>$pathprefix2:/notvisibletouser01/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acls/4.xml</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/notvisibletouser01/hidden1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/acls/16.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix2:/writeabletouser01/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>ACL</method>
+			<ruri>$pathprefix2:/writeabletouser01/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acls/13.xml</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix2:/calreadtoauth/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>ACL</method>
+			<ruri>$pathprefix2:/calreadtoauth/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acls/18.xml</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calreadtoauth/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/acls/16.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>MKCOL</method>
+			<ruri>$pathprefix2:/colreadtoauth/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>ACL</method>
+			<ruri>$pathprefix2:/colreadtoauth/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acls/18.xml</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/colreadtoauth/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/acls/16.ics</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Read ACLs' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>PROPFIND existing VEVENT</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>/calendars/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:getcontentlength</value>
+						<value>DAV:getcontenttype</value>
+						<value>DAV:resourcetype</value>
+						<value>DAV:getetag</value>
+						<value>DAV:displayname</value>
+						<value>DAV:supported-privilege-set</value>
+						<value>DAV:current-user-privilege-set</value>
+						<value>DAV:acl</value>
+						<value>DAV:acl-restrictions</value>
+						<value>DAV:inherited-acl-set</value>
+						<value>DAV:principal-collection-set</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:owner</value>
+						<value>DAV:group</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PROPFIND without DAV:read-acl or DAV:read-current-user-privilege-set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>/calendars/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:getcontentlength</value>
+						<value>DAV:getcontenttype</value>
+						<value>DAV:resourcetype</value>
+						<value>DAV:getetag</value>
+						<value>DAV:displayname</value>
+						<value>DAV:supported-privilege-set</value>
+						<value>DAV:acl-restrictions</value>
+						<value>DAV:inherited-acl-set</value>
+						<value>DAV:principal-collection-set</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:current-user-privilege-set</value>
+						<value>DAV:acl</value>
+						<value>DAV:owner</value>
+						<value>DAV:group</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for schedule privilege on iTIP Inbox</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>DAV:read</value>
+						<value>DAV:write</value>
+						<value>DAV:write-acl</value>
+						<value>DAV:read-current-user-privilege-set</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for schedule privilege on iTIP Outbox</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>DAV:read</value>
+						<value>DAV:write</value>
+						<value>DAV:write-acl</value>
+						<value>DAV:read-current-user-privilege-set</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for lack of schedule privilege on regular calendar</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>DAV:read</value>
+						<value>DAV:write</value>
+						<value>DAV:write-acl</value>
+						<value>DAV:read-current-user-privilege-set</value>
+					</arg>
+					<arg>
+						<name>denied</name>
+						<value>urn:ietf:params:xml:ns:caldavschedule</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='PROPFIND interaction with ACL' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>PROPFIND all calendars</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix2:/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value/>
+						<value>visibletouser01/</value>
+						<value>writeabletouser01/</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PROPFIND: prinicpal-collection-set test</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/14.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:principal-collection-set$&lt;href>/principals/users/&lt;/href></value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='ACL method preconditions' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Failure when DAV:write-acl not granted</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>$pathprefix2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>DAV:no-ace-conflict precondition failure - attempt to set protected ACE</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/5.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:no-ace-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>DAV:no-ace-conflict precondition failure - attempt to set inherited ACE</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:no-ace-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>DAV:no-protected-ace-conflict precondition failure - attempt to change protected ACE</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/7.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:no-protected-ace-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<!-- This error is no longer generated by the server.
+		<test name='5' ignore='no'>
+			<description>DAV:no-inherited-ace-conflict precondition failure - attempt to change inherited ACE</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/8.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:no-inherited-ace-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		-->
+		<test name='6' ignore='no'>
+			<description>DAV:deny-before-grant precondition failure - attempt to deny before grant a set of ACEs</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/9.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:deny-before-grant</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>DAV:not-supported-privilege precondition failure - attempt to use unsupported privilege</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/10.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:not-supported-privilege</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>DAV:recognized-principal precondition failure - attempt to use unknown principal</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:recognized-principal</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Valid command</description>
+			<request print-response='no'>
+				<method>ACL</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:recognized-principal</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='COPY/MOVE interaction with ACL' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>COPY to non-writeable shared calendar</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/visibletouser01/copy1.ics</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>COPY to non-visible shared calendar</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/notvisibletouser01/copy1.ics</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>COPY to non-visible shared calendar with overwrite</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/notvisibletouser01/hidden1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>COPY to visible with no overwrite shared calendar</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/writeabletouser01/1.ics</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>COPY to writeable shared calendar</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/writeabletouser01/copy1.ics</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>MOVE to non-writeable shared calendar</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/visibletouser01/move2.ics</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>MOVE to non-visible shared calendar</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/notvisibletouser01/move2.ics</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>MOVE to non-visible shared calendar with overwrite</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/notvisibletouser01/hidden1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>MOVE to writeable shared calendar</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix2:/writeabletouser01/move2.ics</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Principal Properties' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>PROPFIND principal VEVENT</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$principal:</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:alternate-URI-set</value>
+						<value>DAV:principal-URL$&lt;href>$principal:&lt;/href></value>
+						<value>DAV:group-member-set</value>
+						<value>DAV:group-membership</value>
+						<value>DAV:displayname$User 01</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Directory list access' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Get calendar home collection</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix2:/</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>inbox</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Get calendar collection</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix2:/visibletouser01/</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>VTODO</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>VEVENT</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='ACL calendar collection inheritance' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Check that read is not set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/calreadtoauth/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Check that read is not inherited</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/calreadtoauth/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Set read on collection only</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>ACL</method>
+				<ruri>$pathprefix2:/calreadtoauth/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/19.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check that read is set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/calreadtoauth/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check that read is inherited</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/calreadtoauth/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='ACL regular collection no inheritance' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Check that read is not set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/colreadtoauth/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Check that read is not inherited</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/colreadtoauth/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Set read on collection only</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>ACL</method>
+				<ruri>$pathprefix2:/colreadtoauth/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/19.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check that read is set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/colreadtoauth/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check that read is inherited</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix2:/colreadtoauth/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acls/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETE</method>
+			<ruri>$pathprefix2:/visibletouser01/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETE</method>
+			<ruri>$pathprefix2:/notvisibletouser01/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETE</method>
+			<ruri>$pathprefix2:/writeabletouser01/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETE</method>
+			<ruri>$pathprefix2:/calreadtoauth/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETE</method>
+			<ruri>$pathprefix2:/colreadtoauth/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/acldisabled.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/acldisabled.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/acldisabled.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,335 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test ACLs on the server</description>
+
+	<start>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/</ruri>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/collection/disabled/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acldisabled/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/collection/enabled/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/acldisabled/1.xml</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Read Resource OK' ignore='yes'>
+		<test name='1' ignore='no'>
+			<description>GET on disabled ics, user01</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>GET on disabled ics, user02</description>
+			<request print-response='no' user='$userid2:' pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>GET on disabled ics, admin</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>GET on enabled ics, user01</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='PROPFIND OK' ignore='yes'>
+		<test name='1' ignore='no'>
+			<description>PROPFIND on collection, depth infinity</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acldisabled/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/collection/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value/>
+						<value>enabled/</value>
+						<value>enabled/1.ics</value>
+						<value>disabled/</value>
+						<value>disabled/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PROPFIND on disabled, depth infinity</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/disabled/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acldisabled/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/collection/disabled/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value/>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Disable Access' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Disable access</description>
+			<request>
+				<method>ACCESS-DISABLE</method>
+				<ruri>$pathprefix:/collection/disabled</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Read Resource Forbidden' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>GET on ics, user01</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>GET on ics, user02</description>
+			<request print-response='no' user='$userid2:' pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>GET on ics, admin</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>GET on enabled ics, user01</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/enabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='PROPFIND FORBIDDEN' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>PROPFIND on collection, depth infinity</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acldisabled/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/collection/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value/>
+						<value>enabled/</value>
+						<value>enabled/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PROPFIND on disabled, depth infinity</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/disabled/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/acldisabled/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Delete Resource Forbidden, then allowed' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>DELETE on ics, user01</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Enable access</description>
+			<request>
+				<method>ACCESS-ENABLE</method>
+				<ruri>$pathprefix:/collection/disabled</ruri>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>DELETE on ics, user01</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/disabled/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end>
+		<request>
+			<method>DELETE</method>
+			<ruri>$pathprefix:/collection/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/aclreports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/aclreports.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/aclreports.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,635 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test ACLs on the server</description>
+
+	<start>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/aclreports/10.xml</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/2.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/aclreports/9.xml</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1todo.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/todo/1.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='acl-principal-prop-set REPORT' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>No DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Too many DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>No DAV:read-acl privilege</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Valid report</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>/principals/users/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>$userid1:</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$useradmin:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='principal-match REPORT' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Too many DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>500</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Valid self report with DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$userid1:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Valid self report without DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/5.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>$userid1:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Valid principal-search report with DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/7.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Valid principal-search report without DAV:prop</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/8.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>principal-search with inaccessible property</description>
+			<request print-response='no' user='$userid2:' pswd='$pswd2:'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='principal-property-search REPORT' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Valid non-apply-to report with DAV:prop</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>REPORT</method>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>public01</value>
+						<value>resource01</value>
+						<value>$userid1:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Valid non-apply-to report without DAV:prop</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>REPORT</method>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>public02</value>
+						<value>resource02</value>
+						<value>user02</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Valid apply-to report with DAV:prop</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>REPORT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/14.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>/principals/users/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>public01</value>
+						<value>resource01</value>
+						<value>$userid1:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Valid non-apply-to report without DAV:prop</description>
+			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
+				<method>REPORT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>/principals/users/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>public02</value>
+						<value>resource02</value>
+						<value>user02</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='principal-search-property-set REPORT' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Wrong Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Report on non-principal collection</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:supported-report</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Valid report</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/aclreports/18.xml</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='supported-report-set property' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Regular resource</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>207</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/aclreports/19.xml</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Regular resource</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>/principals/users/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/aclreports/17.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>207</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/aclreports/20.xml</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/attachments.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/attachments.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/attachments.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,144 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test attachments with CalDAV</description>
+
+	<start/>
+	
+	<test-suite name='Inline'>
+		<test name='1' ignore='no'>
+			<description>VEVENT with image/jpeg</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/attachments/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH;FMTTYPE=image/jpeg;ENCODING=BASE64;VALUE=BINARY:</value>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>RQAUUUUAFFFFAH//2Q==</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>VTODO with image/jpeg</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/attachments/2.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH;FMTTYPE=image/jpeg;ENCODING=BASE64;VALUE=BINARY:</value>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>RQAUUUUAFFFFAH//2Q==</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='External'>
+		<test name='1' ignore='no'>
+			<description>VEVENT with http://</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/attachments/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>3.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>ATTACHMENT:http://www.example.com/test.jpg</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>VTODO with image/jpeg</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/attachments/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>4.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>ATTACHMENT:http://www.example.com/test.jpg</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/caldavIOP.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/caldavIOP.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/caldavIOP.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,275 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start/>
+	
+	<test-suite name='1. Event Creation'>
+		<test name='1.1'>
+			<description>Create new single-instance meeting titled "Meeting 1.1" with the location "Durham".</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1-1_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/1/1_1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='1.2'>
+			<description>Create new meeting titled "Meeting 1.2" recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1-1_2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/1/1_2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='1.3'>
+			<description>Create new single-instance meeting titled "Meeting 1.3" with 2 other attendees.</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1-1_3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/1/1_3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='1.4'>
+			<description>Create new single-instance meeting titled "Meeting 1.4" with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1-1_4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/1/1_4.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='2. Event Modification'>
+		<test name='2.1'>
+			<description>Modify the title of meeting "Meeting 1.1" to "Meeting 1.1bis".</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_1.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.2'>
+			<description>Modify the location of the meeting "Meeting 1.1bis" to "Seattle bis".</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_2.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.3'>
+			<description>Reschedule meeting "Meeting 1.1bis" to the next day.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_3.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.4'>
+			<description>Add an attendee to "Meeting 1.1bis".</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_4.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.5'>
+			<description>Add an alarm to "Meeting 1.1bis".</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_5.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.6'>
+			<description>Modify the title of the 1st instance of the recurring meeting created in 1.2.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_6.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.7'>
+			<description>Modify the participation status of 1st instance to DECLINED.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_7.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.8'>
+			<description>Cancel the 4th instance of the recurring meeting created in 1.2.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>1-1_2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_8.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2.9'>
+			<description>One client changes "Meeting 1.1bis" to a different time, second client 'refreshes' its display to see the modification.</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>2-2_9.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/2/2_9.txt</filepath>
+				</data>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='4. Event Deletion'>
+		<test name='4.1'>
+			<description>Delete a single non-recurring meeting.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>4-4_1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_1.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>4-4_1.ics</ruri>
+			</request>
+		</test>
+		<test name='4.2'>
+			<description>Delete a single recurring meeting with no overridden instances.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>4-4_2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_2.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>4-4_2.ics</ruri>
+			</request>
+		</test>
+		<test name='4.3'>
+			<description>Delete a single recurring meeting with overridden instances.</description>
+			<request>
+				<method>PUT</method>
+				<ruri>4-4_3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_3.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>4-4_3.ics</ruri>
+			</request>
+		</test>
+		<test name='4.4'>
+			<description>Delete a non-overridden instance of a recurring meeting.</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4-4_4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_4a.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>4-4_4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_4b.txt</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='4.5'>
+			<description>Delete an overridden instance of a recurring meeting.</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4-4_5.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_5a.txt</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>4-4_5.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/caldaviop/4/4_5b.txt</filepath>
+				</data>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/copymove.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/copymove.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/copymove.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,439 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test COPY/MOVE methods in CalDAV to ensure proper behaviour
+	of calendar resources wrt UIDs, server indexing etc</description>
+
+	<start>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/1.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/2.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/calendar2/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/calendar2/2_2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/2.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/3.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/3.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/4.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/calendar2/4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/4.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/5.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/copymove/6.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='COPY'>
+		<test name='1' ignore='no'>
+			<description>COPY within same calendar to new resource</description>
+			<request print-response="no">
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+						<value>409</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>COPY within same calendar to existing resource with overwrite</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+						<value>409</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>COPY within same calendar to existing resource without overwrite</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>F</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+						<value>409</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>COPY to different calendar, new resource</description>
+			<request print-response="no">
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>COPY to different calendar, new resource, duplicate UID</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/copy2_2.ics</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+						<value>409</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>COPY to different calendar, existing resource with overwrite</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>COPY to different calendar, existing resource with overwrite, duplicate UID</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+						<value>409</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>COPY to different calendar, existing resource without overwrite</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>F</value>
+				</header>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>412</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>COPY to different calendar, existing resource without overwrite, duplicate UID</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/copy2_1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>F</value>
+				</header>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>412</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='MOVE' ignore='no'>
+		<test name='1'>
+			<description>MOVE within same calendar to new resource</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>5.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>2xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>MOVE within same calendar to existing resource with overwrite</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>6.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+						<value>409</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>MOVE within same calendar to existing resource without overwrite</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>F</value>
+				</header>
+				<ruri>3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>412</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>MOVE to different calendar, new resource</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/move2_1.ics</value>
+				</header>
+				<ruri>move1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>2xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>MOVE to different calendar, existing resource with overwrite</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/3.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>T</value>
+				</header>
+				<ruri>3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>2xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>MOVE to different calendar, existing resource without overwrite</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar2/4.ics</value>
+				</header>
+				<header>
+					<name>Overwrite</name>
+					<value>F</value>
+				</header>
+				<ruri>4.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>412</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end>
+		<request>
+			<method>DELETE</method>
+			<ruri>copy1.ics</ruri>
+		</request>
+		<request>
+			<method>DELETE</method>
+			<ruri>move1.ics</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/delete.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/delete.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/delete.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,85 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test DELETE method in CalDAV to ensure proper behaviour
+	of server indexing</description>
+
+	<start>
+		<request end-delete="yes" print-response="yes">
+			<method>PUT</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/delete/1.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1todo.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/todo/1.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='DELETE'>
+		<test name='1'>
+			<description>DELETE existing VEVENT</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>DELETE existing VTODO</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>1todo.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>DELETE non-existing resource</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/depthreports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/depthreports.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/depthreports.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,827 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start>
+		<request end-delete="yes">
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/2.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/3.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/4.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/5.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/6.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/7.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/7.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/8.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/8.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/9.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/9.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/10.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/10.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/11.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/11.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/12.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/12.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/13.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/13.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/14.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/14.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar/15.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/15.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/2.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/16.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/16.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/top-collection/collection/</ruri>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/collection/calendar3/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/2.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/collection/calendar3/10.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/10.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/collection/calendar3/17.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/17.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='multiget reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>multiget on calendar</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/depth1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>multiget on collection</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/depth2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar/1.ics</value>
+						<value>calendar/2.ics</value>
+						<value>calendar/3.ics</value>
+						<value>calendar/4.ics</value>
+						<value>calendar2/1.ics</value>
+						<value>calendar2/16.ics</value>
+						<value>collection/calendar3/2.ics</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>multiget on calendar resource</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/depth3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/top-collection/calendar/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>multiget on non calendar resource</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/1.ics</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/depth4.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='basic query reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>query on calendar with no Depth</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query on calendar with Depth 0</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>query on calendar with Depth 1</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>query on calendar with Depth infinity</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>query on collection with no Depth</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>query on collection with Depth 0</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>query on collection with Depth 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar/1.ics</value>
+						<value>calendar/10.ics</value>
+						<value>calendar/11.ics</value>
+						<value>calendar/12.ics</value>
+						<value>calendar/13.ics</value>
+						<value>calendar/14.ics</value>
+						<value>calendar2/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>query on collection with Depth infinity</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar/1.ics</value>
+						<value>calendar/10.ics</value>
+						<value>calendar/11.ics</value>
+						<value>calendar/12.ics</value>
+						<value>calendar/13.ics</value>
+						<value>calendar/14.ics</value>
+						<value>calendar2/1.ics</value>
+						<value>collection/calendar3/10.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>query on matching calendar resource with no Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/top-collection/calendar/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>query on non-matching calendar resource with no Depth</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/2.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>query on non calendar resource with no Depth</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>4xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='free-busy reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>query for free busy on calendar with no Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T150000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T170000Z</value>
+						<value>20060108T210000Z/20060108T213000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query for free busy on calendar with Depth 0</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T150000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T170000Z</value>
+						<value>20060108T210000Z/20060108T213000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>query for free busy on calendar with Depth 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T150000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T170000Z</value>
+						<value>20060108T210000Z/20060108T213000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>query for free busy on calendar with Depth infinity</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T150000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T170000Z</value>
+						<value>20060108T210000Z/20060108T213000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>query for free busy on collection with no Depth</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>query for free busy on collection with Depth 0</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>query for free busy on collection with Depth 1</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+						<value>20060108T200000Z/20060108T203000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T170000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T173000Z</value>
+						<value>20060108T210000Z/20060108T213000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>query for free busy on collection with Depth infinity</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+						<value>20060108T200000Z/20060108T210000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T170000Z</value>
+						<value>20060108T173000Z/20060108T180000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T173000Z</value>
+						<value>20060108T210000Z/20060108T220000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>query for free busy on resource</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/top-collection/calendar/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>4xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/depthreportsacl.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/depthreportsacl.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/depthreportsacl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,307 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start>
+		<request end-delete="yes">
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with DAV:read only -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal2.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal3.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with no privileges -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal4.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal5.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal6.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with CALDAV:read-free-busy only -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal7.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal8.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal9.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>multiget on top collection</description>
+			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/depthreportsacl/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar1/1.ics</value>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>calendar1/2.ics</value>
+						<value>calendar1/3.ics</value>
+						<value>calendar2/1.ics</value>
+						<value>calendar2/2.ics</value>
+						<value>calendar2/3.ics</value>
+						<value>calendar3/1.ics</value>
+						<value>calendar3/2.ics</value>
+						<value>calendar3/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query on top collection</description>
+			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/depthreportsacl/5.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar1/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>query for free busy on collection with Depth infinity</description>
+			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/top-collection/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/depthreportsacl/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060101T060000Z/20060101T070000Z</value>
+						<value>20060101T100000Z/20060101T110000Z</value>
+						<value>20060101T180000Z/20060101T190000Z</value>
+						<value>20060101T220000Z/20060101T230000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/encodedURIs.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/encodedURIs.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/encodedURIs.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,278 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start>
+		<request end-delete='yes'>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection%201/</ruri>
+		</request>
+		<request end-delete='yes'>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/calendar%202/</ruri>
+		</request>
+		<request end-delete='yes'>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/calendar%203/</ruri>
+		</request>
+	</start>
+
+	<test-suite name='regular resource'>
+		<test name='1'>
+			<description>PUT</description>
+			<request print-response='no' end-delete='yes'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection%201/2%20a.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>!Location</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+
+		<test name='2'>
+			<description>COPY</description>
+			<request print-response='no' end-delete='yes'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/collection%201/2_2%20a.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection%201/2%20a.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$$host:$pathprefix:/collection%201/2_2%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection%201/2_2%20a.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>$pathprefix:/collection%201/2_2%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>MOVE</description>
+			<request print-response='no' end-delete='yes'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/collection%201/2_3%20a.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection%201/2%20a.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$$host:$pathprefix:/collection%201/2_3%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection%201/2_2%20a.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>$pathprefix:/collection%201/2_2%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='calendar resource'>
+		<test name='1'>
+			<description>PUT</description>
+			<request print-response='no' end-delete='yes'>
+				<method>PUT</method>
+				<ruri>2%20a.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>!Location</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>COPY</description>
+			<request print-response='no' end-delete='yes'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar%202/2_2%20a.ics</value>
+				</header>
+				<ruri>2%20a.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$$host:$pathprefix:/calendar%202/2_2%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/calendar%202/2_2%20a.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>$pathprefix:/calendar%202/2_2%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>MOVE</description>
+			<request print-response='no' end-delete='yes'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar%203/2_3%20a.ics</value>
+				</header>
+				<ruri>2%20a.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$$host:$pathprefix:/calendar%203/2_3%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/calendar%203/2_3%20a.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>$pathprefix:/calendar%203/2_3%20a.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/errors.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/errors.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/errors.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,1105 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Tests of various pre-/post-conditions</description>
+
+	<start>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/6.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/calendar2/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/calendar2/6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/6.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/calendar2/7.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/7.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/1.xml</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/errors/1.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/2.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/3.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/4.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/5.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/6.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/7.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/7.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/8.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/8.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix:/9.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/errors/9.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='PUT' ignore='no'>
+		<test name='1'>
+			<description>PUT non-calendar data</description>
+			<request>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PUT invalid calendar data</description>
+			<request>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PUT with multiple component types</description>
+			<request>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>PUT with METHOD property</description>
+			<request>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>PUT with different uids in same resource</description>
+			<request>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>PUT with duplicate uids</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>PUT with different uid onto existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>PUT with too many recurrence instances to new resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/8.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>PUT with too many recurrence instances to existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/9.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>PUT without timezone</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/errors/28.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='COPY' ignore='no'>
+		<test name='1'>
+			<description>COPY non-calendar data</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/1.xml</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>COPY invalid calendar data</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/2.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>COPY with multiple component types</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/3.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>COPY with METHOD property</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/4.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>COPY with different uids in same resource</description>
+			<request>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/5.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>COPY with duplicate uids</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/6.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>COPY from calendar with duplicate uids</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/copy1.ics</value>
+				</header>
+				<ruri>$pathprefix:/calendar2/6.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>COPY with different uid onto existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/7.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>COPY from calendar with different uid onto existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/calendar2/7.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>COPY with too many recurrence instances to new resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/2.ics</value>
+				</header>
+				<ruri>$pathprefix:/8.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11'>
+			<description>COPY with too many recurrence instances to existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/9.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='MOVE' ignore='no'>
+		<test name='1'>
+			<description>MOVE non-calendar data</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/1.xml</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>MOVE invalid calendar data</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/2.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>MOVE with multiple component types</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/3.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>MOVE with METHOD property</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/4.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>MOVE with different uids in same resource</description>
+			<request>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/5.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>MOVE with duplicate uids</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/6.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>MOVE from calendar with duplicate uids</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/move1.ics</value>
+				</header>
+				<ruri>$pathprefix:/calendar2/6.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>MOVE with different uid onto existing resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/7.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>MOVE from calendar with different uid onto existing resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/calendar2/7.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>MOVE with too many recurrence instances to new resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/2.ics</value>
+				</header>
+				<ruri>$pathprefix:/8.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11'>
+			<description>MOVE with too many recurrence instances to existing resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$host:$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/9.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='REPORT/calendar-data' ignore='no'>
+		<test name='1'>
+			<description>query with invalid calendar-data content-type</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/10.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>query with invalid calendar-data version</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/11.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>multiget with invalid calendar-data content-type</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/12.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>multiget with invalid calendar-data version</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/13.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='REPORT/filter' ignore='no'>
+		<test name='1'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/14.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/15.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/16.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/17.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/18.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/19.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/20.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/21.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>query with invalid filter</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/22.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>query with invalid time-range (dates)</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/29.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11'>
+			<description>query with invalid time-range (floating)</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/30.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>free-busy with invalid time-range (dates)</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/31.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13'>
+			<description>free-busy with invalid time-range (floating)</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/32.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>400</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='REPORT/too big' ignore='no'>
+		<test name='1'>
+			<description>query with too many results</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/calendar.1000/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/23.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:number-of-matches-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>multiget with too many results</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/calendar.1000/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/24.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:number-of-matches-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>free-busy with too many results</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/calendar.1000/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/25.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:number-of-matches-within-limits</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Invalid CalDAV:timezone' ignore='no'>
+		<test name='1'>
+			<description>query with invalid timezone</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/26.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>proppatch with invalid timezone</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/errors/27.txt</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>badprops</name>
+						<value>urn:ietf:params:xml:ns:caldavcalendar-timezone</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/floating.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/floating.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/floating.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,497 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test all-day/floating tests for timezone proeprty</description>
+
+	<start>
+		<request end-delete="yes">
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/floating/</ruri>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/floating/calendar-none/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/2.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/3.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/4.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/5.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/6.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-none/7.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/7.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/floating/calendar-us/</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/8.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/1.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/2.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/3.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/4.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/5.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/6.txt</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/floating/calendar-us/7.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/floating/put/7.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='REPORT floating behaviour - calendar without timezone'>
+		<test name='1' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Eastern</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-none/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/calendar-none/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-none/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/calendar-none/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-none/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/calendar-none/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='REPORT floating behaviour - calendar with timezone'>
+		<test name='1' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: no timezone</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-us/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/calendar-us/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Eastern</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-us/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/calendar-us/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
+			<request>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-us/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/calendar-us/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='REPORT floating behaviour - collection'>
+		<test name='1' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: no timezone</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/floating/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar-none/1.ics</value>
+						<value>calendar-none/3.ics</value>
+						<value>calendar-none/5.ics</value>
+						<value>calendar-none/6.ics</value>
+						<value>calendar-us/1.ics</value>
+						<value>calendar-us/3.ics</value>
+						<value>calendar-us/5.ics</value>
+						<value>calendar-us/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Eastern</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/floating/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar-none/1.ics</value>
+						<value>calendar-none/3.ics</value>
+						<value>calendar-none/5.ics</value>
+						<value>calendar-none/6.ics</value>
+						<value>calendar-us/1.ics</value>
+						<value>calendar-us/3.ics</value>
+						<value>calendar-us/5.ics</value>
+						<value>calendar-us/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>REPORT on non-recurring timed/floating events: US/Pacific</description>
+			<request>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/floating/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value>$pathprefix:/floating/</value>
+					</arg>
+					<arg>
+						<name>okhrefs</name>
+						<value>calendar-none/1.ics</value>
+						<value>calendar-none/3.ics</value>
+						<value>calendar-none/6.ics</value>
+						<value>calendar-us/1.ics</value>
+						<value>calendar-us/3.ics</value>
+						<value>calendar-us/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='REPORT free-busy floating behaviour'>
+		<test name='1' ignore='no'>
+			<description>free-busy on collection without timezone</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/floating/calendar-none/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060101T000000Z/20060101T020000Z</value>
+						<value>20060101T050000Z/20060101T060000Z</value>
+						<value>20060101T080000Z/20060101T090000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060101T000000Z/20060102T000000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>free-busy on collection with timezone</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/floating/calendar-us/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060101T000000Z/20060101T010000Z</value>
+						<value>20060101T050000Z/20060101T070000Z</value>
+						<value>20060101T080000Z/20060101T090000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060101T050000Z/20060102T000000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>free-busy on multiple collections with/without timezone</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix:/floating/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/floating/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060101T000000Z/20060101T020000Z</value>
+						<value>20060101T050000Z/20060101T070000Z</value>
+						<value>20060101T080000Z/20060101T090000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060101T000000Z/20060102T000000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/mkcalendar.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/mkcalendar.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/mkcalendar.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,175 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start/>
+	
+	<test-suite name='MKCALENDAR without body'>
+		<test name='1'>
+			<description>Simple MKCALENDAR</description>
+			<request end-delete='yes'>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest1/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>MKCALENDAR on existing resource</description>
+			<request>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest1/</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:resource-must-be-null</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>MKCALENDAR inside another calendar</description>
+			<request>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest1/caltest2/</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavcalendar-collection-location-ok</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>MKCOL inside a calendar</description>
+			<request>
+				<method>MKCOL</method>
+				<ruri>$pathprefix:/caltest1/collection/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='MKCALENDAR with body'>
+		<test name='1'>
+			<description>MKCALENDAR with correct request body</description>
+			<request end-delete='yes'>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/mkcalendar/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>201</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>MKCALENDAR with correct request body on existing resource</description>
+			<request>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/mkcalendar/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:resource-must-be-null</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>MKCALENDAR with incorrect request body</description>
+			<request end-delete='yes' print-response='no'>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest3/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/mkcalendar/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:getetag</value>
+						<value>DAV:displayname</value>
+						<value>urn:ietf:params:xml:ns:caldavcalendar-description</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/caltest3/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>MKCALENDAR with incorrect request body on existing resource</description>
+			<request>
+				<method>MKCALENDAR</method>
+				<ruri>$pathprefix:/caltest2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/mkcalendar/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:resource-must-be-null</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/populate.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/populate.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/populate.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,48 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<populate>
+	<description>Populate a TwistedCalDAV server with user accounts.</description>
+	<path>/Users/</path>
+	
+	<account count='1'>
+		<name>User-1.10</name>
+		<calendars>
+			<name>calendar</name>
+			<datasource count='1' mode='all'>Resource/Populate/</datasource>
+		</calendars>
+	</account>
+	<account count='1'>
+		<name>User-1.100</name>
+		<calendars>
+			<name>calendar</name>
+			<datasource count='10' mode='all'>Resource/Populate/</datasource>
+		</calendars>
+	</account>
+	<account count='1'>
+		<name>User-1.1000</name>
+		<calendars>
+			<name>calendar</name>
+			<datasource count='100' mode='all'>Resource/Populate/</datasource>
+		</calendars>
+	</account>
+</populate>

Added: CalDAVTester/trunk/scripts/tests1/propfind.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/propfind.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/propfind.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,273 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start/>
+	
+	<test-suite name='regular prop finds'>
+		<test name='1'>
+			<description>PROPFIND of basic properties depth=0</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND of basic properties depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPFIND of basic properties depth=infinity</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>PROPFIND getcontentlength=0</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:getcontentlength$</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='prop names'>
+		<test name='1'>
+			<description>PROPFIND of property names depth=0</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND of property names depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPFIND of property names depth=infinity</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='prop all'>
+		<test name='1'>
+			<description>PROPFIND of all properties depth=0</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND of all properties depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPFIND of all properties depth=infinity</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='prop errors'>
+		<test name='1'>
+			<description>PROPFIND with invalid elements</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>4xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>PROPFIND of unknown element</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>4xx</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPFIND with one unknown property</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/propfinds/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/proppatch.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/proppatch.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/proppatch.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,165 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start/>
+	
+	<test-suite name='prop patches'>
+		<test name='1' ignore="no">
+			<description>PROPPATCH of details: good</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:details</value>
+						<value>DAV:details2</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:details$My Name</value>
+						<value>DAV:details2$My Name 2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore="no">
+			<description>PROPPATCH of details: remove it</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:details</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:details2$My Name 2</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:details</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>PROPPATCH remove non-existant</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:missing</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>PROPPATCH of resourcetype: fails</description>
+			<request print-response='no'>
+				<method>PROPPATCH</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/5.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:details</value>
+						<value>DAV:details2</value>
+						<value>DAV:resourcetype</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/proppatches/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:details2$My Name 2</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:details</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/put.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/put.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/put.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,500 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test PUT method in CalDAV</description>
+
+	<start/>
+	
+	<test-suite name='PUT VEVENT'>
+		<test name='1' ignore='no'>
+			<description>PUT non-recurring timed event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>1.ics</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/recurrenceput/1.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT not in calendar collection</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$pathprefix:/1.ics</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/recurrenceput/1.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Put VTODO' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Plain VTODO with no date</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>1todo.ics</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/todo/1.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Plain VTODO with DUE only</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>2todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>2todo.ics</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/todo/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Plain VTODO with DTSTART/DUARTION only</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>3todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>3todo.ics</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/todo/3.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Plain VTODO with DTSTART only</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>4todo.ics</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/todo/4.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Problem VEVENTs - EXDATE &amp; various combinations of date-time/date values'>
+		<test name='1' ignore='no'>
+			<description>PUT problem event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>DTSTART/DATE-TIME/UTC, DTEND/DATE</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/2.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>DTSTART/DATE-TIME/TZID, DTEND/DATE</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>18.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/16.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>DTSTART/DATE-TIME/Float, DTEND/DATE</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>19.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/17.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>DTSTART/DATE-TIME/UTC, DTEND/DATE-TIME/TZID</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>5.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>DTSTART/DATE-TIME/UTC, DTEND/DATE-TIME/Float</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>6.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>DTSTART/DATE-TIME/TZID, DTEND/DATE-TIME/UTC</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>7.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>DTSTART/DATE-TIME/TZID, DTEND/DATE-TIME/Float</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>8.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/6.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>DTSTART/DATE-TIME/Float, DTEND/DATE-TIME/UTC</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>9.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>DTSTART/DATE-TIME/Float, DTEND/DATE-TIME/TZID</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>10.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/8.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Problem VTODOs - various combinations of date-time/date values'>
+		<test name='1' ignore='no'>
+			<description>DTSTART/DATE-TIME/UTC, DUE/DATE</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>11.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/9.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>DTSTART/DATE-TIME/TZID, DUE/DATE</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>20.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/18.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>DTSTART/DATE-TIME/Float, DUE/DATE</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>21.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/19.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>DTSTART/DATE, DUE/DATE-TIME/UTC</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>22.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/20.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>DTSTART/DATE, DUE/DATE-TIME/TZID</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>23.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/21.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>DTSTART/DATE, DUE/DATE-TIME/Float</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>24.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/22.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>DTSTART/DATE-TIME/UTC, DUE/DATE-TIME/TZID</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>12.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/10.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>DTSTART/DATE-TIME/UTC, DUE/DATE-TIME/Float</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>13.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/11.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>DTSTART/DATE-TIME/TZID, DUE/DATE-TIME/UTC</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>14.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/12.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>DTSTART/DATE-TIME/TZID, DUE/DATE-TIME/Float</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>15.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/13.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>DTSTART/DATE-TIME/Float, DUE/DATE-TIME/UTC</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>16.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/14.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>DTSTART/DATE-TIME/Float, DUE/DATE-TIME/TZID</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>17.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/problemics/15.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/quota.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/quota.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/quota.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,2974 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest ignore-all="yes">
+	<description>Test Quota support on the server</description>
+
+	<start>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/</ruri>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/temp/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/temp/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/2.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/3.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/temp/4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/4.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/temp/5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/5.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/temp/6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/6.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/noquotacol/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/quotacol/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-2048</method>
+			<ruri>$pathprefix:/collection/quotacol/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/quotacol/temp/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/quotacol/temp/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/quotacol/temp/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/2.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/largequotacol/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
+			<ruri>$pathprefix:/collection/largequotacol/</ruri>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-4096</method><!-- 4Kb -->
+			<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-2048</method><!-- 2Kb -->
+			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+		</request>
+		<request>
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
+			<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/collection/noquotacal/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/collection/quotacal/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-2048</method>
+			<ruri>$pathprefix:/collection/quotacal/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/collection/largequotacal/</ruri>
+		</request>
+		<request>
+			<method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
+			<ruri>$pathprefix:/collection/largequotacal/</ruri>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/calendar/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/quota/2.ics</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Properties on collections' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>allprop on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>allprop on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>propname on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>propname on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>props on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:quota-available-bytes</value>
+						<value>DAV:quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>props on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$118</value>
+						<value>DAV:quota-used-bytes$1930</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Properties on resources' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>allprop on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>allprop on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>propname on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>propname on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>props on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacol/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:quota-available-bytes</value>
+						<value>DAV:quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>props on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$118</value>
+						<value>DAV:quota-used-bytes$1930</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Properties on calendars' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>allprop on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>allprop on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>propname on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>propname on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>props on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:quota-available-bytes</value>
+						<value>DAV:quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>props on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Properties on calendar resources' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>allprop on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>allprop on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>propname on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>notcontains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>propname on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>quota-available-bytes</value>
+						<value>quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>props on non-quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/noquotacal/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+					</arg>
+					<arg>
+						<name>badprops</name>
+						<value>DAV:quota-available-bytes</value>
+						<value>DAV:quota-used-bytes</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>props on quota collection</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='PUT Over quota on collection' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>over quota on quota collection with new resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/quotacol/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>over quota on quota collection with existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event_1</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>more</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>over quota on quota sub-collection with new resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>over quota on quota sub-collection with existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event_1</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>more</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='PUT Over quota on calendar' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>over quota on quota calendar with new resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/quotacal/4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacal/4.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>over quota on quota calendar with existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/6.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event_1</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>more</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='COPY resource over quota' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>over quota on quota collection with new resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacol/2.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>over quota on quota collection with existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacol/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event_1</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>more</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>over quota on quota collection copying collection</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacol/test/</value>
+				</header>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/test/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='COPY calendar resource over quota' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>over quota on quota calendar with new resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacal/4.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/4.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/4.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/4.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>over quota on quota calendar with existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacal/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/6.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacal/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event_1</value>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>more</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/6.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>not allowed on quota calendar copying collection</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacal/test/</value>
+				</header>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>405</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacal/test/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/quotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='COPY collection over quota' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>over quota on quota collection with new collection</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacol/test/</value>
+				</header>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/test/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>over quota on quota collection with existing collection</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacol/temp/</value>
+				</header>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>over quota on quota collection copying collection</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/quotacol/temp/test/</value>
+				</header>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/quotacol/temp/test/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='PUT/DELETE/COPY/MOVE of resource with quota update' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Initial quota values</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT new resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047941</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>PUT existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047490</value>
+						<value>DAV:quota-used-bytes$1086</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>COPY new resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacol/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047941</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>COPY existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacol/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047490</value>
+						<value>DAV:quota-used-bytes$1086</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>MOVE new resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacol/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047941</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>MOVE existing resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacol/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047490</value>
+						<value>DAV:quota-used-bytes$1086</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacol/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='PUT/DELETE/COPY/MOVE of calendar resource with quota update' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Initial quota values</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+			<!-- Make sure we have the source collection files in place -->
+			<request>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.ics</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.ics</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT new resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047941</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>PUT existing resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047490</value>
+						<value>DAV:quota-used-bytes$1086</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>COPY new resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacal/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047941</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>COPY existing resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacal/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047490</value>
+						<value>DAV:quota-used-bytes$1086</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>MOVE new resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacal/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047941</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>MOVE existing resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacal/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1047490</value>
+						<value>DAV:quota-used-bytes$1086</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacal/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacal/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='COPY/MOVE/DELETE of collection with quota update' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Initial quota values</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+			<!-- Make sure we have the source collection files in place -->
+			<request>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/temp/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.ics</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/temp/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.ics</filepath>
+				</data>
+			</request>
+			<request>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/temp/3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.ics</filepath>
+				</data>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>COPY new collection</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacol/test/</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1033552</value>
+						<value>DAV:quota-used-bytes$15024</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>DELETE existing collection</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacol/test/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>MOVE new collection</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/collection/largequotacol/test/</value>
+				</header>
+				<ruri>$pathprefix:/collection/temp/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1033552</value>
+						<value>DAV:quota-used-bytes$15024</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>DELETE existing resource</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$pathprefix:/collection/largequotacol/test/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/largequotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='PUT with nested over quota' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Initial quota values</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$4096</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$2048</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT small resource below nested and below parent quota</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$3461</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>PUT smallish resource above nested but below parent quota</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>507</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/4.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$3461</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1048576</value>
+						<value>DAV:quota-used-bytes$0</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT smallish resource below nested (2) and below parent quota</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$426</value>
+						<value>DAV:quota-used-bytes$3670</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1413</value>
+						<value>DAV:quota-used-bytes$635</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1045541</value>
+						<value>DAV:quota-used-bytes$3035</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>PUT small resource below nested but above parent quota</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/2.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$0</value>
+						<value>DAV:quota-used-bytes$4330</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$753</value>
+						<value>DAV:quota-used-bytes$1295</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1045541</value>
+						<value>DAV:quota-used-bytes$3035</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>PUT large resource below nested (2) but above parent quota</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/5.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$0</value>
+						<value>DAV:quota-used-bytes$11200</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol1/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$753</value>
+						<value>DAV:quota-used-bytes$1295</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$pathprefix:/collection/parentquotacol/nestedquotacol2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/quota/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>DAV:resourcetype</value>
+						<value>DAV:quota-available-bytes$1038671</value>
+						<value>DAV:quota-used-bytes$9905</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='PUT with oversize attachment' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>PUT new oversized resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/calendar/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/calendar/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT existing oversized resource</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/calendar/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/calendar/2.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event 2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>PUT new oversized resource to regular collection</description>
+			<request print-response='no'>
+				<method>PUT</method>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/quota/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>COPY new oversized resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/calendar/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>COPY existing oversized resource</description>
+			<request print-response='no'>
+				<method>COPY</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/calendar/2.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/calendar/2.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event 2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>MOVE new oversized resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/calendar/1.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/calendar/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>MOVE existing oversized resource</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<header>
+					<name>Destination</name>
+					<value>$pathprefix:/calendar/2.ics</value>
+				</header>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavmax-resource-size</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/calendar/2.ics</ruri>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>event 2</value>
+					</arg>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$pathprefix:/collection/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<request>
+			<method>DELETE</method>
+			<ruri>$pathprefix:/collection/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/recurrenceput.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/recurrenceput.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/recurrenceput.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,247 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test PUT method in CalDAV with various recurrences to ensure
+	proper behaviour of server indexing</description>
+
+	<start/>
+	
+	<test-suite name='VEVENTs'>
+		<test name='1' ignore='no'>
+			<description>PUT non-recurring timed event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT non-recurring all day event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>PUT recurring (no exceptions) timed event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>3.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT recurring (no exceptions) all day event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>PUT recurring (with exceptions) timed event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>5.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>PUT recurring (with exceptions) all day event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>6.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>PUT recurring (with future exceptions) timed event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>7.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>PUT recurring (with future exceptions) all day event</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>8.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/recurrenceput/8.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='VTODOs' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Plain VTODO with no date - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>1todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Plain VTODO with all-day DUE only - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>2todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Plain VTODO with all-day DTSTART/DURATION only - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>3todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Plain VTODO with all-day DTSTART only - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>3todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/8.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Plain VTODO with timed DUE only - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>4todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/9.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Plain VTODO with timed DTSTART/DURATION only - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>5todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/10.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Plain VTODO with timed DTSTART/DURATION only - recurring</description>
+			<request end-delete='yes'>
+				<method>PUT</method>
+				<ruri>5todo.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/todo/11.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/reports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/reports.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/reports.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,1201 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/1.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/2.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/3.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>4.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/4.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>5.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/5.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>6.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/6.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>7.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/7.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>8.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/8.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>9.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/9.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>10.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/10.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>11.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/11.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>12.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/12.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>13.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/13.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>14.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/14.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>15.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/15.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>101.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/101.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>102.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/102.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>103.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/103.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>104.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/104.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>105.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/105.txt</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>PUT</method>
+			<ruri>106.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/reports/put/106.txt</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='multiget reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>basic multiget of 4 resources returning etag and entire ics data</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>101.ics</value>
+						<value>102.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>basic multiget of 4 resources returning etag and only VCALENDAR property data (no embedded components)</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>basic multiget of 4 resources returning etag and only VTIMEZONE components</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>basic multiget of 4 resources returning etag and only SUMMARY/UID properties inside VEVENT components and VALARMs</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>101.ics</value>
+						<value>102.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>as 4.txt except that the SUMMARY property value is not returned</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>101.ics</value>
+						<value>102.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Does allprop</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Does propname</description>
+			<request>
+				<method>REPORT</method>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/multiget/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='basic query reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>query for resources with VCALENDAR &amp; VEVENT defined</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query for resources with VCALENDAR &amp; VEVENT not defined</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/8.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>15.ics</value>
+						<value>101.ics</value>
+						<value>102.ics</value>
+						<value>103.ics</value>
+						<value>104.ics</value>
+						<value>105.ics</value>
+						<value>106.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>query for resources where the SUMMARY in a VEVENT contains the character '1'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>query for resources where the SUMMARY in a VEVENT does not contain the character '1'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>query for resources where the DESCRIPTION property exists in a VEVENT</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>2.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>query for resources where the DESCRIPTION property does not exist in a VEVENT</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/9.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>query for resources that have a DTSTART in a VEVENT that contains a TZID parameter containing the text 'Paci'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>query for resources that have a DTSTART in a VEVENT that contains a TZID parameter not containing the text 'Paci'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/10.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>4.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>query for resources that have a DTSTART in a VEVENT that contains a TZID parameter containing the text 'Paci' or 'Moun'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>2.ics</value>
+						<value>3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>query for resources where the SUMMARY in a VEVENT contains the character '4' or has a DTSTART in a VEVENT that contains a TZID parameter containing the text 'East'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>4.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>query for resources where the RECURRENCE-ID in a VEVENT does not contain a RANGE parameter</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/11.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>query for resources with VCALENDAR &amp; VTODO defined</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/101.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>101.ics</value>
+						<value>102.ics</value>
+						<value>103.ics</value>
+						<value>104.ics</value>
+						<value>105.ics</value>
+						<value>106.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13' ignore='no'>
+			<description>query for resources where the SUMMARY in a VTODO contains the character '1'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/102.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>101.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='14' ignore='no'>
+			<description>query for resources that have a DUE in a VTODO that contains a TZID parameter containing the text 'East'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/103.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>102.ics</value>
+						<value>104.ics</value>
+						<value>106.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='15' ignore='no'>
+			<description>query for resources with VCALENDAR &amp; VEVENT or VTODO defined</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/201.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+						<value>101.ics</value>
+						<value>102.ics</value>
+						<value>103.ics</value>
+						<value>104.ics</value>
+						<value>105.ics</value>
+						<value>106.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='16' ignore='no'>
+			<description>query for resources where the SUMMARY in a VEVENT or VTODO contains the character '1'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/202.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+						<value>101.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='17' ignore='no'>
+			<description>query for resources that have a DTSTART in a VEVENT with TZID containg 'Paci' or a DUE in a VTODO with TZID containing 'East'</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/203.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>3.ics</value>
+						<value>102.ics</value>
+						<value>104.ics</value>
+						<value>106.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='18' ignore='no'>
+			<description>query for VEVENTs that do not contain VALARMs</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/basicquery/12.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='time-range query reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>query for VEVENTs within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query for VEVENT/VFREEBUSYs that have a CREATED/DTSTAMP within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+						<value>2.ics</value>
+						<value>3.ics</value>
+						<value>4.ics</value>
+						<value>8.ics</value>
+						<value>9.ics</value>
+						<value>10.ics</value>
+						<value>11.ics</value>
+						<value>12.ics</value>
+						<value>13.ics</value>
+						<value>14.ics</value>
+						<value>15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>query for VEVENTs within time range with specific SUMMARY text</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>query for VEVENT recurrence instance within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>query for overridden VEVENT instance within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>query for overridden VEVENT not within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>query for overridden this-and-future VEVENT within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/7.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>query for VTODOs within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/101.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>102.ics</value>
+						<value>103.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>query for VTODOs within time range with specific SUMMARY text</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/102.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>102.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>query for VTODO recurrence instance within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/timerangequery/103.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>105.ics</value>
+						<value>106.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='alarm time-range query reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>query for VALARMS within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/alarmtimerangequery/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query for repeating VALARMS within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/alarmtimerangequery/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>query for recurring VALARMS within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/alarmtimerangequery/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>query for recurring/overridden VALARMS within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/alarmtimerangequery/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>query for VALARMS on VTODO within time range</description>
+			<request>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/alarmtimerangequery/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>102.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='free-busy reports' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>query for free busy with time range</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060101T150000Z/20060101T160000Z</value>
+						<value>20060101T180000Z/20060101T190000Z</value>
+						<value>20060101T210000Z/20060101T220000Z</value>
+						<value>20060101T230000Z/20060102T000000Z</value>
+						<value>20060102T150000Z/20060102T160000Z</value>
+						<value>20060103T150000Z/20060103T160000Z</value>
+						<value>20060104T150000Z/20060104T160000Z</value>
+						<value>20060102T190000Z/20060102T200000Z</value>
+						<value>20060103T190000Z/20060103T200000Z</value>
+						<value>20060104T210000Z/20060104T220000Z</value>
+						<value>20060102T230000Z/20060103T000000Z</value>
+						<value>20060103T230000Z/20060104T000000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>query for free busy with overlapping and consecutive events</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/freebusy/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>freeBusy</callback>
+					<arg>
+						<name>busy</name>
+						<value>20060107T010000Z/20060107T020000Z</value>
+						<value>20060107T150000Z/20060107T163000Z</value>
+						<value>20060108T150000Z/20060108T180000Z</value>
+						<value>20060108T190000Z/20060108T193000Z</value>
+					</arg>
+					<arg>
+						<name>unavailable</name>
+						<value>20060108T130000Z/20060108T150000Z</value>
+					</arg>
+					<arg>
+						<name>tentative</name>
+						<value>20060108T160000Z/20060108T170000Z</value>
+						<value>20060108T210000Z/20060108T213000Z</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='limit/expand recurrence in reports' ignore='no'>
+		<test name='1' ignore='yes'>
+			<description>time-range query with limit over same range</description>
+			<request print-response='yes'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/limitexpand/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='yes'>
+			<description>time-range query with limit over different range</description>
+			<request print-response='yes'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/limitexpand/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>time-range query with expand over same range</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/limitexpand/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>time-range query with expand over different range</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/limitexpand/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>5.ics</value>
+						<value>6.ics</value>
+						<value>7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>query with limit-freebusy-set</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/reports/limitexpand/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>okhrefs</name>
+						<value>15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/schedule.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/schedule.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/schedule.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,727 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test SCHEDULE method in CalDAV</description>
+
+	<start>
+		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calendar/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/7.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calendar/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/8.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calendar/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/10.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix3:/calendar/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/9.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix3:/calendar/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/10.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/outbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/inbox/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name='SCHEDULE Errors' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>SCHEDULE on invalid outbox</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Organizer</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-collection</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>SCHEDULE with invalid content</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Organizer</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>SCHEDULE with invalid calendar data</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>SCHEDULE without METHOD property</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>SCHEDULE with invalid iTIP object</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>SCHEDULE without Originator:</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator-specified</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>SCHEDULE with non-authorized Originator:</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01-bogus at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>SCHEDULE without Recipient:</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavrecipient-specified</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>SCHEDULE with non-authorized Organizer:</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>SCHEDULE reply with too many Attendees:</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user02 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/17.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>SCHEDULE reply with non-authorized Attendee:</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user02 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/18.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name="SCHEDULEs" ignore='no'>
+		<test name='1'>
+			<description>SCHEDULE which should work</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Make sure resource exists and properties are set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Make sure resource exists and properties are set</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix2:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Make sure resource exists and properties are set</description>
+			<request  user="$userid3:" pswd="$pswd3:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix3:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix3:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>SCHEDULE which should work (using relative principal addressing)</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, $principal3:</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+		<test name='6'>
+			<description>SCHEDULE which should work (using absolute principal addressing)</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>$host:/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$host:/principals/users/user02, $host:$principal3:</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name="Reports on Inbox/Outbox" ignore='no'>
+		<test name='1'>
+			<description>Simple calendar-query for VEVENTs</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>207</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Simple calendar-query for VEVENTs</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>207</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Simple calendar-multiget for VEVENTs</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/14.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>badhrefs</name>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Simple calendar-multiget for VEVENTs</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$pathprefix:/inbox/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>free-busy-query failure</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:supported-report</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>free-busy-query failure</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:supported-report</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name="SCHEDULEs free busy" ignore='no'>
+		<test name='1'>
+			<description>SCHEDULE free busy</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T170000Z/PT1H,20060101T190000Z/PT1H,20060101T2
+ 20000Z/PT1H</value>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>SCHEDULE free busy - recipients with failure</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:broken at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value><![CDATA[<recipient-exists xmlns='urn:ietf:params:xml:ns:caldav'/>]]></value>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/scheduleacl.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/scheduleacl.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/scheduleacl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,285 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start>
+		<request end-delete="yes">
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with DAV:read only -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with DAV:read only -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with no privileges -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal2.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with DAV:read-free-busy only -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal3.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with no privileges -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with DAV:read only -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal4.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with no privileges -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal5.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with DAV:read-free-busy only -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal6.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with CALDAV:read-free-busy only -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with DAV:read only -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal7.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with no privileges -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal8.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<!--  Event with DAV:read-free-busy only -->
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal9.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Set calendar-free-busy-set to the calendars only -->
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+			<data substitutions='yes'>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/scheduleacl/1.xml</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Schedule free-busy' ignore='no'>
+		<test name='1'>
+			<description>SCHEDULE free busy</description>
+			<request user='$userid2:' pswd='$pswd2:' print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user02 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleacl/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T060000Z/PT1H,20060101T100000Z/PT1H,20060101T1
+ 80000Z/PT1H,20060101T220000Z/PT1H</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<!--  Set calendar-free-busy-set back to default -->
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+			<data substitutions='yes'>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/scheduleacl/2.xml</filepath>
+			</data>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/scheduleauto.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/scheduleauto.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/scheduleauto.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,1177 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test SCHEDULE method in CalDAV</description>
+
+	<start>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/outbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/calendar/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name='SCHEDULE non-recurring without conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Update to previous request - no auto-reply' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>One item in resource01 Inbox (old one deleted)</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Repeat request - no auto-reply' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>One item in resource01 Inbox (old one deleted)</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='SCHEDULE non-recurring with conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='SCHEDULE recurring with conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/9.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/10.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/10.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='SCHEDULE recurring without conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/11.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/12.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/13.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/13.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='SCHEDULE non-recurring with recurring conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/14.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='SCHEDULE recurring with recurring conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/16.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/17.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/17.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='SCHEDULE cancel non-recurring' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do SCHEDULE</description>
+			<request>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/18.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>6</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>6</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/outbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/calendar/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/schedulenormal.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/schedulenormal.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/schedulenormal.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,197 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test normal SCHEDULE operations in CalDAV</description>
+
+	<start>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/outbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/inbox/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name="SCHEDULEs" ignore='no'>
+		<test name='1'>
+			<description>Initial REQUEST</description>
+			<request print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, $principal3:</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Make sure resource exists and properties are set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Make sure resource exists and properties are set</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix2:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Make sure resource exists and properties are set</description>
+			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix3:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix3:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>REPLY from one</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>SCHEDULE</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user02</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix2:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/schedulepost.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/schedulepost.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/schedulepost.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,727 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test POST method in CalDAV</description>
+
+	<start>
+		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calendar/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/7.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calendar/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/8.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix2:/calendar/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/10.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix3:/calendar/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/9.ics</filepath>
+			</data>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" end-delete="yes">
+			<method>PUT</method>
+			<ruri>$pathprefix3:/calendar/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/schedule/10.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/outbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/inbox/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name='POST Errors' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST on invalid outbox</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Organizer</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-collection</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>POST with invalid content</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Organizer</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>POST with invalid calendar data</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>POST without METHOD property</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>POST with invalid iTIP object</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>POST without Originator:</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator-specified</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>POST with non-authorized Originator:</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01-bogus at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>POST without Recipient:</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavrecipient-specified</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>POST with non-authorized Organizer:</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>POST reply with too many Attendees:</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user02 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/17.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>POST reply with non-authorized Attendee:</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user02 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/18.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name="POSTs" ignore='no'>
+		<test name='1'>
+			<description>POST which should work</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Make sure resource exists and properties are set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Make sure resource exists and properties are set</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix2:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user02 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Make sure resource exists and properties are set</description>
+			<request  user="$userid3:" pswd="$pswd3:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix3:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/12.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix3:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;mailto:user01 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;mailto:user03 at example.com&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>POST which should work (using relative principal addressing)</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, $principal3:</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+		<test name='6'>
+			<description>POST which should work (using absolute principal addressing)</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>$host:/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>$host:/principals/users/user02, $host:$principal3:</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name="Reports on Inbox/Outbox" ignore='no'>
+		<test name='1'>
+			<description>Simple calendar-query for VEVENTs</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>207</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Simple calendar-query for VEVENTs</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>207</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Simple calendar-multiget for VEVENTs</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data substitutions='yes'>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/14.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>badhrefs</name>
+						<value>1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Simple calendar-multiget for VEVENTs</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/15.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>prefix</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>badhrefs</name>
+						<value>$pathprefix:/inbox/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>free-busy-query failure</description>
+			<request print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:supported-report</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>free-busy-query failure</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>REPORT</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedule/16.xml</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>DAV:supported-report</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name="POSTs free busy" ignore='no'>
+		<test name='1'>
+			<description>POST free busy</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user02 at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T170000Z/PT1H,20060101T190000Z/PT1H,20060101T2
+ 20000Z/PT1H</value>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST free busy - recipients with failure</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:broken at example.com, mailto:user03 at example.com</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedule/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value><![CDATA[<recipient-exists xmlns='urn:ietf:params:xml:ns:caldav'/>]]></value>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T190000Z/PT2H,20060101T220000Z/PT1H</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/schedulepostacl.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/schedulepostacl.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/schedulepostacl.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,276 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<start>
+		<request end-delete="yes">
+			<method>MKCOL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with DAV:read only -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal1.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal2.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal3.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar1/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with no privileges -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal4.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal5.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal6.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar2/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Calendar with CALDAV:read-free-busy only -->
+		<request>
+			<method>MKCALENDAR</method>
+			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal7.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/1.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/1.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal8.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/2.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/2.xml</filepath>
+			</data>
+		</request>
+		<request>
+			<method>PUT</method>
+			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
+			<data>
+				<content-type>text/calendar; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/cal9.ics</filepath>
+			</data>
+		</request>
+		<request>
+			<method>ACL</method>
+			<ruri>$pathprefix:/top-collection/calendar3/3.ics</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/depthreportsacl/3.xml</filepath>
+			</data>
+		</request>
+		<!--  Set calendar-free-busy-set to the calendars only -->
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+			<data substitutions='yes'>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/scheduleacl/1.xml</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Schedule free-busy' ignore='no'>
+		<test name='1'>
+			<description>POST free busy</description>
+			<request user="$userid2:" pswd='$pswd2:' print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>mailto:user02 at example.com</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>mailto:user01 at example.com</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleacl/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>contains</name>
+						<value>FREEBUSY;FBTYPE=BUSY:20060101T060000Z/PT1H,20060101T100000Z/PT1H,20060101T1
+ 80000Z/PT1H,20060101T220000Z/PT1H</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<!--  Set calendar-free-busy-set back to default -->
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+			<data substitutions='yes'>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/scheduleacl/2.xml</filepath>
+			</data>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/schedulepostauto.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/schedulepostauto.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/schedulepostauto.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,1177 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test POST method in CalDAV</description>
+
+	<start>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/outbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/calendar/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name='POST non-recurring without conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/3.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='Update to previous request - no auto-reply' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>One item in resource01 Inbox (old one deleted)</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Repeat request - no auto-reply' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>One item in resource01 Inbox (old one deleted)</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST non-recurring with conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/7.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST recurring with conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/9.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/10.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/10.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST recurring without conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/11.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/11.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>One item in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/12.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/13.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/13.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='POST non-recurring with recurring conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/14.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/14.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/15.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST recurring with recurring conflict' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/16.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/16.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>2</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/17.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/17.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='POST cancel non-recurring' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>Do POST</description>
+			<request>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, /principals/users/resource01</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/18.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>6</ruri>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>One item in user01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>One item in user02 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>One item in resource01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>GETNEW</method>
+				<ruri>/calendars/users/resource01/inbox/</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/scheduleauto/18.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Two items in resource01 Calendar</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/calendar/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleauto/6.xml</filepath>
+				</data>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>1</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>One item in resource01 Outbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>/calendars/users/resource01/outbox/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>6</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>One item in user01 Inbox</description>
+			<request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$pathprefix:/inbox/</ruri>
+				<verify>
+					<callback>multistatusItems</callback>
+					<arg>
+						<name>count</name>
+						<value>6</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/outbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/inbox/</ruri>
+		</request>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>/calendars/users/resource01/calendar/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/schedulepostnormal.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/schedulepostnormal.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/schedulepostnormal.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,197 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test normal POST operations in CalDAV</description>
+
+	<start>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/outbox/</ruri>
+		</request>
+		<request>
+			<method>DELETEALL</method>
+			<ruri>$pathprefix:/inbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/outbox/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix2:/inbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/outbox/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:">
+			<method>DELETEALL</method>
+			<ruri>$pathprefix3:/inbox/</ruri>
+		</request>
+	</start>
+	
+	<test-suite name="POSTs" ignore='no'>
+		<test name='1'>
+			<description>Initial REQUEST</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user02, $principal3:</value>
+				</header>
+				<ruri>$pathprefix:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Make sure resource exists and properties are set</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Make sure resource exists and properties are set</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix2:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix2:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal2:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Make sure resource exists and properties are set</description>
+			<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<ruri>$pathprefix3:/inbox/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>ignore</name>
+						<value>$pathprefix3:/inbox/</value>
+					</arg>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$principal:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$principal3:&lt;/href&gt;</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-state$&lt;not-processed/&gt;</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>REPLY from one</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<header>
+					<name>Originator</name>
+					<value>/principals/users/user02</value>
+				</header>
+				<header>
+					<name>Recipient</name>
+					<value>/principals/users/user01</value>
+				</header>
+				<ruri>$pathprefix2:/outbox/</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/schedulenormal/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Location$^$pathprefix2:/outbox/[^/]+\.ics$</value>
+					</arg>
+				</verify>
+				<grablocation/>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Added: CalDAVTester/trunk/scripts/tests1/scheduleprops.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests1/scheduleprops.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests1/scheduleprops.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,57 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006 Apple Computer, 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.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+	<description>Test properties defined by caldav-schedule</description>
+
+	<start/>
+	
+	<test-suite name='Inbox/Outbox' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>PROPFIND inbox/outbox URLs</description>
+			<request>
+				<method>PROPFIND</method>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<ruri>$principal:</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/scheduleprops/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>propfindItems</callback>
+					<arg>
+						<name>okprops</name>
+						<value>urn:ietf:params:xml:ns:caldavschedule-inbox-URL</value>
+						<value>urn:ietf:params:xml:ns:caldavschedule-outbox-URL</value>
+						<value>urn:ietf:params:xml:ns:caldavcalendar-user-address-set</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end/>
+	
+</caldavtest>

Deleted: CalDAVTester/trunk/serverinfo.dtd
===================================================================
--- CalDAVTester/trunk/serverinfo.dtd	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/serverinfo.dtd	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,32 +0,0 @@
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<!ELEMENT serverinfo (host, port, ssl?, calendarpath, user, pswd, substitutions, serverfilepath)? >
-
-	<!ELEMENT host			(#PCDATA)>
-	<!ELEMENT port			(#PCDATA)>
-	<!ELEMENT ssl			EMPTY>
-	<!ELEMENT calendarpath	(#PCDATA)>
-	<!ELEMENT user			(#PCDATA)>
-	<!ELEMENT pswd			(#PCDATA)>
-	<!ELEMENT substitutions	(substitution*)>
-		<!ELEMENT substitution	(key, value)>
-			<!ELEMENT key			(#PCDATA)>
-			<!ELEMENT value			(#PCDATA)>
-	<!ELEMENT serverfilepath	(#PCDATA)>
-	

Deleted: CalDAVTester/trunk/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/serverinfo.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/serverinfo.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,110 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<serverinfo>
-	<host>localhost</host>
-	<port>8008</port>
-	<calendarpath>/calendars/users/user01/calendar</calendarpath>
-	<user>user01</user>
-	<pswd>user01</pswd>
-	<substitutions>
-		<substitution>
-			<key>$host:</key>
-			<value>http://localhost:8008</value>
-		</substitution>
-
-		<!-- user id for admin user -->
-		<substitution>
-			<key>$useradmin:</key>
-			<value>admin</value>
-		</substitution>
-		<!-- password for admin user -->
-		<substitution>
-			<key>$pswdadmin:</key>
-			<value>admin</value>
-		</substitution>
-		<!-- relative path to admin principal resource-->
-		<substitution>
-			<key>$principaladmin:</key>
-			<value>/principals/users/admin</value>
-		</substitution>
-
-		<!-- relative path to first user principal resource-->
-		<substitution>
-			<key>$userid1:</key>
-			<value>user01</value>
-		</substitution>
-		<!-- relative path to first user principal resource-->
-		<substitution>
-			<key>$principal:</key>
-			<value>/principals/users/user01</value>
-		</substitution>
-		<!-- relative path to first user calendar home-->
-		<substitution>
-			<key>$pathprefix:</key>
-			<value>/calendars/users/user01</value>
-		</substitution>
-		
-		<!-- user id for second user -->
-		<substitution>
-			<key>$userid2:</key>
-			<value>user02</value>
-		</substitution>
-		<!-- password for second user -->
-		<substitution>
-			<key>$pswd2:</key>
-			<value>user02</value>
-		</substitution>
-		<!-- relative path to second user principal resource-->
-		<substitution>
-			<key>$principal2:</key>
-			<value>/principals/users/user02</value>
-		</substitution>
-		<!-- relative path to second user calendar home-->
-		<substitution>
-			<key>$pathprefix2:</key>
-			<value>/calendars/users/user02</value>
-		</substitution>
-		
-		<!-- user id for third user -->
-		<substitution>
-			<key>$userid3:</key>
-			<value>user03</value>
-		</substitution>
-		<!-- password for third user -->
-		<substitution>
-			<key>$pswd3:</key>
-			<value>user03</value>
-		</substitution>
-		<!-- relative path to third user principal resource-->
-		<substitution>
-			<key>$principal3:</key>
-			<value>/principals/users/user03</value>
-		</substitution>
-		<!-- relative path to third user calendar home-->
-		<substitution>
-			<key>$pathprefix3:</key>
-			<value>/calendars/users/user03</value>
-		</substitution>
-	</substitutions>
-	<serverfilepath>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/CalendarServer/twistedcaldav/test/data/</serverfilepath>
-</serverinfo>

Copied: CalDAVTester/trunk/src (from rev 201, CalDAVTester/trunk/tests)

Modified: CalDAVTester/trunk/src/account.py
===================================================================
--- CalDAVTester/trunk/tests/account.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/account.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -20,13 +20,13 @@
 Class that encapsulates the account information for populating a CalDAV server.
 """
 
+
+from utils import webdav
+import copy
 import md5
 import os
-from utils import webdav
-import copy
+import src.xmlDefs
 
-import tests.xmlDefs
-
 class account( object ):
     """
     Maintains information about an account on the server.
@@ -86,19 +86,19 @@
         webdav.Delete(server_info, path).run()
 
     def parseXML( self, node ):
-        self.count = node.getAttribute( tests.xmlDefs.ATTR_COUNT )
+        self.count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
         if self.count == '':
-            self.count = tests.xmlDefs.ATTR_DEFAULT_COUNT
+            self.count = src.xmlDefs.ATTR_DEFAULT_COUNT
         else:
             self.count = int(self.count)
-        self.countarg = node.getAttribute( tests.xmlDefs.ATTR_COUNTARG )
+        self.countarg = node.getAttribute( src.xmlDefs.ATTR_COUNTARG )
         if self.countarg == '':
-            self.countarg = tests.xmlDefs.ATTR_DEFAULT_COUNTARG
+            self.countarg = src.xmlDefs.ATTR_DEFAULT_COUNTARG
 
         for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_NAME:
+            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
                 self.name = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_CALENDARS:
+            elif child._get_localName() == src.xmlDefs.ELEMENT_CALENDARS:
                 cal = calendar(self)
                 cal.parseXML(child)
                 self.calendars.extend(cal.expand())
@@ -181,28 +181,28 @@
                 webdav.Put(server_info, rpath, "text/calendar; charset=utf-8", data).run()
 
     def parseXML( self, node ):
-        self.count = node.getAttribute( tests.xmlDefs.ATTR_COUNT )
+        self.count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
         if self.count == '':
-            self.count = tests.xmlDefs.ATTR_DEFAULT_COUNT
+            self.count = src.xmlDefs.ATTR_DEFAULT_COUNT
         else:
             self.count = int(self.count)
-        self.countarg = node.getAttribute( tests.xmlDefs.ATTR_COUNTARG )
+        self.countarg = node.getAttribute( src.xmlDefs.ATTR_COUNTARG )
         if self.countarg == '':
-            self.countarg = tests.xmlDefs.ATTR_DEFAULT_COUNTARG
-        self.dataall = tests.xmlDefs.ATTR_MODE == tests.xmlDefs.ATTR_VALUE_ALL
-        self.datasubstitute = tests.xmlDefs.ATTR_SUBSTITUTIONS == tests.xmlDefs.ATTR_VALUE_YES
+            self.countarg = src.xmlDefs.ATTR_DEFAULT_COUNTARG
+        self.dataall = src.xmlDefs.ATTR_MODE == src.xmlDefs.ATTR_VALUE_ALL
+        self.datasubstitute = src.xmlDefs.ATTR_SUBSTITUTIONS == src.xmlDefs.ATTR_VALUE_YES
 
         for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_NAME:
+            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
                 self.name = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_DATASOURCE:
-                self.datacount = child.getAttribute( tests.xmlDefs.ATTR_COUNT )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_DATASOURCE:
+                self.datacount = child.getAttribute( src.xmlDefs.ATTR_COUNT )
                 if self.datacount == '':
-                    self.datacount = tests.xmlDefs.ATTR_DEFAULT_COUNT
+                    self.datacount = src.xmlDefs.ATTR_DEFAULT_COUNT
                 else:
                     self.datacount = int(self.datacount)
-                self.datacountarg = child.getAttribute( tests.xmlDefs.ATTR_COUNTARG )
+                self.datacountarg = child.getAttribute( src.xmlDefs.ATTR_COUNTARG )
                 if self.datacountarg == '':
-                    self.datacountarg = tests.xmlDefs.ATTR_DEFAULT_COUNTARG
+                    self.datacountarg = src.xmlDefs.ATTR_DEFAULT_COUNTARG
                 self.datasource = child.firstChild.data
     

Deleted: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/tests/caldavtest.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/caldavtest.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,454 +0,0 @@
-##
-# Copyright (c) 2006 Apple Computer, 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.
-#
-# DRI: Cyrus Daboo, cdaboo at apple.com
-##
-
-"""
-Class to encapsulate a single caldav test run.
-"""
-
-from tests.request import data
-from tests.request import request
-from tests.request import stats
-from tests.testsuite import testsuite
-from xml.dom.minicompat import NodeList
-from xml.dom.minidom import Node
-import httplib
-import os
-import rfc822
-import socket
-import tests.xmlDefs
-import time
-import xattr
-import xml.dom.minidom
-
-STATUSTXT_WIDTH    = 60
-
-class caldavtest(object):
-    __slots__  = ['manager', 'name', 'description', 'ignore_all', 'start_requests', 'end_requests', 'end_deletes', 'suites', 'grabbedlocation']
-    
-    def __init__( self, manager, name ):
-        self.manager = manager
-        self.name = name
-        self.description = ""
-        self.ignore_all = False
-        self.start_requests = []
-        self.end_requests = []
-        self.end_deletes = []
-        self.suites = []
-        self.grabbedlocation = None
-        
-    def run( self ):
-        try:
-            self.manager.log("----- Running CalDAV Tests from \"%s\"... -----" % self.name, before=1)
-            self.dorequests( "Executing Start Requests...", self.start_requests, False, True )
-            ok, failed, ignored = self.run_tests()
-            self.doenddelete( "Deleting Requests..." )
-            self.dorequests( "Executing End Requests...", self.end_requests, False )
-            return ok, failed, ignored
-        except socket.error, msg:
-            self.manager.log("FATAL ERROR: " + msg.args[1], before=2)
-            return 0, 1, 0
-        
-    def run_tests( self ):
-        ok = 0
-        failed = 0
-        ignored = 0
-        for suite in self.suites:
-            o, f, i = self.run_test_suite( suite )
-            ok += o
-            failed += f
-            ignored += i
-        return (ok, failed, ignored)
-    
-    def run_test_suite( self, suite ):
-        descriptor = "    Test Suite: %s" % suite.name
-        descriptor += " " * max(1, STATUSTXT_WIDTH - len(descriptor))
-        self.manager.log("%s" % (descriptor,), before=1, after=0)
-        ok = 0
-        failed = 0
-        ignored = 0
-        if suite.ignore:
-            self.manager.log("[IGNORED]")
-            ignored = len(suite.tests)
-        else:
-            self.manager.log("")
-            for test in suite.tests:
-                result = self.run_test( test )
-                if result == "t":
-                    ok += 1
-                elif result == "f":
-                    failed += 1
-                else:
-                    ignored += 1
-        self.manager.log("Suite Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=1, indent=4)
-        return (ok, failed, ignored)
-            
-    def run_test( self, test ):
-        descriptor = "        Test: %s" % test.name
-        descriptor += " " * max(1, STATUSTXT_WIDTH - len(descriptor))
-        self.manager.log("%s" % (descriptor,), before=1, after=0)
-        if test.ignore:
-            self.manager.log("[IGNORED]")
-            return "i"
-        else:
-            result = False
-            if test.stats:
-                reqstats = stats()
-            else:
-                reqstats = None
-            for ctr in range(test.count): #@UnusedVariable
-                for req in test.requests:
-                    result, resulttxt, response, respdata = self.dorequest( req, test.details, True, False, reqstats )
-                    if not result:
-                        break
-            self.manager.log(["[FAILED]", "[OK]"][result])
-            if len(resulttxt) > 0:
-                self.manager.log(resulttxt)
-            if result and test.stats:
-                self.manager.log("Total Time: %.3f secs" % (reqstats.totaltime,), indent=8)
-                self.manager.log("Average Time: %.3f secs" % (reqstats.totaltime/reqstats.count,), indent=8)
-            return ["f", "t"][result]
-    
-    def dorequests( self, description, list, doverify = True, forceverify = False ):
-        if len(list) == 0:
-            return True
-        description += " " * max(1, STATUSTXT_WIDTH - len(description))
-        self.manager.log(description, before=1, after=0)
-        for req in list:
-            result, resulttxt, response, respdata = self.dorequest( req, False, doverify, forceverify )
-            if not result:
-                break
-        self.manager.log(["[FAILED]", "[OK]"][result])
-        if len(resulttxt) > 0:
-            self.manager.log(resulttxt)
-        return result
-    
-    def dofindall( self, collection):
-        hrefs = []
-        req = request()
-        req.method = "PROPFIND"
-        req.ruri = collection[0]
-        req.headers["Depth"] = "1"
-        if len(collection[1]):
-            req.user = collection[1]
-        if len(collection[2]):
-            req.pswd = collection[2]
-        req.data = data()
-        req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
-<D:propfind xmlns:D="DAV:">
-<D:prop>
-<D:getetag/>
-</D:prop>
-</D:propfind>
-"""
-        req.data.content_type = "text/xml"
-        result, resulttxt, response, respdata = self.dorequest( req, False, False )
-        if result and (response is not None) and (response.status == 207) and (respdata is not None):
-            doc = xml.dom.minidom.parseString( respdata )
-
-            def ElementsByName(parent, nsURI, localName):
-                rc = NodeList()
-                for node in parent.childNodes:
-                    if node.nodeType == Node.ELEMENT_NODE:
-                        if ((localName == "*" or node.localName == localName) and
-                            (nsURI == "*" or node.namespaceURI == nsURI)):
-                            rc.append(node)
-                return rc
-
-            for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
-    
-                # Get href for this response
-                href = ElementsByName(response, "DAV:", "href")
-                if len(href) != 1:
-                    return False, "           Wrong number of DAV:href elements\n"
-                if href[0].firstChild is not None:
-                    href = href[0].firstChild.data
-                    if href != req.ruri:
-                        hrefs.append((href, collection[1], collection[2]) )
-        return hrefs
-
-    def dodeleteall( self, deletes ):
-        if len(deletes) == 0:
-            return True
-        for deleter in deletes:
-            req = request()
-            req.method = "DELETE"
-            req.ruri = deleter[0]
-            if len(deleter[1]):
-                req.user = deleter[1]
-            if len(deleter[2]):
-                req.pswd = deleter[2]
-            self.dorequest( req, False, False )
-
-    def dofindnew( self, collection):
-        hresult = ""
-        req = request()
-        req.method = "PROPFIND"
-        req.ruri = collection[0]
-        req.headers["Depth"] = "1"
-        if len(collection[1]):
-            req.user = collection[1]
-        if len(collection[2]):
-            req.pswd = collection[2]
-        req.data = data()
-        req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
-<D:propfind xmlns:D="DAV:">
-<D:prop>
-<D:getetag/>
-<D:getlastmodified/>
-</D:prop>
-</D:propfind>
-"""
-        req.data.content_type = "text/xml"
-        result, resulttxt, response, respdata = self.dorequest( req, False, False )
-        if result and (response is not None) and (response.status == 207) and (respdata is not None):
-            doc = xml.dom.minidom.parseString( respdata )
-
-            def ElementsByName(parent, nsURI, localName):
-                rc = NodeList()
-                for node in parent.childNodes:
-                    if node.nodeType == Node.ELEMENT_NODE:
-                        if ((localName == "*" or node.localName == localName) and
-                            (nsURI == "*" or node.namespaceURI == nsURI)):
-                            rc.append(node)
-                return rc
-
-            latest = 0
-            for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
-    
-                # Get href for this response
-                href = ElementsByName(response, "DAV:", "href")
-                if len(href) != 1:
-                    return False, "           Wrong number of DAV:href elements\n"
-                if href[0].firstChild is not None:
-                    href = href[0].firstChild.data
-                    if href != req.ruri:
-
-                        # Get all property status
-                        propstatus = ElementsByName(response, "DAV:", "propstat")
-                        for props in propstatus:
-                            # Determine status for this propstat
-                            status = ElementsByName(props, "DAV:", "status")
-                            if len(status) == 1:
-                                statustxt = status[0].firstChild.data
-                                status = False
-                                if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
-                                    status = (statustxt[9] == "2")
-                            else:
-                                status = False
-                            
-                            # Get properties for this propstat
-                            prop = ElementsByName(props, "DAV:", "prop")
-                            for el in prop:
-    
-                                # Get properties for this propstat
-                                glm = ElementsByName(el, "DAV:", "getlastmodified")
-                                if len(glm) != 1:
-                                    continue
-                                if glm[0].firstChild is not None:
-                                    value = glm[0].firstChild.data
-                                    value = rfc822.parsedate(value)
-                                    value = time.mktime(value)
-                                    if value > latest:
-                                        hresult = href
-                                        latest = value
-
-        return hresult
-
-    def doenddelete( self, description ):
-        if len(self.end_deletes) == 0:
-            return True
-        description += " " * max(1, STATUSTXT_WIDTH - len(description))
-        self.manager.log(description, before=1, after=0)
-        for deleter in self.end_deletes:
-            req = request()
-            req.method = "DELETE"
-            req.ruri = deleter[0]
-            if len(deleter[1]):
-                req.user = deleter[1]
-            if len(deleter[2]):
-                req.pswd = deleter[2]
-            self.dorequest( req, False, False )
-        self.manager.log("[DONE]")
-    
-    def doaccess(self, ruri, enable):
-        """
-        We have to set the xattr WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}access-disabled 
-        on the resource pointed to by the ruri. Strictly speaking only the server know how to map from a uri to a file
-        path, so we have to cheat!
-        """
-        if self.manager.server_info.serverfilepath:
-            filename = os.path.join(self.manager.server_info.serverfilepath, ruri[1:])
-            if os.path.exists(filename):
-                attrs = xattr.xattr(filename)
-                if enable:
-                    del attrs["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}access-disabled"]
-                else:
-                    attrs["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}access-disabled"] = "yes"
-                return True
-        return False
-
-    def dorequest( self, req, details=False, doverify = True, forceverify = False, stats = None ):
-        
-        # Special check for DELETEALL
-        if req.method == "DELETEALL":
-            collection = (req.ruri, req.user, req.pswd)
-            hrefs = self.dofindall(collection)
-            self.dodeleteall(hrefs)
-            return True, "", None, None
-        
-        # Special check for ACCESS-DISABLE
-        if req.method == "ACCESS-DISABLE":
-            if self.doaccess(req.ruri, False):
-                return True, "", None, None
-            else:
-                return False, "Could not set access-disabled xattr on file", None, None
-        elif req.method == "ACCESS-ENABLE":
-            if self.doaccess(req.ruri, True):
-                return True, "", None, None
-            else:
-                return False, "Could not remove access-disabled xattr on file", None, None
-
-        # Special for delay
-        if req.method == "DELAY":
-            # self.ruri contains a numeric delay in seconds
-            delay = int(req.ruri)
-            starttime = time.time()
-            while (time.time() < starttime + delay):
-                pass
-            return True, "", None, None
-
-        # Special for LISTNEW
-        if req.method == "LISTNEW":
-            collection = (req.ruri, req.user, req.pswd)
-            self.grabbedlocation = self.dofindnew(collection)
-            return True, "", None, None
-            
-        # Special for GETNEW
-        if req.method == "GETNEW":
-            collection = (req.ruri, req.user, req.pswd)
-            self.grabbedlocation = self.dofindnew(collection)
-            req.method = "GET"
-            req.ruri = "$"
-            
-        result = True;
-        resulttxt = ""
-        response = None
-        respdata = None
-
-        # Cache delayed delete
-        if req.end_delete:
-            self.end_deletes.append( (req.ruri, req.user, req.pswd) )
-
-        method = req.method
-        uri = req.getURI( self.manager.server_info )
-        if (uri == "$"):
-            uri = self.grabbedlocation
-        headers = req.getHeaders( self.manager.server_info )
-        data = req.getData()
-        
-        if details:
-            resulttxt += "        %s: %s\n" % ( method, uri )
-
-        # Start request timer if required
-        if stats:
-            stats.startTimer()
-
-        # Do the http request
-        if self.manager.server_info.ssl:
-            http = httplib.HTTPSConnection( self.manager.server_info.host, self.manager.server_info.port )
-        else:
-            http = httplib.HTTPConnection( self.manager.server_info.host, self.manager.server_info.port )
-        try:
-            http.request( method, uri, data, headers )
-        
-            response = http.getresponse()
-        
-            respdata = None
-            respdata = response.read()
-
-        finally:
-            http.close()
-        
-            # Stop request timer before verification
-            if stats:
-                stats.endTimer()
-
-        if doverify and (respdata != None):
-            result, txt = self.verifyrequest( req, uri, response, respdata )
-            resulttxt += txt
-        elif forceverify:
-            result = (response.status / 100 == 2)
-            if not result:
-                resulttxt += "Status Code Error: %d" % response.status
-        
-        if req.print_response:
-            resulttxt += "\n-------BEGIN:RESPONSE-------\n"
-            resulttxt += "Status = %d\n" % response.status
-            resulttxt += str(response.msg) + "\n" + respdata
-            resulttxt += "\n--------END:RESPONSE--------\n"
-        
-        if req.grablocation:
-            hdrs = response.msg.getheaders("Location")
-            if hdrs:
-                self.grabbedlocation = hdrs[0]
-
-        return result, resulttxt, response, respdata
-
-    def verifyrequest( self, req, uri, response, respdata ):
-        
-        result = True;
-        resulttxt = ""
-        
-        # check for response
-        if len(req.verifiers) == 0:
-            return result, resulttxt
-        else:
-            result = True
-            resulttxt = ""
-            for verifier in req.verifiers:
-                iresult, iresulttxt = verifier.doVerify(uri, response, respdata)
-                if not iresult:
-                    result = False
-                    if len(resulttxt):
-                        resulttxt += "\n"
-                    resulttxt += "Failed Verifier: %s\n" % verifier.callback
-                    resulttxt += iresulttxt
-                else:
-                    if len(resulttxt):
-                        resulttxt += "\n"
-                    resulttxt += "Passed Verifier: %s\n" % verifier.callback
-
-            if result:
-                resulttxt = ""
-            return result, resulttxt
-
-    def parseXML( self, node ):
-        self.ignore_all = node.getAttribute( tests.xmlDefs.ATTR_IGNORE_ALL ) == tests.xmlDefs.ATTR_VALUE_YES
-
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_DESCRIPTION:
-                self.description = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_START:
-                self.start_requests = request.parseList( child )
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_TESTSUITE:
-                suite = testsuite()
-                suite.parseXML( child )
-                self.suites.append( suite )
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_END:
-                self.end_requests = request.parseList( child )
-    

Copied: CalDAVTester/trunk/src/caldavtest.py (from rev 239, CalDAVTester/trunk/tests/caldavtest.py)
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	                        (rev 0)
+++ CalDAVTester/trunk/src/caldavtest.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,494 @@
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+
+"""
+Class to encapsulate a single caldav test run.
+"""
+
+from src.manager import manager
+from src.request import data
+from src.request import request
+from src.request import stats
+from src.testsuite import testsuite
+from xml.dom.minicompat import NodeList
+from xml.dom.minidom import Node
+import httplib
+import os
+import rfc822
+import socket
+import src.xmlDefs
+import time
+import xattr
+import xml.dom.minidom
+
+STATUSTXT_WIDTH    = 60
+
+class caldavtest(object):
+    __slots__  = ['manager', 'name', 'description', 'ignore_all', 'start_requests', 'end_requests', 'end_deletes', 'suites', 'grabbedlocation']
+    
+    def __init__( self, manager, name ):
+        self.manager = manager
+        self.name = name
+        self.description = ""
+        self.ignore_all = False
+        self.start_requests = []
+        self.end_requests = []
+        self.end_deletes = []
+        self.suites = []
+        self.grabbedlocation = None
+        
+    def run( self ):
+        try:
+            self.manager.log(manager.LOG_HIGH, "----- Running CalDAV Tests from \"%s\"... -----" % self.name, before=1)
+            self.dorequests( "Executing Start Requests...", self.start_requests, False, True )
+            ok, failed, ignored = self.run_tests()
+            self.doenddelete( "Deleting Requests..." )
+            self.dorequests( "Executing End Requests...", self.end_requests, False )
+            return ok, failed, ignored
+        except socket.error, msg:
+            self.manager.log(manager.LOG_HIGH, "FATAL ERROR: " + msg.args[1], before=2)
+            return 0, 1, 0
+        
+    def run_tests( self ):
+        ok = 0
+        failed = 0
+        ignored = 0
+        for suite in self.suites:
+            o, f, i = self.run_test_suite( suite )
+            ok += o
+            failed += f
+            ignored += i
+        return (ok, failed, ignored)
+    
+    def run_test_suite( self, suite ):
+        descriptor = "    Test Suite: %s" % suite.name
+        descriptor += " " * max(1, STATUSTXT_WIDTH - len(descriptor))
+        self.manager.log(manager.LOG_HIGH, "%s" % (descriptor,), before=1, after=0)
+        ok = 0
+        failed = 0
+        ignored = 0
+        if suite.ignore:
+            self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+            ignored = len(suite.tests)
+        else:
+            self.manager.log(manager.LOG_HIGH, "")
+            for test in suite.tests:
+                result = self.run_test( test )
+                if result == "t":
+                    ok += 1
+                elif result == "f":
+                    failed += 1
+                else:
+                    ignored += 1
+        self.manager.log(manager.LOG_HIGH, "Suite Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=1, indent=4)
+        return (ok, failed, ignored)
+            
+    def run_test( self, test ):
+        descriptor = "        Test: %s" % test.name
+        descriptor += " " * max(1, STATUSTXT_WIDTH - len(descriptor))
+        self.manager.log(manager.LOG_HIGH, "%s" % (descriptor,), before=1, after=0)
+        if test.ignore:
+            self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+            return "i"
+        else:
+            result = False
+            if test.stats:
+                reqstats = stats()
+            else:
+                reqstats = None
+            for ctr in range(test.count): #@UnusedVariable
+                for req in test.requests:
+                    result, resulttxt, response, respdata = self.dorequest( req, test.details, True, False, reqstats )
+                    if not result:
+                        break
+            self.manager.log(manager.LOG_HIGH, ["[FAILED]", "[OK]"][result])
+            if len(resulttxt) > 0:
+                self.manager.log(manager.LOG_HIGH, resulttxt)
+            if result and test.stats:
+                self.manager.log(manager.LOG_MEDIUM, "Total Time: %.3f secs" % (reqstats.totaltime,), indent=8)
+                self.manager.log(manager.LOG_MEDIUM, "Average Time: %.3f secs" % (reqstats.totaltime/reqstats.count,), indent=8)
+            return ["f", "t"][result]
+    
+    def dorequests( self, description, list, doverify = True, forceverify = False ):
+        if len(list) == 0:
+            return True
+        description += " " * max(1, STATUSTXT_WIDTH - len(description))
+        self.manager.log(manager.LOG_HIGH, description, before=1, after=0)
+        ctr = 1
+        for req in list:
+            result, resulttxt, response, respdata = self.dorequest( req, False, doverify, forceverify )
+            if not result:
+                resulttxt += "\nFailure during multiple requests #%d out of %d, request=%s" % (ctr, len(list), str(req))
+                break
+            ctr += 1
+        self.manager.log(manager.LOG_HIGH, ["[FAILED]", "[OK]"][result])
+        if len(resulttxt) > 0:
+            self.manager.log(manager.LOG_HIGH, resulttxt)
+        return result
+    
+    def dofindall( self, collection):
+        hrefs = []
+        req = request()
+        req.method = "PROPFIND"
+        req.ruri = collection[0]
+        req.headers["Depth"] = "1"
+        if len(collection[1]):
+            req.user = collection[1]
+        if len(collection[2]):
+            req.pswd = collection[2]
+        req.data = data()
+        req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:getetag/>
+</D:prop>
+</D:propfind>
+"""
+        req.data.content_type = "text/xml"
+        result, resulttxt, response, respdata = self.dorequest( req, False, False )
+        if result and (response is not None) and (response.status == 207) and (respdata is not None):
+            doc = xml.dom.minidom.parseString( respdata )
+
+            def ElementsByName(parent, nsURI, localName):
+                rc = NodeList()
+                for node in parent.childNodes:
+                    if node.nodeType == Node.ELEMENT_NODE:
+                        if ((localName == "*" or node.localName == localName) and
+                            (nsURI == "*" or node.namespaceURI == nsURI)):
+                            rc.append(node)
+                return rc
+
+            for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+    
+                # Get href for this response
+                href = ElementsByName(response, "DAV:", "href")
+                if len(href) != 1:
+                    return False, "           Wrong number of DAV:href elements\n"
+                if href[0].firstChild is not None:
+                    href = href[0].firstChild.data
+                    if href != req.ruri:
+                        hrefs.append((href, collection[1], collection[2]) )
+        return hrefs
+
+    def dodeleteall( self, deletes ):
+        if len(deletes) == 0:
+            return True
+        for deleter in deletes:
+            req = request()
+            req.method = "DELETE"
+            req.ruri = deleter[0]
+            if len(deleter[1]):
+                req.user = deleter[1]
+            if len(deleter[2]):
+                req.pswd = deleter[2]
+            self.dorequest( req, False, False )
+
+    def dofindnew( self, collection):
+        hresult = ""
+        req = request()
+        req.method = "PROPFIND"
+        req.ruri = collection[0]
+        req.headers["Depth"] = "1"
+        if len(collection[1]):
+            req.user = collection[1]
+        if len(collection[2]):
+            req.pswd = collection[2]
+        req.data = data()
+        req.data.value = """<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:getetag/>
+<D:getlastmodified/>
+</D:prop>
+</D:propfind>
+"""
+        req.data.content_type = "text/xml"
+        result, resulttxt, response, respdata = self.dorequest( req, False, False )
+        if result and (response is not None) and (response.status == 207) and (respdata is not None):
+            doc = xml.dom.minidom.parseString( respdata )
+
+            def ElementsByName(parent, nsURI, localName):
+                rc = NodeList()
+                for node in parent.childNodes:
+                    if node.nodeType == Node.ELEMENT_NODE:
+                        if ((localName == "*" or node.localName == localName) and
+                            (nsURI == "*" or node.namespaceURI == nsURI)):
+                            rc.append(node)
+                return rc
+
+            latest = 0
+            for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+    
+                # Get href for this response
+                href = ElementsByName(response, "DAV:", "href")
+                if len(href) != 1:
+                    return False, "           Wrong number of DAV:href elements\n"
+                if href[0].firstChild is not None:
+                    href = href[0].firstChild.data
+                    if href != req.ruri:
+
+                        # Get all property status
+                        propstatus = ElementsByName(response, "DAV:", "propstat")
+                        for props in propstatus:
+                            # Determine status for this propstat
+                            status = ElementsByName(props, "DAV:", "status")
+                            if len(status) == 1:
+                                statustxt = status[0].firstChild.data
+                                status = False
+                                if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
+                                    status = (statustxt[9] == "2")
+                            else:
+                                status = False
+                            
+                            # Get properties for this propstat
+                            prop = ElementsByName(props, "DAV:", "prop")
+                            for el in prop:
+    
+                                # Get properties for this propstat
+                                glm = ElementsByName(el, "DAV:", "getlastmodified")
+                                if len(glm) != 1:
+                                    continue
+                                if glm[0].firstChild is not None:
+                                    value = glm[0].firstChild.data
+                                    value = rfc822.parsedate(value)
+                                    value = time.mktime(value)
+                                    if value > latest:
+                                        hresult = href
+                                        latest = value
+
+        return hresult
+
+    def doenddelete( self, description ):
+        if len(self.end_deletes) == 0:
+            return True
+        description += " " * max(1, STATUSTXT_WIDTH - len(description))
+        self.manager.log(manager.LOG_HIGH, description, before=1, after=0)
+        for deleter in self.end_deletes:
+            req = request()
+            req.method = "DELETE"
+            req.ruri = deleter[0]
+            if len(deleter[1]):
+                req.user = deleter[1]
+            if len(deleter[2]):
+                req.pswd = deleter[2]
+            self.dorequest( req, False, False )
+        self.manager.log(manager.LOG_HIGH, "[DONE]")
+    
+    def doaccess(self, ruri, enable):
+        """
+        We have to set the xattr WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}access-disabled 
+        on the resource pointed to by the ruri. Strictly speaking only the server know how to map from a uri to a file
+        path, so we have to cheat!
+        """
+        if self.manager.server_info.serverfilepath:
+            filename = os.path.join(self.manager.server_info.serverfilepath, ruri[1:])
+            if os.path.exists(filename):
+                attrs = xattr.xattr(filename)
+                if enable:
+                    del attrs["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}caldav-access-disabled"]
+                else:
+                    attrs["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}caldav-access-disabled"] = "yes"
+                return True
+        return False
+
+    def doquota(self, ruri, size):
+        """
+        We have to set the xattr WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}access-disabled 
+        on the resource pointed to by the ruri. Strictly speaking only the server know how to map from a uri to a file
+        path, so we have to cheat!
+        """
+        if self.manager.server_info.serverfilepath:
+            filename = os.path.join(self.manager.server_info.serverfilepath, ruri[1:])
+            if os.path.exists(filename):
+                attrs = xattr.xattr(filename)
+                if size is None:
+                    del attrs["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}quota-root"]
+                else:
+                    attrs["WebDAV:{http:%2F%2Ftwistedmatrix.com%2Fxml_namespace%2Fdav%2Fprivate%2F}quota-root"] = \
+                            "<?xml version='1.0' encoding='UTF-8'?>\n" + \
+                            "<quota-root xmlns='http://twistedmatrix.com/xml_namespace/dav/private/'>" + \
+                            str(size) + \
+                            "</quota-root>"
+                return True
+        return False
+
+    def dorequest( self, req, details=False, doverify = True, forceverify = False, stats = None ):
+        
+        # Special check for DELETEALL
+        if req.method == "DELETEALL":
+            collection = (req.ruri, req.user, req.pswd)
+            hrefs = self.dofindall(collection)
+            self.dodeleteall(hrefs)
+            return True, "", None, None
+        
+        # Special check for ACCESS-DISABLE
+        if req.method == "ACCESS-DISABLE":
+            if self.doaccess(req.ruri, False):
+                return True, "", None, None
+            else:
+                return False, "Could not set caldav-access-disabled xattr on file", None, None
+        elif req.method == "ACCESS-ENABLE":
+            if self.doaccess(req.ruri, True):
+                return True, "", None, None
+            else:
+                return False, "Could not remove caldav-access-disabled xattr on file", None, None
+
+        # Special check for QUOTA
+        if req.method == "QUOTA-DISABLE":
+            if self.doquota(req.ruri, None):
+                return True, "", None, None
+            else:
+                return False, "Could remove quota-root xattr on file", None, None
+        elif req.method.startswith("QUOTA-ENABLE-"):
+            if self.doquota(req.ruri, req.method[len("QUOTA-ENABLE-"):]):
+                return True, "", None, None
+            else:
+                return False, "Could not set quota-root xattr on file", None, None
+
+        # Special for delay
+        if req.method == "DELAY":
+            # self.ruri contains a numeric delay in seconds
+            delay = int(req.ruri)
+            starttime = time.time()
+            while (time.time() < starttime + delay):
+                pass
+            return True, "", None, None
+
+        # Special for LISTNEW
+        if req.method == "LISTNEW":
+            collection = (req.ruri, req.user, req.pswd)
+            self.grabbedlocation = self.dofindnew(collection)
+            return True, "", None, None
+            
+        # Special for GETNEW
+        if req.method == "GETNEW":
+            collection = (req.ruri, req.user, req.pswd)
+            self.grabbedlocation = self.dofindnew(collection)
+            req.method = "GET"
+            req.ruri = "$"
+            
+        result = True;
+        resulttxt = ""
+        response = None
+        respdata = None
+
+        # Cache delayed delete
+        if req.end_delete:
+            self.end_deletes.append( (req.ruri, req.user, req.pswd) )
+
+        method = req.method
+        uri = req.getURI( self.manager.server_info )
+        if (uri == "$"):
+            uri = self.grabbedlocation
+        headers = req.getHeaders( self.manager.server_info )
+        data = req.getData()
+        
+        if details:
+            resulttxt += "        %s: %s\n" % ( method, uri )
+
+        # Start request timer if required
+        if stats:
+            stats.startTimer()
+
+        # Do the http request
+        if self.manager.server_info.ssl:
+            http = httplib.HTTPSConnection( self.manager.server_info.host, self.manager.server_info.port )
+        else:
+            http = httplib.HTTPConnection( self.manager.server_info.host, self.manager.server_info.port )
+        try:
+            #self.manager.log(manager.LOG_LOW, "Sending request")
+            http.request( method, uri, data, headers )
+            #self.manager.log(manager.LOG_LOW, "Sent request")
+        
+            response = http.getresponse()
+        
+            respdata = None
+            respdata = response.read()
+            #self.manager.log(manager.LOG_LOW, "Read response")
+
+        finally:
+            http.close()
+        
+            # Stop request timer before verification
+            if stats:
+                stats.endTimer()
+
+        if doverify and (respdata != None):
+            result, txt = self.verifyrequest( req, uri, response, respdata )
+            resulttxt += txt
+        elif forceverify:
+            result = (response.status / 100 == 2)
+            if not result:
+                resulttxt += "Status Code Error: %d" % response.status
+        
+        if req.print_response:
+            resulttxt += "\n-------BEGIN:RESPONSE-------\n"
+            resulttxt += "Status = %d\n" % response.status
+            resulttxt += str(response.msg) + "\n" + respdata
+            resulttxt += "\n--------END:RESPONSE--------\n"
+        
+        if req.grablocation:
+            hdrs = response.msg.getheaders("Location")
+            if hdrs:
+                self.grabbedlocation = hdrs[0]
+
+        return result, resulttxt, response, respdata
+
+    def verifyrequest( self, req, uri, response, respdata ):
+        
+        result = True;
+        resulttxt = ""
+        
+        # check for response
+        if len(req.verifiers) == 0:
+            return result, resulttxt
+        else:
+            result = True
+            resulttxt = ""
+            for verifier in req.verifiers:
+                iresult, iresulttxt = verifier.doVerify(uri, response, respdata)
+                if not iresult:
+                    result = False
+                    if len(resulttxt):
+                        resulttxt += "\n"
+                    resulttxt += "Failed Verifier: %s\n" % verifier.callback
+                    resulttxt += iresulttxt
+                else:
+                    if len(resulttxt):
+                        resulttxt += "\n"
+                    resulttxt += "Passed Verifier: %s\n" % verifier.callback
+
+            if result:
+                resulttxt = ""
+            return result, resulttxt
+
+    def parseXML( self, node ):
+        self.ignore_all = node.getAttribute( src.xmlDefs.ATTR_IGNORE_ALL ) == src.xmlDefs.ATTR_VALUE_YES
+
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
+                self.description = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_START:
+                self.start_requests = request.parseList( self.manager, child )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTSUITE:
+                suite = testsuite(self.manager)
+                suite.parseXML( child )
+                self.suites.append( suite )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_END:
+                self.end_requests = request.parseList( self.manager, child )
+    

Deleted: CalDAVTester/trunk/src/manager.py
===================================================================
--- CalDAVTester/trunk/tests/manager.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/manager.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,203 +0,0 @@
-##
-# Copyright (c) 2006 Apple Computer, 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.
-#
-# DRI: Cyrus Daboo, cdaboo at apple.com
-##
-
-"""
-Class to manage the testing process.
-"""
-
-import time
-import httplib
-from tests.populate import populate
-import os
-
-from tests.caldavtest import caldavtest
-from tests.serverinfo import serverinfo
-import getopt
-import sys
-import tests.xmlDefs
-import xml.dom.minidom
-
-# Exceptions
-
-EX_INVALID_CONFIG_FILE = "Invalid Config File"
-EX_FAILED_REQUEST = "HTTP Request Failed"
-
-class manager(object):
-
-    """
-    Main class that runs test suites defined in an XML config file.
-    """
-    __slots__  = ['server_info', 'populator', 'depopulate', 'tests', 'textMode']
-
-    def __init__( self, text=True ):
-        self.server_info = serverinfo()
-        self.populator = None
-        self.depopulate = False
-        self.tests = []
-        self.textMode = text
-    
-    def log(self, str, indent = 0, indentStr = " ", after = 1, before = 0):
-        if self.textMode:
-            if before:
-                print "\n" * before,
-            if indent:
-                print indentStr * indent,
-            print str,
-            if after:
-                print "\n" * after,
-
-    def readXML( self, serverfile, populatorfile, testfiles, all ):
-
-        self.log("Reading Server Info from \"%s\"" % serverfile, after=2)
-    
-        # Open and parse the server config file
-        fd = open(serverfile, "r")
-        doc = xml.dom.minidom.parse( fd )
-        fd.close()
-
-        # Verify that top-level element is correct
-        serverinfo_node = doc._get_documentElement()
-        if serverinfo_node._get_localName() != tests.xmlDefs.ELEMENT_SERVERINFO:
-            raise EX_INVALID_CONFIG_FILE
-        if not serverinfo_node.hasChildNodes():
-            raise EX_INVALID_CONFIG_FILE
-        self.server_info.parseXML(serverinfo_node)
-        
-        # Open and parse the populator config file
-        if populatorfile:
-            self.log("Reading Populator Info from \"%s\"" % populatorfile, after=2)
-    
-            fd = open(populatorfile, "r")
-            doc = xml.dom.minidom.parse( fd )
-            fd.close()
-
-            # Verify that top-level element is correct
-            populate_node = doc._get_documentElement()
-            if populate_node._get_localName() != tests.xmlDefs.ELEMENT_POPULATE:
-                raise EX_INVALID_CONFIG_FILE
-            if not populate_node.hasChildNodes():
-                raise EX_INVALID_CONFIG_FILE
-            self.populator = populate(self)
-            self.populator.parseXML(populate_node)
-
-        for testfile in testfiles:
-            # Open and parse the config file
-            fd = open( testfile, "r" )
-            doc = xml.dom.minidom.parse( fd )
-            fd.close()
-            
-            # Verify that top-level element is correct
-            caldavtest_node = doc._get_documentElement()
-            if caldavtest_node._get_localName() != tests.xmlDefs.ELEMENT_CALDAVTEST:
-                self.log("Ignoring file \"%s\" because it is not a test file" % (testfile,), after=2)
-                continue
-            if not caldavtest_node.hasChildNodes():
-                raise EX_INVALID_CONFIG_FILE
-            self.log("Reading Test Details from \"%s\"" % testfile, after=2)
-                
-            # parse all the config data
-            test = caldavtest(self, testfile)
-            test.parseXML(caldavtest_node)
-            
-            # ignore if all mode and ignore-all is set
-            if not all or not test.ignore_all:
-                self.tests.append(test)
-
-    def readCommandLine(self):
-        sname = "serverinfo.xml"
-        pname = None
-        fnames = []
-        all = False
-        options, args = getopt.getopt(sys.argv[1:], "s:p:d", ["all"])
-        
-        # Process single options
-        for option, value in options:
-            if option == "-s":
-                sname = value
-            elif option == "-p":
-                pname = value
-            elif option == "-d":
-                self.depopulate = True
-            elif option == "--all":
-                all = True
-                files = os.listdir(os.getcwd())
-                for file in files:
-                    if file.endswith(".xml"):
-                        fnames.append(file)
-
-        # Remove any server info file from files enuerated by --all
-        fnames[:] = [x for x in fnames if (x != sname) and (not pname or (x != pname))]
-
-        # Process any files argumentsd as test configs
-        for f in args:
-            fnames.append(f)
-        
-        self.readXML(sname, pname, fnames, all)
-
-    def runAll(self):
-        
-        if self.populator:
-            self.runPopulate();
-
-        startTime = time.time()
-        ok = 0
-        failed = 0
-        ignored = 0
-        try:
-            for test in self.tests:
-                o, f, i = test.run()
-                ok += o
-                failed += f
-                ignored += i
-        except:
-            failed += 1
-            import traceback
-            traceback.print_exc()
-
-        endTime = time.time()
-
-        if self.populator and self.depopulate:
-            self.runDepopulate()
-
-        self.log("Overall Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=2, indent=4)
-        self.log("Total time: %d secs" % (endTime- startTime,))
-
-        sys.exit(failed)
-
-    def runPopulate(self):
-        self.populator.generateAccounts()
-    
-    def runDepopulate(self):
-        self.populator.removeAccounts()
-
-    def httpRequest(self, method, uri, headers, data):
-
-        # Do the http request
-        http = httplib.HTTPConnection( self.server_info.host, self.server_info.port )
-        try:
-            http.request( method, uri, data, headers )
-        
-            response = http.getresponse()
-        
-            respdata = response.read()
-
-        finally:
-            http.close()
-        
-        return response.status, respdata
-        

Copied: CalDAVTester/trunk/src/manager.py (from rev 239, CalDAVTester/trunk/tests/manager.py)
===================================================================
--- CalDAVTester/trunk/src/manager.py	                        (rev 0)
+++ CalDAVTester/trunk/src/manager.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,219 @@
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+
+"""
+Class to manage the testing process.
+"""
+
+from src.populate import populate
+from src.serverinfo import serverinfo
+import getopt
+import httplib
+import os
+import src.xmlDefs
+import sys
+import time
+import xml.dom.minidom
+
+# Exceptions
+
+EX_INVALID_CONFIG_FILE = "Invalid Config File"
+EX_FAILED_REQUEST = "HTTP Request Failed"
+
+class manager(object):
+
+    """
+    Main class that runs test suites defined in an XML config file.
+    """
+    __slots__  = ['server_info', 'populator', 'depopulate', 'tests', 'textMode', 'logLevel']
+
+    LOG_NONE    = 0
+    LOG_LOW     = 1
+    LOG_MEDIUM  = 2
+    LOG_HIGH    = 3
+
+    def __init__( self, text=True, level=LOG_HIGH ):
+        self.server_info = serverinfo()
+        self.populator = None
+        self.depopulate = False
+        self.tests = []
+        self.textMode = text
+        self.logLevel = level
+    
+    def log(self, level, str, indent = 0, indentStr = " ", after = 1, before = 0):
+        if self.textMode and level <= self.logLevel:
+            if before:
+                print "\n" * before,
+            if indent:
+                print indentStr * indent,
+            print str,
+            if after:
+                print "\n" * after,
+
+    def readXML( self, serverfile, populatorfile, testfiles, all, moresubs = {} ):
+
+        self.log(manager.LOG_HIGH, "Reading Server Info from \"%s\"" % serverfile, after=2)
+    
+        # Open and parse the server config file
+        fd = open(serverfile, "r")
+        doc = xml.dom.minidom.parse( fd )
+        fd.close()
+
+        # Verify that top-level element is correct
+        serverinfo_node = doc._get_documentElement()
+        if serverinfo_node._get_localName() != src.xmlDefs.ELEMENT_SERVERINFO:
+            raise EX_INVALID_CONFIG_FILE
+        if not serverinfo_node.hasChildNodes():
+            raise EX_INVALID_CONFIG_FILE
+        self.server_info.parseXML(serverinfo_node)
+        self.server_info.addsubs(moresubs)
+        
+        # Open and parse the populator config file
+        if populatorfile:
+            self.log(manager.LOG_HIGH, "Reading Populator Info from \"%s\"" % populatorfile, after=2)
+    
+            fd = open(populatorfile, "r")
+            doc = xml.dom.minidom.parse( fd )
+            fd.close()
+
+            # Verify that top-level element is correct
+            populate_node = doc._get_documentElement()
+            if populate_node._get_localName() != src.xmlDefs.ELEMENT_POPULATE:
+                raise EX_INVALID_CONFIG_FILE
+            if not populate_node.hasChildNodes():
+                raise EX_INVALID_CONFIG_FILE
+            self.populator = populate(self)
+            self.populator.parseXML(populate_node)
+
+        for testfile in testfiles:
+            # Open and parse the config file
+            fd = open( testfile, "r" )
+            doc = xml.dom.minidom.parse( fd )
+            fd.close()
+            
+            # Verify that top-level element is correct
+            from src.caldavtest import caldavtest
+            caldavtest_node = doc._get_documentElement()
+            if caldavtest_node._get_localName() != src.xmlDefs.ELEMENT_CALDAVTEST:
+                self.log(manager.LOG_HIGH, "Ignoring file \"%s\" because it is not a test file" % (testfile,), after=2)
+                continue
+            if not caldavtest_node.hasChildNodes():
+                raise EX_INVALID_CONFIG_FILE
+            self.log(manager.LOG_HIGH, "Reading Test Details from \"%s\"" % testfile, after=2)
+                
+            # parse all the config data
+            test = caldavtest(self, testfile)
+            test.parseXML(caldavtest_node)
+            
+            # ignore if all mode and ignore-all is set
+            if not all or not test.ignore_all:
+                self.tests.append(test)
+
+    def readCommandLine(self):
+        sname = "scripts/server/serverinfo.xml"
+        pname = None
+        dname = "scripts/tests"
+        fnames = []
+        all = False
+        options, args = getopt.getopt(sys.argv[1:], "s:p:dx:", ["all"])
+        
+        # Process single options
+        for option, value in options:
+            if option == "-s":
+                sname = value
+            elif option == "-p":
+                pname = value
+            elif option == "-d":
+                self.depopulate = True
+            elif option == "-x":
+                self.dname = value
+            elif option == "--all":
+                all = True
+                
+        if all:
+            files = os.listdir(dname)
+            for file in files:
+                if file.endswith(".xml"):
+                    fnames.append(dname + "/" + file)
+
+        # Remove any server info file from files enuerated by --all
+        fnames[:] = [x for x in fnames if (x != sname) and (not pname or (x != pname))]
+
+        # Process any filesarguments as test configs
+        for f in args:
+            fnames.append(dname + "/" + f)
+        
+        self.readXML(sname, pname, fnames, all)
+
+    def runWithOptions(self, sname, pname, fnames, moresubs, all = False, depopulate = False):
+        self.depopulate = depopulate
+        self.readXML(sname, pname, fnames, all, moresubs)
+        return self.runAll()
+
+    def runAll(self):
+        
+        if self.populator:
+            self.runPopulate();
+
+        startTime = time.time()
+        ok = 0
+        failed = 0
+        ignored = 0
+        try:
+            for test in self.tests:
+                o, f, i = test.run()
+                ok += o
+                failed += f
+                ignored += i
+        except:
+            failed += 1
+            import traceback
+            traceback.print_exc()
+
+        endTime = time.time()
+
+        if self.populator and self.depopulate:
+            self.runDepopulate()
+
+        self.log(manager.LOG_LOW, "Overall Results: %d PASSED, %d FAILED, %d IGNORED" % (ok, failed, ignored), before=2, indent=4)
+        self.log(manager.LOG_LOW, "Total time: %.3f secs" % (endTime- startTime,))
+
+        return failed, endTime - startTime
+
+    def runPopulate(self):
+        self.populator.generateAccounts()
+    
+    def runDepopulate(self):
+        self.populator.removeAccounts()
+
+    def httpRequest(self, method, uri, headers, data):
+
+        # Do the http request
+        http = httplib.HTTPConnection( self.server_info.host, self.server_info.port )
+        try:
+            http.request( method, uri, data, headers )
+        
+            response = http.getresponse()
+        
+            respdata = response.read()
+
+        finally:
+            http.close()
+        
+        return response.status, respdata
+        

Copied: CalDAVTester/trunk/src/multithread.py (from rev 239, CalDAVTester/trunk/tests/multithread.py)
===================================================================
--- CalDAVTester/trunk/src/multithread.py	                        (rev 0)
+++ CalDAVTester/trunk/src/multithread.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,97 @@
+#!/usr/bin/env python
+#
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+#
+# A thread pool based function executor. This class takes a function as an argument
+# and multiple sets of arguments to the function, and it executes the function with
+# each argument set in a thread in parallel. The total number of threads is limited by
+# the thread pool and a queue is used to hold pending function executions.
+#
+# Code is copied from O'Reilly Python Cookbook Recipe 9.3.
+#
+from random import randrange
+
+import time
+import Queue
+import threading
+
+class MultiThread(object):
+
+    def __init__(self, function, argsVector, maxThreads=5, queue_results=False, sleep=0.0):
+        self._function = function
+        self._lock = threading.Lock( )
+        self._nextArgs = iter(argsVector).next
+        self._threadPool = [ threading.Thread(target=self._doSome, args=(i,))
+                             for i in range(maxThreads) ]
+        if queue_results:
+            self._queue = Queue.Queue( )
+        else:
+            self._queue = None
+            
+        self.sleep = sleep
+
+    def _doSome(self, ctr):
+        while True:
+            
+            self._lock.acquire( )
+            try:
+                try:
+                    args = self._nextArgs( )
+                except StopIteration:
+                    break
+            finally:
+                self._lock.release( )
+            # Insert user provided delay in here
+            if self.sleep != 0.0:
+                sleeper = randrange(0, 100)/100.0 * self.sleep
+                #print sleeper
+                c = time.clock()
+                #print c
+                while time.clock() - c < sleeper:
+                    time.sleep(0)    # necessary to give other threads a chance to run
+                    j = 0
+                    for i in range(100):
+                        j += i
+                #time.sleep(sleeper)
+            else:
+                sleeper = 0.0
+
+            try:
+                #print "Thread: %d, %f" % (ctr, sleeper)
+                result = self._function(args)
+                if self._queue is not None:
+                    self._queue.put((args, result))
+            except Exception, e:
+                print "Exception: %s" % e
+
+    def get(self, *a, **kw):
+        if self._queue is not None:
+            return self._queue.get(*a, **kw)
+        else:
+            raise ValueError, 'Not queueing results'
+
+    def start(self):
+        for thread in self._threadPool:
+            time.sleep(0)    # necessary to give other threads a chance to run
+            thread.start( )
+
+    def join(self, timeout=None):
+        for thread in self._threadPool:
+            thread.join(timeout)
+

Added: CalDAVTester/trunk/src/perfinfo.py
===================================================================
--- CalDAVTester/trunk/src/perfinfo.py	                        (rev 0)
+++ CalDAVTester/trunk/src/perfinfo.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,81 @@
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+
+"""
+Class that encapsulates the server information for a CalDAV test run.
+"""
+
+import src.xmlDefs
+
+class perfinfo( object ):
+    """
+    Maintains information about the performance test scenario.
+    """
+    __slots__  = ['clients', 'threads', 'logging', 'tests', 'serverinfo', 'testinfo', 'subsdict']
+
+    def __init__( self ):
+        self.clients = 20
+        self.threads = True
+        self.logging = False
+        self.tests = []
+        self.serverinfo = ""
+        self.testinfo = ""
+        self.subsdict = {}
+
+    def parseXML( self, node ):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_CLIENTS:
+                self.clients = int(child.firstChild.data)
+            elif child._get_localName() == src.xmlDefs.ELEMENT_THREADS:
+                self.threads = child.getAttribute( src.xmlDefs.ATTR_ENABLE ) != src.xmlDefs.ATTR_VALUE_NO
+            elif child._get_localName() == src.xmlDefs.ELEMENT_LOGGING:
+                self.logging = child.getAttribute( src.xmlDefs.ATTR_ENABLE ) != src.xmlDefs.ATTR_VALUE_NO
+            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTS:
+                self.parseTestsXML(child)
+            elif child._get_localName() == src.xmlDefs.ELEMENT_SERVERINFO:
+                self.serverinfo = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTINFO:
+                self.testinfo = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
+                self.parseSubstitutionsXML(child)
+
+    def parseTestsXML(self, node):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_TEST:
+                spread = None
+                runs = None
+                for schild in child._get_childNodes():
+                    if schild._get_localName() == src.xmlDefs.ELEMENT_SPREAD:
+                        spread = float(schild.firstChild.data)
+                    elif schild._get_localName() == src.xmlDefs.ELEMENT_RUNS:
+                        runs = int(schild.firstChild.data)
+                if spread and runs:
+                    self.tests.append((spread, runs,))
+
+    def parseSubstitutionsXML(self, node):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTION:
+                key = None
+                value = None
+                for schild in child._get_childNodes():
+                    if schild._get_localName() == src.xmlDefs.ELEMENT_KEY:
+                        key = schild.firstChild.data
+                    elif schild._get_localName() == src.xmlDefs.ELEMENT_VALUE:
+                        value = schild.firstChild.data
+                if key and value:
+                    self.subsdict[key] = value

Modified: CalDAVTester/trunk/src/populate.py
===================================================================
--- CalDAVTester/trunk/tests/populate.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/populate.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -20,11 +20,10 @@
 Class that encapsulates the information for populating a CalDAV server.
 """
 
+from src.account import account
 from utils import webdav
-from tests.account import account
+import src.xmlDefs
 
-import tests.xmlDefs
-
 class populate( object ):
     """
     Maintains information about accounts to be created on the server.
@@ -39,11 +38,11 @@
     
     def parseXML( self, node ):
         for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_DESCRIPTION:
+            if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
                 self.description = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_PATH:
+            elif child._get_localName() == src.xmlDefs.ELEMENT_PATH:
                 self.path = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_ACCOUNT:
+            elif child._get_localName() == src.xmlDefs.ELEMENT_ACCOUNT:
                 acct = account()
                 acct.parseXML(child)
                 self.accounts.extend(acct.expand())

Deleted: CalDAVTester/trunk/src/request.py
===================================================================
--- CalDAVTester/trunk/tests/request.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/request.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,235 +0,0 @@
-##
-# Copyright (c) 2006 Apple Computer, 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.
-#
-# DRI: Cyrus Daboo, cdaboo at apple.com
-##
-
-"""
-Defines the 'request' class which encapsulates an HTTP request and verification.
-"""
-from tests.serverinfo import serverinfo
-
-import base64
-import tests.xmlDefs
-import time
-
-class request( object ):
-    """
-    Represents the HTTP request to be executed, and verifcation information to
-    be used to determine a satisfactory output or not.
-    """
-    __slots__  = ['auth', 'user', 'pswd', 'end_delete', 'print_response', 'method', 'headers', 'ruri', 'data', 'datasubs', 'verifiers', 'grablocation']
-    
-    def __init__( self ):
-        self.auth = True
-        self.user = ""
-        self.pswd = ""
-        self.end_delete = False
-        self.print_response = False
-        self.method = ""
-        self.headers = {}
-        self.ruri = ""
-        self.data = None
-        self.datasubs = False
-        self.verifiers = []
-        self.grablocation = False
-    
-    def getURI( self, si ):
-        if self.ruri == "$":
-            return self.ruri
-        if len(self.ruri) > 0 and self.ruri[0] == '/':
-            uri = ""
-        else:
-            uri = "%s/" % ( si.calendarpath )
-        uri += self.ruri
-        return uri
-        
-    def getHeaders( self, si ):
-        hdrs = self.headers
-        
-        # Content type
-        if self.data != None:
-            hdrs["Content-Type"] = self.data.content_type
-        
-        # Auth
-        if self.auth:
-            hdrs["Authorization"] = self.gethttpauth( si )
-        
-        return hdrs
-
-    def gethttpauth( self, si ):
-        basicauth = [self.user, si.user][self.user == ""]
-        basicauth += ":"
-        basicauth += [self.pswd, si.pswd][self.pswd == ""]
-        basicauth = "Basic " + base64.encodestring( basicauth )
-        basicauth = basicauth.replace( "\n", "" )
-        return basicauth
-
-    def getFilePath( self ):
-        if self.data != None:
-            return self.data.filepath
-        else:
-            return ""
-
-    def getData( self ):
-        data = ""
-        if self.data != None:
-            if len(self.data.value) != 0:
-                data = self.data.value
-            else:
-                # read in the file data
-                fd = open( self.data.filepath, "r" )
-                try:
-                    data = fd.read()
-                finally:
-                    fd.close()
-            if self.datasubs:
-                data = serverinfo.subs(data)
-        return data
-    
-    def parseXML( self, node ):
-        self.auth = node.getAttribute( tests.xmlDefs.ATTR_AUTH ) != tests.xmlDefs.ATTR_VALUE_NO
-        self.user = node.getAttribute( tests.xmlDefs.ATTR_USER )
-        self.pswd = node.getAttribute( tests.xmlDefs.ATTR_PSWD )
-        self.end_delete = node.getAttribute( tests.xmlDefs.ATTR_END_DELETE ) == tests.xmlDefs.ATTR_VALUE_YES
-        self.print_response = node.getAttribute( tests.xmlDefs.ATTR_PRINT_RESPONSE ) == tests.xmlDefs.ATTR_VALUE_YES
-
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_METHOD:
-                self.method = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_HEADER:
-                self.parseHeader(child)
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_RURI:
-                self.ruri = serverinfo.subs(child.firstChild.data)
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_DATA:
-                self.data = data()
-                self.datasubs = self.data.parseXML( child )
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_VERIFY:
-                self.verifiers.append(verify())
-                self.verifiers[-1].parseXML( child )
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_GRABLOCATION:
-                self.grablocation = True
-
-    def parseHeader(self, node):
-        
-        name = None
-        value = None
-        for child in node._get_childNodes():
-           if child._get_localName() == tests.xmlDefs.ELEMENT_NAME:
-                name = child.firstChild.data
-           elif child._get_localName() == tests.xmlDefs.ELEMENT_VALUE:
-                value = serverinfo.subs(child.firstChild.data)
-        
-        if (name is not None) and (value is not None):
-            self.headers[name] = value
-            
-    def parseList( node ):
-        requests = []
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_REQUEST:
-                req = request()
-                req.parseXML( child )
-                requests.append( req )
-        return requests
-                
-    parseList = staticmethod( parseList )
-
-class data( object ):
-    """
-    Represents the data/body portion of an HTTP request.
-    """
-    __slots__  = ['content_type', 'filepath', 'value']
-    
-    def __init__( self ):
-        self.content_type = ""
-        self.filepath = ""
-        self.value = ""
-    
-    def parseXML( self, node ):
-
-        subs = node.getAttribute( tests.xmlDefs.ATTR_SUBSTITUTIONS ) == tests.xmlDefs.ATTR_VALUE_YES
-
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_CONTENTTYPE:
-                self.content_type = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_FILEPATH:
-                self.filepath = child.firstChild.data
-
-        return subs
-
-class verify( object ):
-    """
-    Defines how the result of a request should be verified. This is done
-    by passing the response and response data to a callback with a set of arguments
-    specified in the test XML config file. The callback name is in the XML config
-    file also and is dynamically loaded to do the verification.
-    """
-    __slots__  = ['callback', 'args']
-    
-    def __init__( self ):
-        self.callback = None
-        self.args = {}
-    
-    def doVerify(self, uri, response, respdata):
-        verifierClass = self._importName("verifiers." + self.callback, "Verifier")
-        verifier = verifierClass()
-        return verifier.verify(uri, response, respdata, self.args)
-
-    def _importName(self, modulename, name):
-        """
-        Import a named object from a module in the context of this function.
-        """
-        module = __import__(modulename, globals( ), locals( ), [name])
-        return getattr(module, name)
-
-    def parseXML( self, node ):
-
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_CALLBACK:
-                self.callback = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_ARG:
-                self.parseArgXML(child)
-
-    def parseArgXML(self, node):
-        name = None
-        values = []
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_NAME:
-                name = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_VALUE:
-                if child.firstChild is not None:
-                    values.append(serverinfo.subs(child.firstChild.data))
-                else:
-                    values.append("")
-        if name and len(values):
-            self.args[name] = values
-
-class stats( object ):
-    """
-    Maintains stats about the current test.
-    """
-    __slots__ = ['count', 'totaltime', 'currenttime']
-    
-    def __init__(self):
-        self.count = 0
-        self.totaltime = 0.0
-        self.currenttime = 0.0
-        
-    def startTimer(self):
-        self.currenttime = time.time()
-        
-    def endTimer(self):
-        self.count += 1
-        self.totaltime += time.time() - self.currenttime

Copied: CalDAVTester/trunk/src/request.py (from rev 239, CalDAVTester/trunk/tests/request.py)
===================================================================
--- CalDAVTester/trunk/src/request.py	                        (rev 0)
+++ CalDAVTester/trunk/src/request.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,240 @@
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+
+"""
+Defines the 'request' class which encapsulates an HTTP request and verification.
+"""
+
+import base64
+import src.xmlDefs
+import time
+
+class request( object ):
+    """
+    Represents the HTTP request to be executed, and verifcation information to
+    be used to determine a satisfactory output or not.
+    """
+    __slots__  = ['manager', 'auth', 'user', 'pswd', 'end_delete', 'print_response',
+                  'method', 'headers', 'ruri', 'data', 'datasubs', 'verifiers', 'grablocation']
+    
+    def __init__( self, manager ):
+        self.manager = manager
+        self.auth = True
+        self.user = ""
+        self.pswd = ""
+        self.end_delete = False
+        self.print_response = False
+        self.method = ""
+        self.headers = {}
+        self.ruri = ""
+        self.data = None
+        self.datasubs = True
+        self.verifiers = []
+        self.grablocation = False
+    
+    def __str__(self):
+        return "Method: %s; uri: %s" % (self.method, self.ruri)
+
+    def getURI( self, si ):
+        if self.ruri == "$":
+            return self.ruri
+        if len(self.ruri) > 0 and self.ruri[0] == '/':
+            uri = ""
+        else:
+            uri = "%s/" % ( si.calendarpath )
+        uri += self.ruri
+        return uri
+        
+    def getHeaders( self, si ):
+        hdrs = self.headers
+        
+        # Content type
+        if self.data != None:
+            hdrs["Content-Type"] = self.data.content_type
+        
+        # Auth
+        if self.auth:
+            hdrs["Authorization"] = self.gethttpauth( si )
+        
+        return hdrs
+
+    def gethttpauth( self, si ):
+        basicauth = [self.user, si.user][self.user == ""]
+        basicauth += ":"
+        basicauth += [self.pswd, si.pswd][self.pswd == ""]
+        basicauth = "Basic " + base64.encodestring( basicauth )
+        basicauth = basicauth.replace( "\n", "" )
+        return basicauth
+
+    def getFilePath( self ):
+        if self.data != None:
+            return self.data.filepath
+        else:
+            return ""
+
+    def getData( self ):
+        data = ""
+        if self.data != None:
+            if len(self.data.value) != 0:
+                data = self.data.value
+            else:
+                # read in the file data
+                fd = open( self.data.filepath, "r" )
+                try:
+                    data = fd.read()
+                finally:
+                    fd.close()
+            if self.datasubs:
+                data = str(self.manager.server_info.subs(data))
+        return data
+    
+    def parseXML( self, node ):
+        self.auth = node.getAttribute( src.xmlDefs.ATTR_AUTH ) != src.xmlDefs.ATTR_VALUE_NO
+        self.user = self.manager.server_info.subs(node.getAttribute( src.xmlDefs.ATTR_USER ))
+        self.pswd = self.manager.server_info.subs(node.getAttribute( src.xmlDefs.ATTR_PSWD ))
+        self.end_delete = node.getAttribute( src.xmlDefs.ATTR_END_DELETE ) == src.xmlDefs.ATTR_VALUE_YES
+        self.print_response = node.getAttribute( src.xmlDefs.ATTR_PRINT_RESPONSE ) == src.xmlDefs.ATTR_VALUE_YES
+
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_METHOD:
+                self.method = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_HEADER:
+                self.parseHeader(child)
+            elif child._get_localName() == src.xmlDefs.ELEMENT_RURI:
+                self.ruri = self.manager.server_info.subs(child.firstChild.data)
+            elif child._get_localName() == src.xmlDefs.ELEMENT_DATA:
+                self.data = data()
+                self.datasubs = self.data.parseXML( child )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_VERIFY:
+                self.verifiers.append(verify(self.manager))
+                self.verifiers[-1].parseXML( child )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_GRABLOCATION:
+                self.grablocation = True
+
+    def parseHeader(self, node):
+        
+        name = None
+        value = None
+        for child in node._get_childNodes():
+           if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
+                name = child.firstChild.data
+           elif child._get_localName() == src.xmlDefs.ELEMENT_VALUE:
+                value = self.manager.server_info.subs(child.firstChild.data)
+        
+        if (name is not None) and (value is not None):
+            self.headers[name] = value
+            
+    def parseList( manager, node ):
+        requests = []
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_REQUEST:
+                req = request(manager)
+                req.parseXML( child )
+                requests.append( req )
+        return requests
+                
+    parseList = staticmethod( parseList )
+
+class data( object ):
+    """
+    Represents the data/body portion of an HTTP request.
+    """
+    __slots__  = ['content_type', 'filepath', 'value']
+    
+    def __init__( self ):
+        self.content_type = ""
+        self.filepath = ""
+        self.value = ""
+    
+    def parseXML( self, node ):
+
+        subs = node.getAttribute( src.xmlDefs.ATTR_SUBSTITUTIONS ) != src.xmlDefs.ATTR_VALUE_NO
+
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_CONTENTTYPE:
+                self.content_type = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_FILEPATH:
+                self.filepath = child.firstChild.data
+
+        return subs
+
+class verify( object ):
+    """
+    Defines how the result of a request should be verified. This is done
+    by passing the response and response data to a callback with a set of arguments
+    specified in the test XML config file. The callback name is in the XML config
+    file also and is dynamically loaded to do the verification.
+    """
+    __slots__  = ['manager', 'callback', 'args']
+    
+    def __init__( self, manager ):
+        self.manager = manager
+        self.callback = None
+        self.args = {}
+    
+    def doVerify(self, uri, response, respdata):
+        verifierClass = self._importName("verifiers." + self.callback, "Verifier")
+        verifier = verifierClass()
+        return verifier.verify(self.manager, uri, response, respdata, self.args)
+
+    def _importName(self, modulename, name):
+        """
+        Import a named object from a module in the context of this function.
+        """
+        module = __import__(modulename, globals( ), locals( ), [name])
+        return getattr(module, name)
+
+    def parseXML( self, node ):
+
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_CALLBACK:
+                self.callback = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_ARG:
+                self.parseArgXML(child)
+
+    def parseArgXML(self, node):
+        name = None
+        values = []
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
+                name = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_VALUE:
+                if child.firstChild is not None:
+                    values.append(self.manager.server_info.subs(child.firstChild.data))
+                else:
+                    values.append("")
+        if name and len(values):
+            self.args[name] = values
+
+class stats( object ):
+    """
+    Maintains stats about the current test.
+    """
+    __slots__ = ['count', 'totaltime', 'currenttime']
+    
+    def __init__(self):
+        self.count = 0
+        self.totaltime = 0.0
+        self.currenttime = 0.0
+        
+    def startTimer(self):
+        self.currenttime = time.time()
+        
+    def endTimer(self):
+        self.count += 1
+        self.totaltime += time.time() - self.currenttime

Deleted: CalDAVTester/trunk/src/serverinfo.py
===================================================================
--- CalDAVTester/trunk/tests/serverinfo.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/serverinfo.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,69 +0,0 @@
-##
-# Copyright (c) 2006 Apple Computer, 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.
-#
-# DRI: Cyrus Daboo, cdaboo at apple.com
-##
-
-"""
-Class that encapsulates the server information for a CalDAV test run.
-"""
-
-import tests.xmlDefs
-
-class serverinfo( object ):
-    """
-    Maintains information about the server beiung targetted.
-    """
-    __slots__  = ['host', 'port', 'ssl', 'calendarpath', 'user', 'pswd', 'hostsubs', 'pathsubs', 'serverfilepath']
-
-    hostsubs = ""
-    pathsubs = ""
-
-    @classmethod
-    def subs(cls, str):
-        return str.replace("$host:", serverinfo.hostsubs).replace("$pathprefix:", serverinfo.pathsubs)
-
-    def __init__( self ):
-        self.host = ""
-        self.port = 80
-        self.ssl = False
-        self.calendarpath = ""
-        self.user = ""
-        self.pswd = ""
-        self.serverfilepath = ""
-    
-    def parseXML( self, node ):
-        for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_HOST:
-                self.host = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_PORT:
-                self.port = int( child.firstChild.data )
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_SSL:
-                self.ssl = True
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_CALENDARPATH:
-                self.calendarpath = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_USER:
-                self.user = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_PSWD:
-                self.pswd = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_HOSTSUBS:
-                if child.firstChild is not None:
-                    serverinfo.hostsubs = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_PATHSUBS:
-                if child.firstChild is not None:
-                    serverinfo.pathsubs = child.firstChild.data
-            elif child._get_localName() == tests.xmlDefs.ELEMENT_SERVERFILEPATH:
-                if child.firstChild is not None:
-                    self.serverfilepath = child.firstChild.data

Copied: CalDAVTester/trunk/src/serverinfo.py (from rev 239, CalDAVTester/trunk/tests/serverinfo.py)
===================================================================
--- CalDAVTester/trunk/src/serverinfo.py	                        (rev 0)
+++ CalDAVTester/trunk/src/serverinfo.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,92 @@
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+
+"""
+Class that encapsulates the server information for a CalDAV test run.
+"""
+
+import src.xmlDefs
+
+class serverinfo( object ):
+    """
+    Maintains information about the server beiung targetted.
+    """
+    __slots__  = ['host', 'port', 'ssl', 'calendarpath', 'user', 'pswd', 'serverfilepath', 'subsdict']
+
+
+    def __init__( self ):
+        self.host = ""
+        self.port = 80
+        self.ssl = False
+        self.calendarpath = ""
+        self.user = ""
+        self.pswd = ""
+        self.serverfilepath = ""
+        self.subsdict = {}
+
+    def subs(self, str):
+        for key, value in self.subsdict.iteritems():
+            str = str.replace(key, value)
+        return str
+
+    def addsubs(self, items):
+        for key, value in items.iteritems():
+            self.subsdict[key] = value
+   
+        self.updateParams()
+        
+    def parseXML( self, node ):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_HOST:
+                self.host = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_PORT:
+                self.port = int( child.firstChild.data )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_SSL:
+                self.ssl = True
+            elif child._get_localName() == src.xmlDefs.ELEMENT_SERVERFILEPATH:
+                if child.firstChild is not None:
+                    self.serverfilepath = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
+                self.parseSubstitutionsXML(child)
+   
+        self.updateParams()
+
+    def updateParams(self):         
+        # Now cache some useful substitutions
+        if "$calendarpath1:" not in self.subsdict:
+            raise ValueError, "Must have $calendarpath1: substitution"
+        self.calendarpath = self.subsdict["$calendarpath1:"]
+        if "$userid1:" not in self.subsdict:
+            raise ValueError, "Must have $userid1: substitution"
+        self.user = self.subsdict["$userid1:"]
+        if "$pswd1:" not in self.subsdict:
+            raise ValueError, "Must have $pswd1: substitution"
+        self.pswd = self.subsdict["$pswd1:"]
+
+    def parseSubstitutionsXML(self, node):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTION:
+                key = None
+                value = None
+                for schild in child._get_childNodes():
+                    if schild._get_localName() == src.xmlDefs.ELEMENT_KEY:
+                        key = schild.firstChild.data
+                    elif schild._get_localName() == src.xmlDefs.ELEMENT_VALUE:
+                        value = schild.firstChild.data
+                if key and value:
+                    self.subsdict[key] = value

Modified: CalDAVTester/trunk/src/test.py
===================================================================
--- CalDAVTester/trunk/tests/test.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/test.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -20,8 +20,8 @@
 Class that encapsulates a single CalDAV test.
 """
 
-from tests.request import request
-import tests.xmlDefs
+from src.request import request
+import src.xmlDefs
 
 class test( object ):
     """
@@ -29,9 +29,10 @@
     be run more than once, and timing information gathered and averaged across
     all runs.
     """
-    __slots__  = ['name', 'details', 'count', 'stats', 'ignore', 'description', 'requests']
+    __slots__  = ['manager', 'name', 'details', 'count', 'stats', 'ignore', 'description', 'requests']
     
-    def __init__( self ):
+    def __init__( self, manager ):
+        self.manager = manager
         self.name = ""
         self.details = False
         self.count = 1
@@ -41,22 +42,22 @@
         self.requests = []
     
     def parseXML( self, node ):
-        self.name = node.getAttribute( tests.xmlDefs.ATTR_NAME )
-        self.details = node.getAttribute( tests.xmlDefs.ATTR_DETAILS ) == tests.xmlDefs.ATTR_VALUE_YES
-        self.count = node.getAttribute( tests.xmlDefs.ATTR_COUNT )
+        self.name = node.getAttribute( src.xmlDefs.ATTR_NAME )
+        self.details = node.getAttribute( src.xmlDefs.ATTR_DETAILS ) == src.xmlDefs.ATTR_VALUE_YES
+        self.count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
         if self.count == '':
             self.count = 1
         else:
             self.count = int(self.count)
-        self.stats = node.getAttribute( tests.xmlDefs.ATTR_STATS ) == tests.xmlDefs.ATTR_VALUE_YES
-        self.ignore = node.getAttribute( tests.xmlDefs.ATTR_IGNORE ) == tests.xmlDefs.ATTR_VALUE_YES
+        self.stats = node.getAttribute( src.xmlDefs.ATTR_STATS ) == src.xmlDefs.ATTR_VALUE_YES
+        self.ignore = node.getAttribute( src.xmlDefs.ATTR_IGNORE ) == src.xmlDefs.ATTR_VALUE_YES
 
         for child in node._get_childNodes():
-            if child._get_localName() == tests.xmlDefs.ELEMENT_DESCRIPTION:
+            if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
                 self.description = child.firstChild.data
 
         # get request
-        self.requests = request.parseList( node )
+        self.requests = request.parseList( self.manager, node )
 
     def dump( self ):
         print "\nTEST: %s" % self.name

Modified: CalDAVTester/trunk/src/testsuite.py
===================================================================
--- CalDAVTester/trunk/tests/testsuite.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/testsuite.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -20,27 +20,28 @@
 Class that encapsulates a series of tests.
 """
 
-from tests.test import test
-import tests.xmlDefs
+from src.test import test
+import src.xmlDefs
 
 class testsuite( object ):
     """
     Maintains a list of tests to run as part of a 'suite'.
     """
-    __slots__  = ['name', 'ignore', 'tests']
+    __slots__  = ['manager', 'name', 'ignore', 'tests']
     
-    def __init__( self ):
+    def __init__( self, manager ):
+        self.manager = manager
         self.name = ""
         self.ignore = False
         self.tests = []
     
     def parseXML( self, node ):
-        self.name = node.getAttribute( tests.xmlDefs.ATTR_NAME )
-        self.ignore = node.getAttribute( tests.xmlDefs.ATTR_IGNORE ) == tests.xmlDefs.ATTR_VALUE_YES
+        self.name = node.getAttribute( src.xmlDefs.ATTR_NAME )
+        self.ignore = node.getAttribute( src.xmlDefs.ATTR_IGNORE ) == src.xmlDefs.ATTR_VALUE_YES
 
-        test_nodes = node.getElementsByTagName( tests.xmlDefs.ELEMENT_TEST )
+        test_nodes = node.getElementsByTagName( src.xmlDefs.ELEMENT_TEST )
         for child in test_nodes:
-            t = test()
+            t = test(self.manager)
             t.parseXML( child )
             self.tests.append( t )
 

Deleted: CalDAVTester/trunk/src/xmlDefs.py
===================================================================
--- CalDAVTester/trunk/tests/xmlDefs.py	2006-09-26 20:11:16 UTC (rev 201)
+++ CalDAVTester/trunk/src/xmlDefs.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,77 +0,0 @@
-##
-# Copyright (c) 2006 Apple Computer, 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.
-#
-# DRI: Cyrus Daboo, cdaboo at apple.com
-##
-
-# XML Elements/Attributes
-
-ELEMENT_ACCOUNT = "account"
-ELEMENT_ARG = "arg"
-ELEMENT_CALDAVTEST = "caldavtest"
-ELEMENT_CALENDARPATH = "calendarpath"
-ELEMENT_CALENDARS = "calendars"
-ELEMENT_CALLBACK = "callback"
-ELEMENT_CONTENTTYPE = "content-type"
-ELEMENT_DATA = "data"
-ELEMENT_DATASOURCE = "datasource"
-ELEMENT_DESCRIPTION = "description"
-ELEMENT_END = "end"
-ELEMENT_FILEPATH = "filepath"
-ELEMENT_GRABLOCATION = "grablocation"
-ELEMENT_HEADER = "header"
-ELEMENT_HOST = "host"
-ELEMENT_HOSTSUBS = "hostsubs"
-ELEMENT_METHOD = "method"
-ELEMENT_NAME = "name"
-ELEMENT_PATH = "path"
-ELEMENT_PATHSUBS = "pathsubs"
-ELEMENT_POPULATE = "populate"
-ELEMENT_PORT = "port"
-ELEMENT_PSWD = "pswd"
-ELEMENT_REQUEST = "request"
-ELEMENT_RURI = "ruri"
-ELEMENT_SERVERFILEPATH = "serverfilepath"
-ELEMENT_SERVERINFO = "serverinfo"
-ELEMENT_SSL = "ssl"
-ELEMENT_START = "start"
-ELEMENT_TEST = "test"
-ELEMENT_TESTSUITE = "test-suite"
-ELEMENT_USER = "user"
-ELEMENT_VALUE = "value"
-ELEMENT_VERIFY = "verify"
-
-ATTR_AUTH = "auth"
-ATTR_COUNT = "count"
-ATTR_COUNTARG = "countarg"
-ATTR_DETAILS = "details"
-ATTR_END_DELETE = "end-delete"
-ATTR_IGNORE = "ignore"
-ATTR_IGNORE_ALL = "ignore-all"
-ATTR_MODE = "mode"
-ATTR_NAME = "name"
-ATTR_PRINT_RESPONSE = "print-response"
-ATTR_PSWD = "pswd"
-ATTR_STATS = "stats"
-ATTR_SUBSTITUTIONS = "substitutions"
-ATTR_USER = "user"
-
-ATTR_DEFAULT_COUNT = 1
-ATTR_DEFAULT_COUNTARG = "%ctr"
-
-ATTR_VALUE_ALL = "all"
-ATTR_VALUE_NO = "no"
-ATTR_VALUE_RANDOM = "random"
-ATTR_VALUE_YES = "yes"

Copied: CalDAVTester/trunk/src/xmlDefs.py (from rev 239, CalDAVTester/trunk/tests/xmlDefs.py)
===================================================================
--- CalDAVTester/trunk/src/xmlDefs.py	                        (rev 0)
+++ CalDAVTester/trunk/src/xmlDefs.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -0,0 +1,84 @@
+##
+# Copyright (c) 2006 Apple Computer, 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.
+#
+# DRI: Cyrus Daboo, cdaboo at apple.com
+##
+
+# XML Elements/Attributes
+
+ELEMENT_ACCOUNT = "account"
+ELEMENT_ARG = "arg"
+ELEMENT_CALDAVTEST = "caldavtest"
+ELEMENT_CALENDARS = "calendars"
+ELEMENT_CALLBACK = "callback"
+ELEMENT_CLIENTS = "clients"
+ELEMENT_CONTENTTYPE = "content-type"
+ELEMENT_DATA = "data"
+ELEMENT_DATASOURCE = "datasource"
+ELEMENT_DESCRIPTION = "description"
+ELEMENT_END = "end"
+ELEMENT_FILEPATH = "filepath"
+ELEMENT_GRABLOCATION = "grablocation"
+ELEMENT_HEADER = "header"
+ELEMENT_HOST = "host"
+ELEMENT_KEY = "key"
+ELEMENT_LOGGING = "logging"
+ELEMENT_METHOD = "method"
+ELEMENT_NAME = "name"
+ELEMENT_PATH = "path"
+ELEMENT_PERFINFO = "perfinfo"
+ELEMENT_POPULATE = "populate"
+ELEMENT_PORT = "port"
+ELEMENT_REQUEST = "request"
+ELEMENT_RUNS = "runs"
+ELEMENT_RURI = "ruri"
+ELEMENT_SERVERFILEPATH = "serverfilepath"
+ELEMENT_SERVERINFO = "serverinfo"
+ELEMENT_SPREAD = "spread"
+ELEMENT_SSL = "ssl"
+ELEMENT_START = "start"
+ELEMENT_SUBSTITUTIONS = "substitutions"
+ELEMENT_SUBSTITUTION = "substitution"
+ELEMENT_TEST = "test"
+ELEMENT_TESTINFO = "testinfo"
+ELEMENT_TESTS = "tests"
+ELEMENT_TESTSUITE = "test-suite"
+ELEMENT_THREADS = "threads"
+ELEMENT_VALUE = "value"
+ELEMENT_VERIFY = "verify"
+
+ATTR_AUTH = "auth"
+ATTR_COUNT = "count"
+ATTR_COUNTARG = "countarg"
+ATTR_DETAILS = "details"
+ATTR_ENABLE = "enable"
+ATTR_END_DELETE = "end-delete"
+ATTR_IGNORE = "ignore"
+ATTR_IGNORE_ALL = "ignore-all"
+ATTR_MODE = "mode"
+ATTR_NAME = "name"
+ATTR_PRINT_RESPONSE = "print-response"
+ATTR_PSWD = "pswd"
+ATTR_STATS = "stats"
+ATTR_SUBSTITUTIONS = "substitutions"
+ATTR_USER = "user"
+
+ATTR_DEFAULT_COUNT = 1
+ATTR_DEFAULT_COUNTARG = "%ctr"
+
+ATTR_VALUE_ALL = "all"
+ATTR_VALUE_NO = "no"
+ATTR_VALUE_RANDOM = "random"
+ATTR_VALUE_YES = "yes"

Deleted: CalDAVTester/trunk/sslserverinfo.xml
===================================================================
--- CalDAVTester/trunk/sslserverinfo.xml	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/sslserverinfo.xml	2006-10-10 17:08:43 UTC (rev 264)
@@ -1,111 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
-
-<!--
- Copyright (c) 2006 Apple Computer, 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.
-
- DRI: Cyrus Daboo, cdaboo at apple.com
- -->
-
-<serverinfo>
-	<host>localhost</host>
-	<port>8443</port>
-	<ssl/>
-	<calendarpath>/calendars/users/user01/calendar</calendarpath>
-	<user>user01</user>
-	<pswd>user01</pswd>
-	<substitutions>
-		<substitution>
-			<key>$host:</key>
-			<value>https://localhost:8443</value>
-		</substitution>
-
-		<!-- user id for admin user -->
-		<substitution>
-			<key>$useradmin:</key>
-			<value>admin</value>
-		</substitution>
-		<!-- password for admin user -->
-		<substitution>
-			<key>$pswdadmin:</key>
-			<value>admin</value>
-		</substitution>
-		<!-- relative path to admin principal resource-->
-		<substitution>
-			<key>$principaladmin:</key>
-			<value>/principals/users/admin</value>
-		</substitution>
-
-		<!-- relative path to first user principal resource-->
-		<substitution>
-			<key>$userid1:</key>
-			<value>user01</value>
-		</substitution>
-		<!-- relative path to first user principal resource-->
-		<substitution>
-			<key>$principal:</key>
-			<value>/principals/users/user01</value>
-		</substitution>
-		<!-- relative path to first user calendar home-->
-		<substitution>
-			<key>$pathprefix:</key>
-			<value>/calendars/users/user01</value>
-		</substitution>
-		
-		<!-- user id for second user -->
-		<substitution>
-			<key>$userid2:</key>
-			<value>user02</value>
-		</substitution>
-		<!-- password for second user -->
-		<substitution>
-			<key>$pswd2:</key>
-			<value>user02</value>
-		</substitution>
-		<!-- relative path to second user principal resource-->
-		<substitution>
-			<key>$principal2:</key>
-			<value>/principals/users/user02</value>
-		</substitution>
-		<!-- relative path to second user calendar home-->
-		<substitution>
-			<key>$pathprefix2:</key>
-			<value>/calendars/users/user02</value>
-		</substitution>
-		
-		<!-- user id for third user -->
-		<substitution>
-			<key>$userid3:</key>
-			<value>user03</value>
-		</substitution>
-		<!-- password for third user -->
-		<substitution>
-			<key>$pswd3:</key>
-			<value>user03</value>
-		</substitution>
-		<!-- relative path to third user principal resource-->
-		<substitution>
-			<key>$principal3:</key>
-			<value>/principals/users/user03</value>
-		</substitution>
-		<!-- relative path to third user calendar home-->
-		<substitution>
-			<key>$pathprefix3:</key>
-			<value>/calendars/users/user03</value>
-		</substitution>
-	</substitutions>
-	<serverfilepath>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/CalendarServer/twistedcaldav/test/data/</serverfilepath>
-</serverinfo>

Modified: CalDAVTester/trunk/testcaldav.py
===================================================================
--- CalDAVTester/trunk/testcaldav.py	2006-10-07 01:05:56 UTC (rev 263)
+++ CalDAVTester/trunk/testcaldav.py	2006-10-10 17:08:43 UTC (rev 264)
@@ -21,7 +21,7 @@
 # Runs a suite of tests defined in a config file against a caldav server
 #
 
-from tests.manager import manager
+from src.manager import manager
 import sys
 
 if __name__ == "__main__":

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061010/c60a25d3/attachment.html


More information about the calendarserver-changes mailing list