[CalendarServer-changes] [162] CalDAVTester/trunk/quota.xml
source_changes at macosforge.org
source_changes at macosforge.org
Wed Sep 20 14:03:38 PDT 2006
Revision: 162
http://trac.macosforge.org/projects/calendarserver/changeset/162
Author: cdaboo at apple.com
Date: 2006-09-20 11:30:01 -0700 (Wed, 20 Sep 2006)
Log Message:
-----------
Quota tests.
Added Paths:
-----------
CalDAVTester/trunk/quota.xml
Added: CalDAVTester/trunk/quota.xml
===================================================================
--- CalDAVTester/trunk/quota.xml (rev 0)
+++ CalDAVTester/trunk/quota.xml 2006-09-20 18:30:01 UTC (rev 162)
@@ -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>/calendars/users/user01/collection/</ruri>
+ </request>
+ <request>
+ <method>MKCOL</method>
+ <ruri>/calendars/users/user01/collection/temp/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/noquotacol/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-2048</method>
+ <ruri>/calendars/users/user01/collection/quotacol/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/temp/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
+ <ruri>/calendars/users/user01/collection/largequotacol/</ruri>
+ </request>
+ <request>
+ <method>MKCOL</method>
+ <ruri>/calendars/users/user01/collection/parentquotacol/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-4096</method><!-- 4Kb -->
+ <ruri>/calendars/users/user01/collection/parentquotacol/</ruri>
+ </request>
+ <request>
+ <method>MKCOL</method>
+ <ruri>/calendars/users/user01/collection/parentquotacol/nestedquotacol1/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-2048</method><!-- 2Kb -->
+ <ruri>/calendars/users/user01/collection/parentquotacol/nestedquotacol1/</ruri>
+ </request>
+ <request>
+ <method>MKCOL</method>
+ <ruri>/calendars/users/user01/collection/parentquotacol/nestedquotacol2/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
+ <ruri>/calendars/users/user01/collection/parentquotacol/nestedquotacol2/</ruri>
+ </request>
+ <request>
+ <method>MKCALENDAR</method>
+ <ruri>/calendars/users/user01/collection/noquotacal/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/collection/quotacal/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-2048</method>
+ <ruri>/calendars/users/user01/collection/quotacal/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacal/</ruri>
+ </request>
+ <request>
+ <method>QUOTA-ENABLE-1048576</method><!-- 1Mb -->
+ <ruri>/calendars/users/user01/collection/largequotacal/</ruri>
+ </request>
+ <request>
+ <method>PUT</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/2.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/test/</value>
+ </header>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacal/4.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacal/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacal/test/</value>
+ </header>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/test/</value>
+ </header>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/temp/</value>
+ </header>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/temp/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request print-response='no'>
+ <method>GET</method>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/collection/quotacol/temp/test/</value>
+ </header>
+ <header>
+ <name>Depth</name>
+ <value>infinity</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacal/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacal/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacal/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacal/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/test/</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/largequotacol/test/</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/calendar/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/calendar/2.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/calendar/1.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/calendar/2.ics</value>
+ </header>
+ <ruri>/calendars/users/user01/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>/calendars/users/user01/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>/calendars/users/user01/collection/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <end>
+ <request>
+ <method>DELETE</method>
+ <ruri>/calendars/users/user01/collection/</ruri>
+ </request>
+ </end>
+
+</caldavtest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20060920/dbe2070d/attachment.html
More information about the calendarserver-changes
mailing list