[CalendarServer-changes] [2091]
CalDAVTester/branches/users/cdaboo/private_events-2082
source_changes at macosforge.org
source_changes at macosforge.org
Fri Jan 4 14:39:34 PST 2008
Revision: 2091
http://trac.macosforge.org/projects/calendarserver/changeset/2091
Author: cdaboo at apple.com
Date: 2008-01-04 14:39:32 -0800 (Fri, 04 Jan 2008)
Log Message:
-----------
Tests for handling of X-CALENDARSERVER-ACCESS on PUT.
Modified Paths:
--------------
CalDAVTester/branches/users/cdaboo/private_events-2082/scripts/tests/privateevents.xml
Added Paths:
-----------
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/10.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/11.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/12.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/13.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/4.xml
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/5.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/6.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/7.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/8.ics
CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/9.ics
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/10.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/10.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/10.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,31 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+X-CALENDARSERVER-ACCESS:CONFIDENTIAL
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFC at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/11.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/11.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/11.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFC at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/12.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/12.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/12.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,31 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+X-CALENDARSERVER-ACCESS:RESTRICTED
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFD at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/13.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/13.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/13.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFD at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/4.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/4.xml (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/4.xml 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:acl xmlns:D="DAV:">
+ <D:ace>
+ <D:principal>
+ <D:href>$principaluri2:</D:href>
+ </D:principal>
+ <D:grant>
+ <D:privilege><D:read/></D:privilege>
+ <D:privilege><D:write/></D:privilege>
+ </D:grant>
+ </D:ace>
+ <D:ace>
+ <D:principal>
+ <D:href>$principaluri3:</D:href>
+ </D:principal>
+ <D:grant>
+ <D:privilege><D:read/></D:privilege>
+ </D:grant>
+ </D:ace>
+</D:acl>
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/5.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/5.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFF at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/6.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/6.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,31 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+X-CALENDARSERVER-ACCESS:PUBLIC
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFA at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/7.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/7.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/7.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFA at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/8.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/8.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/8.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,31 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+X-CALENDARSERVER-ACCESS:PRIVATE
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFB at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/9.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/9.ics (rev 0)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/Resource/privateevents/9.ics 2008-01-04 22:39:32 UTC (rev 2091)
@@ -0,0 +1,30 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842FFB at ninevah.local
+END:VEVENT
+END:VCALENDAR
Modified: CalDAVTester/branches/users/cdaboo/private_events-2082/scripts/tests/privateevents.xml
===================================================================
--- CalDAVTester/branches/users/cdaboo/private_events-2082/scripts/tests/privateevents.xml 2008-01-04 22:38:23 UTC (rev 2090)
+++ CalDAVTester/branches/users/cdaboo/private_events-2082/scripts/tests/privateevents.xml 2008-01-04 22:39:32 UTC (rev 2091)
@@ -32,6 +32,18 @@
<filepath>Resource/delete/1.txt</filepath>
</data>
</request>
+ <request end-delete="yes">
+ <method>MKCALENDAR</method>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ </request>
+ <request>
+ <method>ACL</method>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/4.xml</filepath>
+ </data>
+ </request>
</start>
<test-suite name='OPTIONS header' ignore='no'>
@@ -241,6 +253,1228 @@
</test>
</test-suite>
+ <test-suite name='PUT behavior without access' ignore='no'>
+ <test name='1'>
+ <description>PUT without access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/5.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/5.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>PUT by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/5.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>PROPFIND by user01</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>PROPFIND by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>PROPFIND by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT behavior with PUBLIC access' ignore='no'>
+ <test name='1'>
+ <description>PUT with access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/6.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/6.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>PUT by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/6.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>PROPFIND by user01</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>PROPFIND by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>PROPFIND by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT re-write behavior with PUBLIC access' ignore='no'>
+ <test name='1'>
+ <description>Overwrite PUT with no access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/7.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/7.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/2.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PUBLIC</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT behavior with PRIVATE access' ignore='no'>
+ <test name='1'>
+ <description>PUT with access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/8.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PRIVATE</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/8.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>PUT by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/8.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>PROPFIND by user01</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>3.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>PROPFIND by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>PROPFIND by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT re-write behavior with PRIVATE access' ignore='no'>
+ <test name='1'>
+ <description>Overwrite PUT with no access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/9.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:PRIVATE</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/3.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/9.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT behavior with CONFIDENTIAL access' ignore='no'>
+ <test name='1'>
+ <description>PUT with access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/10.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:CONFIDENTIAL</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:CONFIDENTIAL</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:CONFIDENTIAL</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/10.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>PUT by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/10.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>PROPFIND by user01</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>3.ics</value>
+ <value>4.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>PROPFIND by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>4.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>PROPFIND by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>4.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT re-write behavior with CONFIDENTIAL access' ignore='no'>
+ <test name='1'>
+ <description>Overwrite PUT with no access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/11.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:CONFIDENTIAL</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:CONFIDENTIAL</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:CONFIDENTIAL</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/4.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/11.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT behavior with RESTRICTED access' ignore='no'>
+ <test name='1'>
+ <description>PUT with access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/12.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:RESTRICTED</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:RESTRICTED</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:RESTRICTED</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/12.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>PUT by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/12.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>PROPFIND by user01</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>3.ics</value>
+ <value>4.ics</value>
+ <value>5.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>PROPFIND by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>4.ics</value>
+ <value>5.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>PROPFIND by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <ruri>$pathprefix:/sharedcalendar/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value></value>
+ <value>1.ics</value>
+ <value>2.ics</value>
+ <value>4.ics</value>
+ <value>5.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='PUT re-write behavior with RESTRICTED access' ignore='no'>
+ <test name='1'>
+ <description>Overwrite PUT with no access by user01</description>
+ <request print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/13.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>GET by user01</description>
+ <request print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:RESTRICTED</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>GET by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:RESTRICTED</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>GET by user03</description>
+ <request user="$userid3:" pswd="$pswd3:" print-response="no">
+ <method>GET</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <verify>
+ <callback>dataString</callback>
+ <arg>
+ <name>contains</name>
+ <value>X-CALENDARSERVER-ACCESS:RESTRICTED</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PUT by user02</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$pathprefix:/sharedcalendar/5.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/privateevents/13.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
<end/>
</caldavtest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080104/a9f6e9c3/attachment-0001.html
More information about the calendarserver-changes
mailing list