[CalendarServer-changes] [4885] CalDAVTester/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Mon Dec 21 12:41:56 PST 2009
Revision: 4885
http://trac.macosforge.org/projects/calendarserver/changeset/4885
Author: cdaboo at apple.com
Date: 2009-12-21 12:41:53 -0800 (Mon, 21 Dec 2009)
Log Message:
-----------
Tests for partitioning.
Modified Paths:
--------------
CalDAVTester/trunk/scripts/server/serverinfo-template.xml
CalDAVTester/trunk/scripts/server/serverinfo.xml
CalDAVTester/trunk/scripts/server/sslserverinfo.xml
Added Paths:
-----------
CalDAVTester/trunk/Resource/partitioning/
CalDAVTester/trunk/Resource/partitioning/1.xml
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/1.xml
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/2.xml
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/3.ics
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/4.xml
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/5.ics
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/6.xml
CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/7.ics
CalDAVTester/trunk/Resource/partitioning/scheduleauto/
CalDAVTester/trunk/Resource/partitioning/scheduleauto/1.ics
CalDAVTester/trunk/Resource/partitioning/scheduleauto/2.ics
CalDAVTester/trunk/Resource/partitioning/scheduleauto/3.ics
CalDAVTester/trunk/Resource/partitioning/scheduleauto/4.ics
CalDAVTester/trunk/Resource/partitioning/simple/
CalDAVTester/trunk/Resource/partitioning/simple/1.xml
CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
CalDAVTester/trunk/scripts/tests/partitioning-calendaruserproxy.xml
CalDAVTester/trunk/scripts/tests/partitioning-scheduleimplicitauto.xml
CalDAVTester/trunk/scripts/tests/partitioning-simple.xml
Added: CalDAVTester/trunk/Resource/partitioning/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/1.xml (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/1.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:resourcetype/>
+<D:getetag/>
+</D:prop>
+</D:propfind>
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/1.xml (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/1.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:group-member-set/>
+<D:group-membership/>
+</D:prop>
+</D:propfind>
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/2.xml (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/2.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:group-member-set><D:href>$otherprincipaluri2:</D:href></D:group-member-set>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/3.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/3.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+METHOD:REQUEST
+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
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842 at ninevah.local
+ORGANIZER;CN=User 01:$cuaddralt1:
+ATTENDEE;CN=User 02;RSVP=TRUE:$cuaddralt2:
+ATTENDEE;CN=User 03;RSVP=TRUE:$cuaddralt3:
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/4.xml (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/4.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:group-member-set/>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/5.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/5.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/5.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -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:54E181BC7CCC373042B28842 at ninevah.local
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/6.xml (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/6.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propertyupdate xmlns:D="DAV:">
+<D:set>
+<D:prop>
+<D:group-member-set><D:href>$principaluri2:</D:href></D:group-member-set>
+</D:prop>
+</D:set>
+</D:propertyupdate>
Added: CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/7.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/7.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/calendaruserproxy/7.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Cyrusoft International\, Inc.//Mulberry v4.0//EN
+VERSION:2.0
+METHOD:REQUEST
+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
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:20060101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842 at ninevah.local
+ORGANIZER;CN=User 01:$othercuaddralt2:
+ATTENDEE;CN=User 02;RSVP=TRUE:$cuaddralt2:
+ATTENDEE;CN=User 03;RSVP=TRUE:$cuaddralt3:
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/scheduleauto/1.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/scheduleauto/1.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/scheduleauto/1.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:20060208T200000Z
+DTEND:20060208T210000Z
+ATTENDEE;CN=$otherusername1:;PARTSTAT=ACCEPTED:$othercuaddralt1:
+ATTENDEE;CN=$username2:;RSVP=TRUE:$cuaddralt2:
+ATTENDEE;CN=$resourcename1::$rcuaddralt1:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$otherusername1::$othercuaddralt1:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/scheduleauto/2.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/scheduleauto/2.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/scheduleauto/2.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:20060208T200000Z
+DTEND:20060208T210000Z
+ATTENDEE;CN=$otherusername1:;PARTSTAT=ACCEPTED;EMAIL=$otheremail1::$othercuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$resourcename1:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:$rcuaddrurn1:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$otherusername1:;EMAIL=$otheremail1::$othercuaddrurn1:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/scheduleauto/3.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/scheduleauto/3.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/scheduleauto/3.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,20 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:20060208T200000Z
+DTEND:20060208T210000Z
+ATTENDEE;CN=$otherusername1:;PARTSTAT=ACCEPTED;EMAIL=$otheremail1::$othercuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$resourcename1:;PARTSTAT=ACCEPTED:$rcuaddrurn1:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$otherusername1:;EMAIL=$otheremail1::$othercuaddrurn1:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:TRANSPARENT
+X-APPLE-NEEDS-REPLY:TRUE
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/scheduleauto/4.ics
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/scheduleauto/4.ics (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/scheduleauto/4.ics 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,19 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:20060208T200000Z
+DTEND:20060208T210000Z
+ATTENDEE;CN=$otherusername1:;PARTSTAT=ACCEPTED;EMAIL=$otheremail1::$othercuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$resourcename1:;PARTSTAT=ACCEPTED:$rcuaddrurn1:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$otherusername1:;SCHEDULE-STATUS=1.2;EMAIL=$otheremail1::$othercuaddrurn1:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
Added: CalDAVTester/trunk/Resource/partitioning/simple/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/partitioning/simple/1.xml (rev 0)
+++ CalDAVTester/trunk/Resource/partitioning/simple/1.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:resourcetype/>
+<D:getetag/>
+</D:prop>
+</D:propfind>
Added: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml (rev 0)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,648 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
+
+<!--
+ Copyright (c) 2006-2009 Apple 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.
+ -->
+
+<serverinfo>
+ <host>localhost</host>
+ <port>8008</port>
+ <authtype>basic</authtype>
+
+ <features>
+ <feature>auto-accept</feature> <!-- Auto-accept for rooms & locations -->
+ <feature>ctag</feature> <!-- ctag extension -->
+ <feature>current-user-principal</feature> <!-- current-user-principal extension -->
+ <feature>dropbox</feature> <!-- dropbox extension -->
+ <feature>extended-principal-search</feature> <!-- Extended principal-property-search REPORT extension -->
+ <feature>expand-property</feature> <!-- Expand property REPORT -->
+ <feature>implicit-scheduling</feature> <!-- CalDAV scheduling - implicit -->
+ <feature>maskuid</feature> <!-- maskuid extension -->
+ <feature>private-comments</feature> <!-- private-comments extension -->
+ <feature>private-events</feature> <!-- private-events extension -->
+ <feature>proxy</feature> <!-- calendar-user-proxy extension -->
+ <feature>proxy-authz</feature> <!-- sudo user extension -->
+ <feature>quota</feature> <!-- WebDAV QUOTA -->
+ <feature>timezone-service</feature> <!-- Timezone service extension -->
+ <feature>vavailability</feature> <!-- VAVAILABILITY on inbox -->
+ <feature>partitioning</feature> <!-- Partitioned server -->
+ </features>
+
+ <substitutions>
+ <substitution>
+ <key>$host:</key>
+ <value>http://localhost:8008</value>
+ </substitution>
+
+ <!-- relative path to caldav root-->
+ <substitution>
+ <key>$root:</key>
+ <value>/</value>
+ </substitution>
+
+ <!-- relative path to main principal collection-->
+ <substitution>
+ <key>$principalcollection:</key>
+ <value>$root:principals/</value>
+ </substitution>
+
+ <!-- the core recored type collections-->
+ <substitution>
+ <key>$uidstype:</key>
+ <value>__uids__</value>
+ </substitution>
+ <substitution>
+ <key>$userstype:</key>
+ <value>users</value>
+ </substitution>
+ <substitution>
+ <key>$groupstype:</key>
+ <value>groups</value>
+ </substitution>
+ <substitution>
+ <key>$locationstype:</key>
+ <value>locations</value>
+ </substitution>
+ <substitution>
+ <key>$resourcestype:</key>
+ <value>resources</value>
+ </substitution>
+
+ <!-- relative path to record type principal collections-->
+ <substitution>
+ <key>$principals_uids:</key>
+ <value>$principalcollection:$uidstype:/</value>
+ </substitution>
+ <substitution>
+ <key>$principals_users:</key>
+ <value>$principalcollection:$userstype:/</value>
+ </substitution>
+ <substitution>
+ <key>$principals_groups:</key>
+ <value>$principalcollection:$groupstype:/</value>
+ </substitution>
+ <substitution>
+ <key>$principals_resources:</key>
+ <value>$principalcollection:$resourcestype:/</value>
+ </substitution>
+ <substitution>
+ <key>$principals_locations:</key>
+ <value>$principalcollection:$locationstype:/</value>
+ </substitution>
+
+ <!-- relative path to calendars collection-->
+ <substitution>
+ <key>$calendars:</key>
+ <value>$root:calendars/</value>
+ </substitution>
+
+ <!-- relative path to record type calendar collections-->
+ <substitution>
+ <key>$calendars_uids:</key>
+ <value>$calendars:$uidstype:/</value>
+ </substitution>
+ <substitution>
+ <key>$calendars_users:</key>
+ <value>$calendars:$userstype:/</value>
+ </substitution>
+ <substitution>
+ <key>$calendars_groups:</key>
+ <value>$calendars:$groupstype:/</value>
+ </substitution>
+ <substitution>
+ <key>$calendars_resources:</key>
+ <value>$calendars:$resourcestype:/</value>
+ </substitution>
+ <substitution>
+ <key>$calendars_locations:</key>
+ <value>$calendars:$locationstype:/</value>
+ </substitution>
+
+ <!-- primary calendar name-->
+ <substitution>
+ <key>$calendar:</key>
+ <value>calendar</value>
+ </substitution>
+
+ <!-- inbox name-->
+ <substitution>
+ <key>$inbox:</key>
+ <value>inbox</value>
+ </substitution>
+
+ <!-- outbox name-->
+ <substitution>
+ <key>$outbox:</key>
+ <value>outbox</value>
+ </substitution>
+
+ <!-- dropbox name-->
+ <substitution>
+ <key>$dropbox:</key>
+ <value>dropbox</value>
+ </substitution>
+
+ <!-- freebusy name-->
+ <substitution>
+ <key>$freebusy:</key>
+ <value>freebusy</value>
+ </substitution>
+
+ <!-- server-to-server inbox-->
+ <substitution>
+ <key>$servertoserver:</key>
+ <value>$root:inbox</value>
+ </substitution>
+
+ <!-- timezone service-->
+ <substitution>
+ <key>$timezoneservice:</key>
+ <value>$root:timezones</value>
+ </substitution>
+
+ <!-- user id for admin user -->
+ <substitution>
+ <key>$useradmin:</key>
+ <value>admin</value>
+ </substitution>
+ <!-- guid for admin user -->
+ <substitution>
+ <key>$useradminguid:</key>
+ <value>admin</value>
+ </substitution>
+ <!-- password for admin user -->
+ <substitution>
+ <key>$pswdadmin:</key>
+ <value>admin</value>
+ </substitution>
+
+ <!-- relative path to admin principal resource-->
+ <substitution>
+ <key>$principal_admin:</key>
+ <value>$principals_users:$useradmin:/</value>
+ </substitution>
+ <substitution>
+ <key>$principaluri_admin:</key>
+ <value>$principals_uids:$useradminguid:/</value>
+ </substitution>
+
+ <!-- user id for apprentice user -->
+ <substitution>
+ <key>$userapprentice:</key>
+ <value>apprentice</value>
+ </substitution>
+ <!-- guid for apprentice user -->
+ <substitution>
+ <key>$userapprenticeguid:</key>
+ <value>apprentice</value>
+ </substitution>
+ <!-- password for admin user -->
+ <substitution>
+ <key>$pswdapprentice:</key>
+ <value>apprentice</value>
+ </substitution>
+
+ <!-- relative path to apprentice principal resource-->
+ <substitution>
+ <key>$principal_apprentice:</key>
+ <value>$principals_users:$userapprentice:/</value>
+ </substitution>
+ <substitution>
+ <key>$principaluri_apprentice:</key>
+ <value>$principals_uids:$userapprenticeguid:/</value>
+ </substitution>
+
+ <!-- user id for proxy user -->
+ <substitution>
+ <key>$userproxy:</key>
+ <value>superuser</value>
+ </substitution>
+ <!-- password for proxy user -->
+ <substitution>
+ <key>$pswdproxy:</key>
+ <value>superuser</value>
+ </substitution>
+
+ <!-- Ten user accounts -->
+ <repeat count="10">
+ <!-- user id -->
+ <substitution>
+ <key>$userid%d:</key>
+ <value>user%02d</value>
+ </substitution>
+ <!-- user guid -->
+ <substitution>
+ <key>$userguid%d:</key>
+ <value>user%02d</value>
+ </substitution>
+ <!-- user name -->
+ <substitution>
+ <key>$username%d:</key>
+ <value>User %02d</value>
+ </substitution>
+ <!-- password -->
+ <substitution>
+ <key>$pswd%d:</key>
+ <value>user%02d</value>
+ </substitution>
+ <!-- relative path to user principal resource-->
+ <substitution>
+ <key>$principal%d:</key>
+ <value>$principals_users:$userid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$principaluri%d:</key>
+ <value>$principals_uids:$userguid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$principal%dnoslash:</key>
+ <value>$principals_users:$userid%d:</value>
+ </substitution>
+ <!-- relative path to user calendar home-->
+ <substitution>
+ <key>$pathprefix%d:</key>
+ <value>$calendars_uids:$userguid%d:</value>
+ </substitution>
+ <!-- relative path to user calendar-->
+ <substitution>
+ <key>$calendarpath%d:</key>
+ <value>$calendars_uids:$userguid%d:/$calendar:</value>
+ </substitution>
+ <!-- relative path to user inbox-->
+ <substitution>
+ <key>$inboxpath%d:</key>
+ <value>$calendars_uids:$userguid%d:/$inbox:</value>
+ </substitution>
+ <!-- relative path to user outbox-->
+ <substitution>
+ <key>$outboxpath%d:</key>
+ <value>$calendars_uids:$userguid%d:/$outbox:</value>
+ </substitution>
+ <!-- relative path to user dropbox-->
+ <substitution>
+ <key>$dropboxpath%d:</key>
+ <value>$calendars_uids:$userguid%d:/$dropbox:</value>
+ </substitution>
+ <!-- relative path to user freebusy-->
+ <substitution>
+ <key>$freebusypath%d:</key>
+ <value>$calendars_uids:$userguid%d:/$freebusy:</value>
+ </substitution>
+ <!-- relative path to user alternate calendar home-->
+ <substitution>
+ <key>$pathprefixalt%d:</key>
+ <value>$calendars_users:$userid%d:</value>
+ </substitution>
+ <!-- relative path to user alternate calendar-->
+ <substitution>
+ <key>$calendarpathalt%d:</key>
+ <value>$calendars_users:$userid%d:/$calendar:</value>
+ </substitution>
+ <substitution>
+ <key>$email%d:</key>
+ <value>$userid%d:@example.com</value>
+ </substitution>
+ <!-- calendar user address of user-->
+ <substitution>
+ <key>$cuaddr%d:</key>
+ <value>mailto:$email%d:</value>
+ </substitution>
+ <substitution>
+ <key>$cuaddralt%d:</key>
+ <value>$principaluri%d:</value>
+ </substitution>
+ <substitution>
+ <key>$cuaddraltnoslash%d:</key>
+ <value>$principals_uids:$userguid%d:</value>
+ </substitution>
+ <substitution>
+ <key>$cuaddrurn%d:</key>
+ <value>urn:uuid:$userguid%d:</value>
+ </substitution>
+ </repeat>
+
+ <!-- Ten public accounts -->
+ <repeat count="10">
+ <!-- user id -->
+ <substitution>
+ <key>$publicuserid%d:</key>
+ <value>public%02d</value>
+ </substitution>
+ <!-- user guid -->
+ <substitution>
+ <key>$publicuserguid%d:</key>
+ <value>public%02d</value>
+ </substitution>
+ <!-- user name -->
+ <substitution>
+ <key>$publicusername%d:</key>
+ <value>Public %02d</value>
+ </substitution>
+ <!-- password -->
+ <substitution>
+ <key>$publicpswd%d:</key>
+ <value>public%02d</value>
+ </substitution>
+ <!-- relative path to user principal resource-->
+ <substitution>
+ <key>$publicprincipal%d:</key>
+ <value>$principals_users:$publicuserid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$publicprincipaluri%d:</key>
+ <value>$principals_uids:$publicuserguid%d:/</value>
+ </substitution>
+ <!-- relative path to user calendar home-->
+ <substitution>
+ <key>$publicpathprefix%d:</key>
+ <value>$calendars_uids:$publicuserguid%d:</value>
+ </substitution>
+ <!-- relative path to user calendar-->
+ <substitution>
+ <key>$publiccalendarpath%d:</key>
+ <value>$calendars_uids:$publicuserguid%d:/$calendar:</value>
+ </substitution>
+ <substitution>
+ <key>$publicemail%d:</key>
+ <value>$publicuserid%d:@example.com</value>
+ </substitution>
+ <!-- calendar user address of user-->
+ <substitution>
+ <key>$publiccuaddr%d:</key>
+ <value>mailto:$publicemail%d:</value>
+ </substitution>
+ <substitution>
+ <key>$publiccuaddralt%d:</key>
+ <value>$publicprincipaluri%d:</value>
+ </substitution>
+ <substitution>
+ <key>$publiccuaddrurn%d:</key>
+ <value>urn:uuid:$publicuserguid%d:</value>
+ </substitution>
+ </repeat>
+
+ <!-- Ten resource accounts -->
+ <repeat count="10">
+ <substitution>
+ <key>$resourceid%d:</key>
+ <value>resource%02d</value>
+ </substitution>
+ <!-- resource guid-->
+ <substitution>
+ <key>$resourceguid%d:</key>
+ <value>resource%02d</value>
+ </substitution>
+ <!-- resource name-->
+ <substitution>
+ <key>$resourcename%d:</key>
+ <value>Resource %02d</value>
+ </substitution>
+ <!-- relative path to first resource calendar home-->
+ <substitution>
+ <key>$rpathprefix%d:</key>
+ <value>$calendars_uids:$resourceguid%d:</value>
+ </substitution>
+ <!-- relative path to first resource calendar home-->
+ <substitution>
+ <key>$rcalendarpath%d:</key>
+ <value>$calendars_uids:$resourceguid%d:/$calendar:</value>
+ </substitution>
+ <!-- relative path to first resource inbox-->
+ <substitution>
+ <key>$rinboxpath%d:</key>
+ <value>$calendars_uids:$resourceguid%d:/$inbox:</value>
+ </substitution>
+ <!-- relative path to first resource outbox-->
+ <substitution>
+ <key>$routboxpath%d:</key>
+ <value>$calendars_uids:$resourceguid%d:/$outbox:</value>
+ </substitution>
+ <!-- relative path to first resource principal resource-->
+ <substitution>
+ <key>$rprincipal%d:</key>
+ <value>$principals_resources:$resourceid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$rprincipaluri%d:</key>
+ <value>$principals_uids:$resourceguid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$rcuaddralt%d:</key>
+ <value>$rprincipaluri%d:</value>
+ </substitution>
+ <substitution>
+ <key>$rcuaddrurn%d:</key>
+ <value>urn:uuid:$resourceguid%d:</value>
+ </substitution>
+ </repeat>
+
+ <!-- Ten Location accounts -->
+ <repeat count="10">
+ <substitution>
+ <key>$locationid%d:</key>
+ <value>location%02d</value>
+ </substitution>
+ <!-- location guid-->
+ <substitution>
+ <key>$locationguid%d:</key>
+ <value>location%02d</value>
+ </substitution>
+ <!-- location name-->
+ <substitution>
+ <key>$locationname%d:</key>
+ <value>Location %02d</value>
+ </substitution>
+ <!-- relative path to first location calendar home-->
+ <substitution>
+ <key>$lpathprefix%d:</key>
+ <value>$calendars_uids:$locationguid%d:</value>
+ </substitution>
+ <!-- relative path to first location calendar home-->
+ <substitution>
+ <key>$lcalendarpath%d:</key>
+ <value>$calendars_uids:$locationguid%d:/$calendar:</value>
+ </substitution>
+ <!-- relative path to first location inbox-->
+ <substitution>
+ <key>$linboxpath%d:</key>
+ <value>$calendars_uids:$locationguid%d:/$inbox:</value>
+ </substitution>
+ <!-- relative path to first location outbox-->
+ <substitution>
+ <key>$loutboxpath%d:</key>
+ <value>$calendars_uids:$locationguid%d:/$outbox:</value>
+ </substitution>
+ <!-- relative path to first location principal resource-->
+ <substitution>
+ <key>$lprincipal%d:</key>
+ <value>$principals_resources:$locationid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$lprincipaluri%d:</key>
+ <value>$principals_uids:$locationguid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$lcuaddralt%d:</key>
+ <value>$lprincipaluri%d:</value>
+ </substitution>
+ <substitution>
+ <key>$lcuaddrurn%d:</key>
+ <value>urn:uuid:$locationguid%d:</value>
+ </substitution>
+ </repeat>
+
+
+ <!-- Four Group accounts -->
+ <repeat count="4">
+ <substitution>
+ <key>$groupid%d:</key>
+ <value>group%02d</value>
+ </substitution>
+ <!-- group guid-->
+ <substitution>
+ <key>$groupguid%d:</key>
+ <value>group%02d</value>
+ </substitution>
+ <!-- group name-->
+ <substitution>
+ <key>$groupname%d:</key>
+ <value>Group %02d</value>
+ </substitution>
+ <!-- relative path to first group principal resource-->
+ <substitution>
+ <key>$gprincipal%d:</key>
+ <value>$principals_resources:$groupid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$gprincipaluri%d:</key>
+ <value>$principals_uids:$groupguid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$gcuaddralt%d:</key>
+ <value>$gprincipaluri%d:</value>
+ </substitution>
+ <substitution>
+ <key>$gcuaddrurn%d:</key>
+ <value>urn:uuid:$groupguid%d:</value>
+ </substitution>
+ </repeat>
+
+ <!-- relative path to disabled group principal resource-->
+ <substitution>
+ <key>$principaldisabled:</key>
+ <value>$principals_groups:disabledgroup/</value>
+ </substitution>
+ <substitution>
+ <key>$principaluridisabled:</key>
+ <value>$principals_uids:disabledgroup/</value>
+ </substitution>
+ <!-- calendar user address of disabled group-->
+ <substitution>
+ <key>$cuaddrdisabled:</key>
+ <value>$principals_uids:disabledgroup/</value>
+ </substitution>
+
+ <!-- Ten other accounts -->
+ <repeat count="10">
+ <!-- user id -->
+ <substitution>
+ <key>$otherid%d:</key>
+ <value>other%02d</value>
+ </substitution>
+ <!-- user guid -->
+ <substitution>
+ <key>$otherguid%d:</key>
+ <value>other%02d</value>
+ </substitution>
+ <!-- user name -->
+ <substitution>
+ <key>$otherusername%d:</key>
+ <value>Other %02d</value>
+ </substitution>
+ <!-- password -->
+ <substitution>
+ <key>$otherpswd%d:</key>
+ <value>other%02d</value>
+ </substitution>
+ <!-- relative path to user principal resource-->
+ <substitution>
+ <key>$otherprincipal%d:</key>
+ <value>$principals_users:$otherid%d:/</value>
+ </substitution>
+ <substitution>
+ <key>$otherprincipaluri%d:</key>
+ <value>$principals_uids:$otherguid%d:/</value>
+ </substitution>
+ <!-- relative path to user calendar home-->
+ <substitution>
+ <key>$otherpathprefix%d:</key>
+ <value>$calendars_uids:$otherguid%d:</value>
+ </substitution>
+ <!-- relative path to user calendar-->
+ <substitution>
+ <key>$othercalendarpath%d:</key>
+ <value>$calendars_uids:$otherguid%d:/$calendar:</value>
+ </substitution>
+ <!-- relative path to user inbox-->
+ <substitution>
+ <key>$otherinboxpath%d:</key>
+ <value>$calendars_uids:$otherguid%d:/$inbox:</value>
+ </substitution>
+ <!-- relative path to user outbox-->
+ <substitution>
+ <key>$otheroutboxpath%d:</key>
+ <value>$calendars_uids:$otherguid%d:/$outbox:</value>
+ </substitution>
+ <!-- relative path to user dropbox-->
+ <substitution>
+ <key>$otherdropboxpath%d:</key>
+ <value>$calendars_uids:$otherguid%d:/$dropbox:</value>
+ </substitution>
+ <!-- relative path to user freebusy-->
+ <substitution>
+ <key>$otherfreebusypath%d:</key>
+ <value>$calendars_uids:$otherguid%d:/$freebusy:</value>
+ </substitution>
+ <!-- calendar user address of user-->
+ <substitution>
+ <key>$otheremail%d:</key>
+ <value>$otherid%d:@example.com</value>
+ </substitution>
+ <substitution>
+ <key>$othercuaddr%d:</key>
+ <value>mailto:$otheremail%d:</value>
+ </substitution>
+ <substitution>
+ <key>$othercuaddralt%d:</key>
+ <value>$otherprincipaluri%d:</value>
+ </substitution>
+ <substitution>
+ <key>$othercuaddrurn%d:</key>
+ <value>urn:uuid:$otherguid%d:</value>
+ </substitution>
+ </repeat>
+
+ <!-- Override some of the above definitions for special cases -->
+
+ <!-- calendar user address of second user-->
+ <substitution>
+ <key>$cuaddr2:</key>
+ <value>MAILTO:$email2:</value>
+ </substitution>
+
+ </substitutions>
+</serverinfo>
Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml 2009-12-21 17:25:39 UTC (rev 4884)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -39,6 +39,7 @@
<feature>quota</feature> <!-- WebDAV QUOTA -->
<feature>timezone-service</feature> <!-- Timezone service extension -->
<feature>vavailability</feature> <!-- VAVAILABILITY on inbox -->
+ <!-- <feature>partitioning</feature> --> <!-- Partitioned server -->
</features>
<substitutions>
Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml 2009-12-21 17:25:39 UTC (rev 4884)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -39,6 +39,7 @@
<feature>quota</feature> <!-- WebDAV QUOTA -->
<feature>timezone-service</feature> <!-- Timezone service extension -->
<feature>vavailability</feature> <!-- VAVAILABILITY on inbox -->
+ <!-- <feature>partitioning</feature> --> <!-- Partitioned server -->
</features>
<substitutions>
Modified: CalDAVTester/trunk/scripts/server/sslserverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/sslserverinfo.xml 2009-12-21 17:25:39 UTC (rev 4884)
+++ CalDAVTester/trunk/scripts/server/sslserverinfo.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -40,6 +40,7 @@
<feature>quota</feature> <!-- WebDAV QUOTA -->
<feature>timezone-service</feature> <!-- Timezone service extension -->
<feature>vavailability</feature> <!-- VAVAILABILITY on inbox -->
+ <!-- <feature>partitioning</feature> --> <!-- Partitioned server -->
</features>
<substitutions>
Added: CalDAVTester/trunk/scripts/tests/partitioning-calendaruserproxy.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/partitioning-calendaruserproxy.xml (rev 0)
+++ CalDAVTester/trunk/scripts/tests/partitioning-calendaruserproxy.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,1058 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ DRI: Cyrus Daboo, cdaboo at apple.com
+ -->
+
+<caldavtest>
+ <description>Test proxy user features</description>
+
+ <require-feature>
+ <feature>proxy</feature>
+ <feature>partitioning</feature>
+ </require-feature>
+
+ <start>
+ <request end-delete="yes">
+ <method>PUT</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/delete/1.txt</filepath>
+ </data>
+ </request>
+ <request user="$otherid2:" pswd="$otherpswd2:" end-delete="yes">
+ <method>PUT</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/delete/1.txt</filepath>
+ </data>
+ </request>
+ </start>
+
+ <test-suite name='Proxy on node #2' ignore="no">
+ <test name='1'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>Verify no access to resource</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>Add other02 as read proxy for user01</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$principal1:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$<href>$otherprincipaluri2:</href></value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$principal1:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>Verify single group membership</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$<href>$principaluri1:calendar-proxy-read/</href></value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>Verify access to resource</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>200</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>Verify no access for scheduling</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>POST</method>
+ <header>
+ <name>Originator</name>
+ <value>$otherprincipal2:</value>
+ </header>
+ <header>
+ <name>Recipient</name>
+ <value>$otherprincipal2:, $principal3:</value>
+ </header>
+ <ruri>$outboxpath1:/</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/3.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>Clear other02 as read-only proxy for user01</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$principal1:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='10'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='12'>
+ <description>Verify no access to resource</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='13'>
+ <description>Add other02 as read-write proxy for user01</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$principal1:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$<href>$otherprincipaluri2:</href></value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='14'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$principal1:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='15'>
+ <description>Verify single group membership</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$<href>$principaluri1:calendar-proxy-write/</href></value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='16'>
+ <description>Verify access to resource</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>200</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='17'>
+ <description>Verify access to resource</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/5.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='18'>
+ <description>Verify access for scheduling</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>POST</method>
+ <header>
+ <name>Originator</name>
+ <value>$othercuaddralt2:</value>
+ </header>
+ <header>
+ <name>Recipient</name>
+ <value>$othercuaddralt2:, $cuaddralt3:</value>
+ </header>
+ <ruri>$outboxpath1:/</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/3.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='19'>
+ <description>Verify no access for scheduling</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>POST</method>
+ <header>
+ <name>Originator</name>
+ <value>$principal1:</value>
+ </header>
+ <header>
+ <name>Recipient</name>
+ <value>$otherprincipal2:, $principal3:</value>
+ </header>
+ <ruri>$outboxpath1:/</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/3.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='20'>
+ <description>Clear other02 as read-write proxy for user01</description>
+ <request print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$principal1:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='21'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='22'>
+ <description>Verify no group memberships right now</description>
+ <request print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='23'>
+ <description>Verify no access to resource</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$calendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='Proxy on node #1' ignore="no">
+ <test name='1'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>Verify no access to resource</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>Add user02 as read proxy for other02</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$otherprincipal2:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$<href>$principaluri2:</href></value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>Verify single group membership</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$principal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$<href>$otherprincipaluri2:calendar-proxy-read/</href></value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>Verify access to resource</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>200</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>Verify no access for scheduling</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>POST</method>
+ <header>
+ <name>Originator</name>
+ <value>$principal2:</value>
+ </header>
+ <header>
+ <name>Recipient</name>
+ <value>$principal2:, $principal3:</value>
+ </header>
+ <ruri>$otheroutboxpath1:/</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/7.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>Clear user02 as read-only proxy for other02</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$otherprincipal2:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:calendar-proxy-read/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='10'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal1:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='12'>
+ <description>Verify no access to resource</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='13'>
+ <description>Add user02 as read-write proxy for other02</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$otherprincipal2:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$<href>$principaluri2:</href></value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='14'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='15'>
+ <description>Verify single group membership</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$principal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$<href>$otherprincipaluri2:calendar-proxy-write/</href></value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='16'>
+ <description>Verify access to resource</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>200</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='17'>
+ <description>Verify access to resource</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>PUT</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/5.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='18'>
+ <description>Verify access for scheduling</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>POST</method>
+ <header>
+ <name>Originator</name>
+ <value>$cuaddralt2:</value>
+ </header>
+ <header>
+ <name>Recipient</name>
+ <value>$cuaddralt2:, $cuaddralt3:</value>
+ </header>
+ <ruri>$otheroutboxpath1:/</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/7.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='19'>
+ <description>Verify no access for scheduling</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>POST</method>
+ <header>
+ <name>Originator</name>
+ <value>$otherprincipal2:</value>
+ </header>
+ <header>
+ <name>Recipient</name>
+ <value>$principal2:, $principal3:</value>
+ </header>
+ <ruri>$otheroutboxpath1:/</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/3.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='20'>
+ <description>Clear user02 as read-write proxy for other02</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPPATCH</method>
+ <ruri>$otherprincipal2:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set</value>
+ </arg>
+ </verify>
+ </request>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:calendar-proxy-write/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='21'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherprincipal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='22'>
+ <description>Verify no group memberships right now</description>
+ <request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$principal2:</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/calendaruserproxy/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>DAV:group-member-set$</value>
+ <value>DAV:group-membership$</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='23'>
+ <description>Verify no access to resource</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response="no">
+ <method>GET</method>
+ <ruri>$othercalendarpath2:/1.ics</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <end/>
+
+</caldavtest>
Added: CalDAVTester/trunk/scripts/tests/partitioning-scheduleimplicitauto.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/partitioning-scheduleimplicitauto.xml (rev 0)
+++ CalDAVTester/trunk/scripts/tests/partitioning-scheduleimplicitauto.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,211 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2008 Apple 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.
+ -->
+
+<caldavtest>
+ <description>Partitioning with auto-accept test</description>
+
+ <require-feature>
+ <feature>auto-accept</feature>
+ <feature>implicit-scheduling</feature>
+ <feature>partitioning</feature>
+ </require-feature>
+
+ <start>
+ <request>
+ <method>DELETEALL</method>
+ <ruri>$pathprefix:/$outbox:/</ruri>
+ </request>
+ <request>
+ <method>DELETEALL</method>
+ <ruri>$pathprefix:/$inbox:/</ruri>
+ </request>
+ <request user="$otherid1:" pswd="$otherpswd1:">
+ <method>DELETEALL</method>
+ <ruri>$otherpathprefix:/$outbox:/</ruri>
+ </request>
+ <request user="$otherid1:" pswd="$otherpswd1:">
+ <method>DELETEALL</method>
+ <ruri>$otherpathprefix:/$inbox:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>DELETEALL</method>
+ <ruri>$pathprefix2:/$outbox:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>DELETEALL</method>
+ <ruri>$pathprefix2:/$inbox:/</ruri>
+ </request>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$rpathprefix1:/$outbox:/</ruri>
+ </request>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$rpathprefix1:/$inbox:/</ruri>
+ </request>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$rpathprefix1:/calendar/</ruri>
+ </request>
+ </start>
+
+ <test-suite name='#1 node 2 user auto-schedules with node #1 resource' ignore='no'>
+ <test name='1' ignore='no'>
+ <description>Create new event</description>
+ <request user="$otherid1:" pswd="$otherpswd1:">
+ <method>PUT</method>
+ <ruri>$othercalendarpath1:/1.ics</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/scheduleauto/1.ics</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request>
+ <method>DELAY</method>
+ <ruri>4</ruri>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>One item in other01 Inbox</description>
+ <request user="$otherid1:" pswd="$otherpswd1:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$otherinboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>count</name>
+ <value>1</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>One item in other01 Calendar</description>
+ <request user="$otherid1:" pswd="$otherpswd1:" print-response="no">
+ <method>GET</method>
+ <ruri>$othercalendarpath1:/1.ics</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/partitioning/scheduleauto/2.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4' ignore='no'>
+ <description>One item in user02 Inbox</description>
+ <request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$inboxpath2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>1</value>
+ </header>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>count</name>
+ <value>1</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5' ignore='no'>
+ <description>One item in user02 calendar</description>
+ <request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+ <method>GETNEW</method>
+ <ruri>$calendarpath2:/</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/partitioning/scheduleauto/3.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6' ignore='no'>
+ <description>No items in resource01 Inbox</description>
+ <request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+ <method>PROPFIND</method>
+ <ruri>$rinboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>count</name>
+ <value>0</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='7' ignore='no'>
+ <description>One item in resource01 Calendar</description>
+ <request user="$useradmin:" pswd="$pswdadmin:" print-response="no">
+ <method>GETNEW</method>
+ <ruri>$rcalendarpath1:/</ruri>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/partitioning/scheduleauto/4.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8' ignore='no'>
+ <description>Clean-up inboxes</description>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$inboxpath1:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$rinboxpath1:/</ruri>
+ </request>
+ </test>
+ </test-suite>
+
+ <end>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$otherinboxpath1:/</ruri>
+ <ruri>$othercalendarpath1:/</ruri>
+ <ruri>$inboxpath2:/</ruri>
+ <ruri>$calendarpath2:/</ruri>
+ <ruri>$rinboxpath1:/</ruri>
+ <ruri>$rcalendarpath1:/</ruri>
+ </request>
+ </end>
+
+</caldavtest>
Added: CalDAVTester/trunk/scripts/tests/partitioning-simple.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/partitioning-simple.xml (rev 0)
+++ CalDAVTester/trunk/scripts/tests/partitioning-simple.xml 2009-12-21 20:41:53 UTC (rev 4885)
@@ -0,0 +1,190 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2008 Apple 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.
+ -->
+
+<caldavtest>
+ <description>Simple partitioning test</description>
+
+ <require-feature>
+ <feature>partitioning</feature>
+ </require-feature>
+
+ <start/>
+
+ <test-suite name='Access principals' ignore='no'>
+ <test name='1'>
+ <description>PROPFIND of user on node #1 as user on node #1</description>
+ <request>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$principal1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>PROPFIND of user on node #2 as user on node #1</description>
+ <request>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherprincipal1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>PROPFIND of user on node #1 as user on node #2</description>
+ <request user='$otherid1:' pswd='$otherpswd1:'>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$principal1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>PROPFIND of user on node #2 as user on node #2</description>
+ <request user='$otherid1:' pswd='$otherpswd1:'>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherprincipal1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='Access calendar homes' ignore='no'>
+ <test name='1'>
+ <description>PROPFIND of user on node #1 as user on node #1</description>
+ <request>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$pathprefix1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>PROPFIND of user on node #2 as user on node #1</description>
+ <request>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherpathprefix1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>PROPFIND of user on node #1 as user on node #2</description>
+ <request user='$otherid1:' pswd='$otherpswd1:'>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$pathprefix1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>403</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>PROPFIND of user on node #2 as user on node #2</description>
+ <request user='$otherid1:' pswd='$otherpswd1:'>
+ <method>PROPFIND</method>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <ruri>$otherpathprefix1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/partitioning/simple/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <end/>
+
+</caldavtest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091221/f86a9851/attachment-0001.html>
More information about the calendarserver-changes
mailing list