[CalendarServer-changes] [10146] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Dec 10 12:22:03 PST 2012


Revision: 10146
          http://trac.calendarserver.org//changeset/10146
Author:   cdaboo at apple.com
Date:     2012-12-10 12:22:03 -0800 (Mon, 10 Dec 2012)
Log Message:
-----------
Merge managed attachments support.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
    CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-multiple.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd
    CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/request.py
    CalDAVTester/trunk/src/xmlDefs.py
    CalDAVTester/trunk/verifiers/calendarDataMatch.py
    CalDAVTester/trunk/verifiers/multistatusItems.py
    CalDAVTester/trunk/verifiers/propfindItems.py

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics
    CalDAVTester/trunk/Resource/Common/POST/sharingremove23.xml
    CalDAVTester/trunk/Resource/Common/PROPFIND/current-user-privilege-set.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-implicit.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-sharing.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments.xml

Removed Paths:
-------------
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics
    CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics

Property Changed:
----------------
    CalDAVTester/trunk/


Property changes on: CalDAVTester/trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /CalDAVTester/branches/release/CalDAVTester-3.0-dev:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228:5229-5440
   + /CalDAVTester/branches/release/CalDAVTester-3.0-dev:7584
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/managed-attachments:9986-10145
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228:5229-5440

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/2.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/2.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/3.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1::$cuaddr1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
-ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/3.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/4.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/4.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/5.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/5.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/6.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2:;SCHEDULE-STATUS=2.0:$cuaddrurn2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/6.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2:;SCHEDULE-STATUS=2.0:$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/7.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,14 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/7.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/8.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,17 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
-SEQUENCE:1
-STATUS:CANCELLED
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-1/8.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-1/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1:;SCHEDULE-STATUS=1.2:$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+SEQUENCE:1
+STATUS:CANCELLED
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/2.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/2.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/3.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1::$cuaddr1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
-ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/3.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/4.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/4.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/5.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2:;SCHEDULE-STATUS=2.0:$cuaddrurn2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-2/5.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-2/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=DECLINED;EMAIL=$email2:;SCHEDULE-STATUS=2.0:$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,14 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1::$cuaddr1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
-ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/10.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-SEQUENCE:3
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/10.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/10.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+SEQUENCE:3
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/2.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/2.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/2.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/3.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/3.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/3.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/4.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
-SEQUENCE:1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/4.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
+SEQUENCE:1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/5.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,17 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-SEQUENCE:1
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/5.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+SEQUENCE:1
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/6.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,4 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.
-It has been updated.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/6.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/6.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,4 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.
+It has been updated.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/7.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
-SEQUENCE:2
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/7.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
+SEQUENCE:2
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/8.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,17 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id2:;MTAG=$mtag2:;FMTTYPE=$fmttype2:;FILENAME=$filename2:;SIZE=$size2::$attach2:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-SEQUENCE:2
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/8.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id2:;MTAG=$mtag2:;FMTTYPE=$fmttype2:;FILENAME=$filename2:;SIZE=$size2::$attach2:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+SEQUENCE:2
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/9.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
-SEQUENCE:3
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-3/9.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-3/9.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
+SEQUENCE:3
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,14 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1::$cuaddr1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
-ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/2.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/2.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/2.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/3.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/3.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/3.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/4.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,14 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-4/4.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-4/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/2.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/2.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/3.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1::$cuaddr1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
-ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/3.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/4.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/4.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/5.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,4 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.
-It has been updated.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/5.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/5.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,4 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.
+It has been updated.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/6.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-5/6.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-5/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/10.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/10.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/10.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/2.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/2.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/3.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-2 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 2
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/3.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-2 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 2
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/4.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,4 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.
-It has been updated.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/4.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/4.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,4 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.
+It has been updated.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/5.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1::$cuaddr1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
-ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/5.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/6.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/6.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/7.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,17 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ATTACH;MANAGED-ID=$managed_id2:;MTAG=$mtag2:;FMTTYPE=$fmttype2:;FILENAME=$filename2:;SIZE=$size2::$attach2:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/7.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,17 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ATTACH;MANAGED-ID=$managed_id2:;MTAG=$mtag2:;FMTTYPE=$fmttype2:;FILENAME=$filename2:;SIZE=$size2::$attach2:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/8.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,15 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/8.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2:;SCHEDULE-STATUS=1.2:$cuaddrurn2:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/9.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,16 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag2:;FMTTYPE=$fmttype2:;FILENAME=$filename2:;SIZE=$size2::$attach2:
-ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
-ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
-TRANSP:TRANSPARENT
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/implicit-6/9.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/implicit-6/9.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,16 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag2:;FMTTYPE=$fmttype2:;FILENAME=$filename2:;SIZE=$size2::$attach2:
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/sharing/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/sharing/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/sharing/2.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/sharing/2.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/sharing/3.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,12 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-2 at example.com
-DTSTART:$now.year.1:0101T140000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-SUMMARY:event 2
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/sharing/3.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/sharing/3.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-2 at example.com
+DTSTART:$now.year.1:0101T140000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+SUMMARY:event 2
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/1.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/1.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/1.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/2.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,3 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/2.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/2.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,3 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/3.txt	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,4 +0,0 @@
-This is a text file being used
-as a test of managed attachment
-support in calendarserver.
-It has been updated.

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/3.txt)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/3.txt	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,4 @@
+This is a text file being used
+as a test of managed attachment
+support in calendarserver.
+It has been updated.

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/4.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,12 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-2 at example.com
-DTSTART:$now.year.1:0101T140000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-SUMMARY:event 2
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/4.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/4.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-2 at example.com
+DTSTART:$now.year.1:0101T140000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+SUMMARY:event 2
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/5.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,12 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=1234;MTAG=abc;FMTTYPE=text/plain;FILENAME=foobar;SIZE=123:http://example.com/foorbar
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/5.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/5.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=1234;MTAG=abc;FMTTYPE=text/plain;FILENAME=foobar;SIZE=123:http://example.com/foorbar
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/6.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,11 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-2 at example.com
-DTSTART:$now.year.1:0101T140000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 2
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/6.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/6.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-2 at example.com
+DTSTART:$now.year.1:0101T140000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 2
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/7.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,12 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=abc;FMTTYPE=text/plain;FILENAME=foobar;SIZE=123:http://example.com/foorbar
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/7.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/7.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=abc;FMTTYPE=text/plain;FILENAME=foobar;SIZE=123:http://example.com/foorbar
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/8.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,12 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-1 at example.com
-DTSTART:$now.year.1:0101T120000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-SUMMARY:event 1
-ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/8.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/8.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-1 at example.com
+DTSTART:$now.year.1:0101T120000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+ATTACH;MANAGED-ID=$managed_id1:;MTAG=$mtag1:;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+END:VEVENT
+END:VCALENDAR

Deleted: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics
===================================================================
--- CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/9.ics	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -1,12 +0,0 @@
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:-//Example Inc.//Example Calendar//EN
-BEGIN:VEVENT
-UID:put-2 at example.com
-DTSTART:$now.year.1:0101T140000Z
-DURATION:P1DT
-DTSTAMP:20051222T205953Z
-ATTACH;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
-SUMMARY:event 2
-END:VEVENT
-END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/CalDAV/managedattachments/simple/9.ics)
===================================================================
--- CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/managedattachments/simple/9.ics	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,12 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:put-2 at example.com
+DTSTART:$now.year.1:0101T140000Z
+DURATION:P1DT
+DTSTAMP:20051222T205953Z
+ATTACH;FMTTYPE=$fmttype1:;FILENAME=$filename1:;SIZE=$size1::$attach1:
+SUMMARY:event 2
+END:VEVENT
+END:VCALENDAR

Copied: CalDAVTester/trunk/Resource/Common/POST/sharingremove23.xml (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/Common/POST/sharingremove23.xml)
===================================================================
--- CalDAVTester/trunk/Resource/Common/POST/sharingremove23.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharingremove23.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$cuaddr2:</D:href>
+        <CS:read-write/>
+    </CS:remove>
+    <CS:remove>
+        <D:href>$cuaddr3:</D:href>
+        <CS:read/>
+    </CS:remove>
+</CS:share>

Copied: CalDAVTester/trunk/Resource/Common/PROPFIND/current-user-privilege-set.xml (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/Resource/Common/PROPFIND/current-user-privilege-set.xml)
===================================================================
--- CalDAVTester/trunk/Resource/Common/PROPFIND/current-user-privilege-set.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/Common/PROPFIND/current-user-privilege-set.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:">
+<D:prop>
+<D:current-user-privilege-set/>
+</D:prop>
+</D:propfind>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -70,6 +70,7 @@
 		<feature>EMAIL parameter</feature>				<!-- Server normalizes cuaddress and adds EMAIL parameter -->
 		<feature>extended-freebusy</feature>	      	<!-- Extended freebusy response -->
 		<feature>implicit-scheduling</feature>			<!-- CalDAV scheduling - implicit -->
+		<feature>managed-attachments</feature>			<!-- CalDAV Managed Attachments -->
 		<feature>maskuid</feature>						<!-- maskuid extension -->
 		<feature>partitioning</feature>					<!-- Partitioned server -->
 		<feature>private-comments</feature>				<!-- private-comments extension -->
@@ -256,6 +257,12 @@
 			<value>dropbox</value>
 		</substitution>
 
+		<!-- attachments name-->
+		<substitution>
+			<key>$attachments:</key>
+			<value>attachments</value>
+		</substitution>
+
 		<!-- notification name-->
 		<substitution>
 			<key>$notification:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -70,6 +70,7 @@
 		<feature>EMAIL parameter</feature>				<!-- Server normalizes cuaddress and adds EMAIL parameter -->
 		<feature>extended-freebusy</feature>	      	<!-- Extended freebusy response -->
 		<feature>implicit-scheduling</feature>			<!-- CalDAV scheduling - implicit -->
+		<feature>managed-attachments</feature>			<!-- CalDAV Managed Attachments -->
 		<feature>maskuid</feature>						<!-- maskuid extension -->
 		<!-- <feature>partitioning</feature> -->		<!-- Partitioned server -->
 		<feature>private-comments</feature>				<!-- private-comments extension -->
@@ -256,6 +257,12 @@
 			<value>dropbox</value>
 		</substitution>
 
+		<!-- attachments name-->
+		<substitution>
+			<key>$attachments:</key>
+			<value>attachments</value>
+		</substitution>
+
 		<!-- notification name-->
 		<substitution>
 			<key>$notification:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -70,6 +70,7 @@
 		<feature>EMAIL parameter</feature>				<!-- Server normalizes cuaddress and adds EMAIL parameter -->
 		<feature>extended-freebusy</feature>	      	<!-- Extended freebusy response -->
 		<feature>implicit-scheduling</feature>			<!-- CalDAV scheduling - implicit -->
+		<feature>managed-attachments</feature>			<!-- CalDAV Managed Attachments -->
 		<feature>maskuid</feature>						<!-- maskuid extension -->
 		<!-- <feature>partitioning</feature> -->		<!-- Partitioned server -->
 		<feature>private-comments</feature>				<!-- private-comments extension -->
@@ -256,6 +257,12 @@
 			<value>dropbox</value>
 		</substitution>
 
+		<!-- attachments name-->
+		<substitution>
+			<key>$attachments:</key>
+			<value>attachments</value>
+		</substitution>
+
 		<!-- notification name-->
 		<substitution>
 			<key>$notification:</key>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd	2012-12-10 20:22:03 UTC (rev 10146)
@@ -29,7 +29,8 @@
 
 	<!ELEMENT pause EMPTY>
 
-	<!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*, graburi?, grabheader*, grabproperty*, grabelement*)>
+	<!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*,
+						graburi?, grabcount?, grabheader*, grabproperty*, grabelement*, grabcalproperty*, grabcalparameter*)>
 		<!ATTLIST request auth (yes|no) "yes"
 						 user CDATA ""
 						 pswd CDATA ""
@@ -54,6 +55,8 @@
 		
 		<!ELEMENT graburi (#PCDATA)>
 
+		<!ELEMENT grabcount (#PCDATA)>
+
 		<!ELEMENT grabheader (name, variable)>
 	
 		<!ELEMENT grabproperty (property, variable)>
@@ -62,6 +65,9 @@
 
 		<!ELEMENT grabelement (name, variable+)>
 
+		<!ELEMENT grabcalproperty (name, variable)>
+		<!ELEMENT grabcalparameter (name, variable)>
+
 	<!ELEMENT test-suite (require-feature?, exclude-feature?, test*)>
 		<!ATTLIST test-suite name CDATA #REQUIRED
 							ignore (yes|no) "no"

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -448,7 +448,7 @@
 					<callback>statusCode</callback>
 					<arg>
 						<name>status</name>
-						<value>2xx</value>
+						<value>403</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -388,7 +388,7 @@
 			<require-feature>
 				<feature>MOVE Method</feature>
 			</require-feature>
-			<description>Check for CTag change on MOVE of existing resource</description>
+			<description>Check for no CTag change on failed MOVE of existing resource</description>
 			<request>
 				<method>MOVE</method>
 				<ruri>$calendarpath1:/2.ics</ruri>
@@ -396,6 +396,13 @@
 					<name>Destination</name>
 					<value>$host:$calendarhome1:/movecopy/2.ics</value>
 				</header>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
 			</request>
 			<request>
 				<method>PROPFIND</method>
@@ -412,7 +419,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag$$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
@@ -435,7 +442,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>{http://calendarserver.org/ns/}getctag!$getctag2:</value>
+						<value>{http://calendarserver.org/ns/}getctag$$getctag2:</value>
 					</arg>
 				</verify>
 				<grabproperty>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -953,10 +953,10 @@
 					<value>$host:$calendarpath1:/1.ics</value>
 				</header>
 				<verify>
-					<callback>prepostcondition</callback>
+					<callback>statusCode</callback>
 					<arg>
-						<name>error</name>
-						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
+						<name>status</name>
+						<value>403</value>
 					</arg>
 				</verify>
 			</request>

Copied: CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-implicit.xml (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/scripts/tests/CalDAV/managed-attachments-implicit.xml)
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-implicit.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-implicit.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,1927 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2012 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>Test managed attachments</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>managed-attachments</feature>
+		<feature>prefer-representation</feature>
+	</require-feature>
+
+	<start/>
+	
+	<test-suite name='Add attachment then invite'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-1/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-1/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Invite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-1/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Attendee -> Accepted</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PUT</method>
+				<ruri>$</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-1/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Organizer Inbox Item</description>
+			<request print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Organizer data changed</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Uninvite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-1/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='14' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1' ignore='no'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Add attachment then invite - attendee deletes'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-2/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-2/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Invite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-2/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Attendee deletes</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Organizer Inbox Item</description>
+			<request print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Organizer data changed</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-2/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1' ignore='no'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Invite then add, update, remove attachment'>
+		<test name='1' ignore='no'>
+			<description>Invite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-3/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Add attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-3/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/4.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/5.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/3.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/3.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Update attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-update&amp;managed-id=$managed_id1:</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-3/6.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/7.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach2:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size2:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/6.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/6.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Remove attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-remove&amp;managed-id=$managed_id2:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-3/10.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1' ignore='no'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Attendee cannot add attachment via post'>
+		<test name='1' ignore='no'>
+			<description>Invite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-4/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-4/2.ics</value>
+					</arg>
+				</verify>
+				<graburi>$attendee2_data:</graburi>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Add attachment (with prefer) - fails</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<ruri>$attendee2_data:?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-4/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-attachment-add</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee data unchanged</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-4/2.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Organizer data unchanged</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-4/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1' ignore='no'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Attendee cannot update or remove attachment via post'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-5/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-5/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Invite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-5/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/4.ics</value>
+					</arg>
+				</verify>
+				<graburi>$attendee2_data:</graburi>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-1/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Update attachment (with prefer) - fails</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<ruri>$attendee2_data:?action=attachment-update&amp;managed-id=$managed_id1</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-5/5.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-attachment-update</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Data unchanged</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$attendee2_data:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Remove attachment (with prefer) - fails</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<ruri>$attendee2_data:?action=attachment-remove&amp;managed-id=$managed_id1</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-attachment-remove</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>Data unchanged</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$attendee2_data:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/4.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-5/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1' ignore='no'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+
+	<test-suite name='Attendee cannot add, update, remove attachment via edit'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT attendee event</description>
+			<request user="$userid2:" pswd="$pswd2:" end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath2:/2.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Add attendee event attachment (with prefer)</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<ruri>$calendarpath2:/2.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/4.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/3.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach2:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size2:</variable>
+				</grabcalparameter>
+			</request>
+			<request>
+				<method>DELAY</method>
+				<ruri>1</ruri>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/4.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Invite attendee</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Attendee Inbox Item</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$inboxpath2:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>204</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9'>
+			<description>Attendee has data</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$calendarpath2:/</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/6.ics</value>
+					</arg>
+				</verify>
+				<graburi>$attendee2_data:</graburi>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Add attachment - fails silently</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PUT</method>
+				<ruri>$attendee2_data:</ruri>
+				<data>
+					<content-type>text/calendar</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='12'>
+			<description>Data unchanged</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$attendee2_data:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='13' ignore='no'>
+			<description>Update attachment - fails silently</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PUT</method>
+				<ruri>$attendee2_data:</ruri>
+				<data>
+					<content-type>text/calendar</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/9.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='14'>
+			<description>Data unchanged</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$attendee2_data:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='15' ignore='no'>
+			<description>Remove attachment - fails silently</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PUT</method>
+				<ruri>$attendee2_data:</ruri>
+				<data>
+					<content-type>text/calendar</content-type>
+					<filepath>Resource/CalDAV/managedattachments/implicit-6/10.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='16'>
+			<description>Data unchanged</description>
+			<request print-response='no'>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GET</method>
+				<ruri>$attendee2_data:</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/6.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='17' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='18' ignore='no'>
+			<description>Check access to attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/implicit-6/4.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='-1' ignore='no'>
+			<description>Clean-up</description>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath1:/</ruri>
+				<ruri>$inboxpath1:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETEALL</method>
+				<ruri>$calendarpath2:/</ruri>
+				<ruri>$inboxpath2:/</ruri>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+
+</caldavtest>

Copied: CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-sharing.xml (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/scripts/tests/CalDAV/managed-attachments-sharing.xml)
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-sharing.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments-sharing.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,1343 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2012 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>Test managed attachments with shared calendars</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>managed-attachments</feature>
+		<feature>prefer-representation</feature>
+		<feature>shared-calendars</feature>
+	</require-feature>
+
+	<start>
+		<request end-delete="yes">
+			<method>MKCALENDAR</method>
+			<ruri>$calendarhome1:/shared/</ruri>
+		</request>
+		<request print-response='no'>
+			<method>POST</method>
+			<ruri>$calendarhome1:/shared/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/Common/POST/sharinginvite23.xml</filepath>
+			</data>
+			<verify>
+				<callback>statusCode</callback>
+			</verify>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+			<method>WAITCOUNT 1</method>
+			<ruri>$notificationpath2:/</ruri>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+			<method>GETNEW</method>
+			<ruri>$notificationpath2:/</ruri>
+			<grabelement>
+				<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+				<variable>$inviteuid2:</variable>
+			</grabelement>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+			<method>POST</method>
+			<ruri>$calendarhome2:/</ruri>
+			<data substitutions='yes'>
+				<content-type>application/xml; charset=utf-8</content-type>
+				<filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+			</data>
+			<grabelement>
+				<name>{DAV:}href</name>
+				<variable>$sharedcalendar2:</variable>
+			</grabelement>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+			<method>WAITCOUNT 1</method>
+			<ruri>$notificationpath3:/</ruri>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+			<method>GETNEW</method>
+			<ruri>$notificationpath3:/</ruri>
+			<grabelement>
+				<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+				<variable>$inviteuid3:</variable>
+			</grabelement>
+		</request>
+		<request user="$userid3:" pswd="$pswd3:" print-response='no'>
+			<method>POST</method>
+			<ruri>$calendarhome3:/</ruri>
+			<data substitutions='yes'>
+				<content-type>application/xml; charset=utf-8</content-type>
+				<filepath>Resource/Common/POST/sharingreply3.xml</filepath>
+			</data>
+			<grabelement>
+				<name>{DAV:}href</name>
+				<variable>$sharedcalendar3:</variable>
+			</grabelement>
+		</request>
+	</start>
+	
+	<test-suite name='Sharer add attachment'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Sharer add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Remove attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/1.ics?action=attachment-remove&amp;managed-id=$managed-id:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Sharee add attachment'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Read-only sharee cannot add attachment</description>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>POST</method>
+				<ruri>$sharedcalendar3:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Sharee can add attachment</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<ruri>$sharedcalendar2:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Read-only sharee cannot remove attachment</description>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>POST</method>
+				<ruri>$sharedcalendar3:/1.ics?action=attachment-remove&amp;managed-id=$managed-id:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Sharee remove attachment</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>POST</method>
+				<ruri>$sharedcalendar2:/1.ics?action=attachment-remove&amp;managed-id=$managed-id:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Sharee add attachment existing managed-id'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Sharer add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location1:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>PUT another event</description>
+			<request user="$userid2:" pswd="$pswd2:" end-delete='no'>
+				<method>PUT</method>
+				<ruri>$sharedcalendar2:/2.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/3.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/3.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>;MANAGED-ID=$managed_id1:</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag2:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach2:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size2:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/shared/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='No access after move'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Sharer add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Move</description>
+			<request print-response='no'>
+				<method>MOVE</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<header>
+					<name>Destination</name>
+					<value>$host:$calendarpath1:/move1.ics</value>
+				</header>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/move1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='No access after unshare'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Sharer add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/sharing/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/sharing/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Unshare</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharingremove23.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment - sharer</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment - sharees</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid3:" pswd="$pswd3:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment - non sharee</description>
+			<request user="$userid4:" pswd="$pswd4:">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarhome1:/shared/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>$notificationpath1:/</ruri>
+			<ruri>$notificationpath2:/</ruri>
+			<ruri>$notificationpath3:/</ruri>
+		</request>
+	</end>
+
+</caldavtest>

Copied: CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments.xml (from rev 10145, CalDAVTester/branches/users/cdaboo/managed-attachments/scripts/tests/CalDAV/managed-attachments.xml)
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/managed-attachments.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -0,0 +1,2575 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2012 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>Test managed attachments</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>managed-attachments</feature>
+		<feature>prefer-representation</feature>
+	</require-feature>
+
+	<start/>
+	
+	<test-suite name='OPTIONS header'>
+		<test name='1'>
+			<description>Look for options header tag on principal</description>
+			<request print-response="no">
+				<method>OPTIONS</method>
+				<ruri>$principal1:</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>*DAV$.*calendar-managed-attachments*</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Look for options header tag on calendar</description>
+			<request print-response="no">
+				<method>OPTIONS</method>
+				<ruri>$calendarpath1:/</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>*DAV$.*calendar-managed-attachments*</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name="Privileges on Attachments Collection">
+		<test name='1' ignore='no'>
+			<description>Check for schedule privilege on iTIP Inbox</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/$attachments:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/current-user-privilege-set.xml</filepath>
+				</data>
+				<verify>
+					<callback>aclItems</callback>
+					<arg>
+						<name>granted</name>
+						<value>{DAV:}read</value>
+						<value>{DAV:}read-current-user-privilege-set</value>
+					</arg>
+					<arg>
+						<name>denied</name>
+						<value>{DAV:}write</value>
+						<value>{DAV:}write-acl</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment no prefer'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment (no prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for ATTACH property</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>ETag!$etag:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=$managed-id:</value>
+						<value>:$location:</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>No access for anyone else</description>
+			<request user="user02" pswd="user02">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>No access for anyone else</description>
+			<request auth="no">
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>401</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Remove attachment (no prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-remove&amp;managed-id=$managed-id:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for no ATTACH property</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>ETag!$etag:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment with prefer'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for ATTACH property</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>ETag!$etag:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=$managed-id:</value>
+						<value>:$location:</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Remove attachment (with prefer)</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-remove&amp;managed-id=$managed-id:</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Check for no ATTACH property</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>ETag!$etag:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled resource with attachment removal'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled remove attachment'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Remove attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-remove&amp;managed-id=$managed-id:</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test2.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>!Cal-Managed-ID:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled remove attachment invalid'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Remove attachment fails</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-remove&amp;managed-id=12345</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test2.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-managed-id-parameter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for unchanged ATTACH property</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>ETag$$etag:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=$managed-id:</value>
+						<value>:$location:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled update attachment'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Update attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-update&amp;managed-id=$managed-id:</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test2.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test2.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=$managed-id:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID$$managed-id:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/3.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled update attachment invalid'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabheader>
+					<name>Cal-Managed-ID</name>
+					<variable>$managed-id:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Update attachment fails</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-update&amp;managed-id=12345</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test2.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-managed-id-parameter</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for unchanged ATTACH property</description>
+			<request>
+				<method>GET</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>ETag$$etag:</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=</value>
+						<value>;FMTTYPE=</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=$managed-id:</value>
+						<value>:$location:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment - invalid managed-id'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-managed-id</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment - someone elses managed-id'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag1:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT event by other user</description>
+			<request user="$userid2:" pswd="$pswd2:" end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath2:/2.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/9.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Delete calendar data</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>DELETE</method>
+				<ruri>$calendarpath2:/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{DAV:}need-privileges</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Delete original calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment existing managed-id'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag1:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT another event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/2.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/4.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>;MANAGED-ID=$managed_id1:</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag2:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach2:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size2:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Update original attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-update&amp;managed-id=$managed_id1:</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test2.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/3.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test2.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=$managed_id1:</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/3.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Delete original calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment on update - invalid managed-id'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/5.ics</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-managed-id</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment update existing managed-id'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag1:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT event another event without attachment</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/2.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/6.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/6.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag1:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>PUT update other event to add attachment</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/2.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/4.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/4.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>notcontains</name>
+						<value>;MANAGED-ID=$managed_id1:</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag2:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach2:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype2:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size2:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>PUT to remove original attachment</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>Delete original calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach2:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='12' ignore='no'>
+			<description>Delete calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/2.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='13' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Simple non-recurring, non-scheduled add attachment update trying to change property'>
+		<test name='1' ignore='no'>
+			<description>PUT event</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/1.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>ETag</name>
+					<variable>$etag1:</variable>
+				</grabheader>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Add attachment</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarpath1:/1.ics?action=attachment-add</ruri>
+				<header>
+					<name>Content-Disposition</name>
+					<value>attachment;filename=test.txt</value>
+				</header>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/plain</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/2.txt</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/1.ics</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>ATTACH</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>dataString</callback>
+					<arg>
+						<name>unwrap</name>
+						<value/>
+					</arg>
+					<arg>
+						<name>contains</name>
+						<value>ATTACH</value>
+						<value>;FILENAME=test.txt</value>
+						<value>;FMTTYPE=text/plain</value>
+						<value>;SIZE=</value>
+						<value>;MTAG=</value>
+						<value>;MANAGED-ID=</value>
+					</arg>
+				</verify>
+				<verify>
+					<callback>header</callback>
+					<arg>
+						<name>header</name>
+						<value>Cal-Managed-ID</value>
+					</arg>
+				</verify>
+				<grabheader>
+					<name>Location</name>
+					<variable>$location:</variable>
+				</grabheader>
+				<grabcalproperty>
+					<name>VEVENT/ATTACH</name>
+					<variable>$attach1:</variable>
+				</grabcalproperty>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MANAGED-ID</name>
+					<variable>$managed_id1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/MTAG</name>
+					<variable>$mtag1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FILENAME</name>
+					<variable>$filename1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/FMTTYPE</name>
+					<variable>$fmttype1:</variable>
+				</grabcalparameter>
+				<grabcalparameter>
+					<name>VEVENT/ATTACH/SIZE</name>
+					<variable>$size1:</variable>
+				</grabcalparameter>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>PUT update other event to change attachment</description>
+			<request end-delete='no'>
+				<method>PUT</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<header>
+					<name>Prefer</name>
+					<value>return-representation</value>
+				</header>
+				<data>
+					<content-type>text/calendar; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/managedattachments/simple/7.ics</filepath>
+				</data>
+				<verify>
+					<callback>calendarDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/8.ics</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$attach1:</ruri>
+				<verify>
+					<callback>dataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/managedattachments/simple/2.txt</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Delete original calendar data</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$calendarpath1:/1.ics</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>Check for attachment</description>
+			<request>
+				<method>GET</method>
+				<ruri>$location:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<end/>
+
+</caldavtest>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -189,6 +189,72 @@
 				</verify>
 			</request>
 		</test>
+		<test name='5'>
+			<description>PROPFIND of non-existent calendar depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/foobar/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>PROPFIND of non-existent calendar child depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/foobar/foo.ics</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>PROPFIND of non-existent calendar child collection depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/foobar/example/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/propfinds/1.txt</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
 	
 	

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-multiple.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-multiple.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-multiple.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -53,6 +53,25 @@
 	
 	<test-suite name='Send new invite #1'>
 		<test name='1' ignore='no'>
+			<description>Initial collection count</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabcount>$calendarhome2count:</grabcount>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
 			<description>POST invitation</description>
 			<request print-response='no'>
 				<method>POST</method>
@@ -66,7 +85,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='2'>
+		<test name='3'>
 			<description>Check Sharee notification collection</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>WAITCOUNT 1</method>
@@ -84,7 +103,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='3'>
+		<test name='4'>
 			<description>Sharee replies ACCEPTED</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>POST</method>
@@ -102,7 +121,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='4' ignore='no'>
+		<test name='5' ignore='no'>
 			<description>One more calendar</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>PROPFIND</method>
@@ -116,28 +135,15 @@
 					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>count</name>
-						<value>7</value>
+						<value>$calendarhome2count:+1</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>8</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
-		<test name='5' ignore='no'>
+		<test name='6' ignore='no'>
 			<description>One more calendar</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>PROPFIND</method>
@@ -163,6 +169,25 @@
 	
 	<test-suite name='Send new invite #2'>
 		<test name='1' ignore='no'>
+			<description>Initial collection count</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabcount>$calendarhome2count:</grabcount>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
 			<description>POST invitation</description>
 			<request print-response='no'>
 				<method>POST</method>
@@ -176,7 +201,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='2'>
+		<test name='3'>
 			<description>Check Sharee notification collection</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>WAITCOUNT 2</method>
@@ -194,7 +219,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='3'>
+		<test name='4'>
 			<description>Sharee replies ACCEPTED</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>POST</method>
@@ -212,7 +237,7 @@
 				</grabelement>
 			</request>
 		</test>
-		<test name='4' ignore='no'>
+		<test name='5' ignore='no'>
 			<description>One more calendar</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>PROPFIND</method>
@@ -226,28 +251,15 @@
 					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>count</name>
-						<value>8</value>
+						<value>$calendarhome2count:+1</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>9</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
-		<test name='5' ignore='no'>
+		<test name='6' ignore='no'>
 			<description>One more calendar</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>PROPFIND</method>
@@ -273,6 +285,25 @@
 	
 	<test-suite name='Uninvite #2'>
 		<test name='1' ignore='no'>
+			<description>Initial collection count</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>PROPFIND</method>
+				<ruri>$calendarhome2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+				<grabcount>$calendarhome2count:</grabcount>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
 			<description>POST invitation</description>
 			<request print-response='no'>
 				<method>POST</method>
@@ -286,7 +317,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='2'>
+		<test name='3'>
 			<description>Check Sharee notification collection</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>PROPFIND</method>
@@ -322,25 +353,12 @@
 					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
 				</data>
 				<verify>
-					<exclude-feature>
-						<feature>split-calendars</feature>
-					</exclude-feature>
 					<callback>multistatusItems</callback>
 					<arg>
 						<name>count</name>
-						<value>7</value>
+						<value>$calendarhome2count:-1</value>
 					</arg>
 				</verify>
-				<verify>
-					<require-feature>
-						<feature>split-calendars</feature>
-					</require-feature>
-					<callback>multistatusItems</callback>
-					<arg>
-						<name>count</name>
-						<value>8</value>
-					</arg>
-				</verify>
 			</request>
 		</test>
 		<test name='5' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd	2012-12-10 20:22:03 UTC (rev 10146)
@@ -29,7 +29,8 @@
 
 	<!ELEMENT pause EMPTY>
 
-	<!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*, graburi?, grabheader*, grabproperty*, grabelement*)>
+	<!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*,
+						graburi?, grabcount?, grabheader*, grabproperty*, grabelement*, grabcalproperty*, grabcalparameter*)>
 		<!ATTLIST request auth (yes|no) "yes"
 						 user CDATA ""
 						 pswd CDATA ""
@@ -54,6 +55,8 @@
 		
 		<!ELEMENT graburi (#PCDATA)>
 
+		<!ELEMENT grabcount (#PCDATA)>
+
 		<!ELEMENT grabheader (name, variable)>
 	
 		<!ELEMENT grabproperty (property, variable)>
@@ -62,6 +65,9 @@
 
 		<!ELEMENT grabelement (name, variable+)>
 
+		<!ELEMENT grabcalproperty (name, variable)>
+		<!ELEMENT grabcalparameter (name, variable)>
+
 	<!ELEMENT test-suite (require-feature?, exclude-feature?, test*)>
 		<!ATTLIST test-suite name CDATA #REQUIRED
 							ignore (yes|no) "no"

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml	2012-12-10 20:22:03 UTC (rev 10146)
@@ -107,6 +107,72 @@
 				</verify>
 			</request>
 		</test>
+		<test name='5'>
+			<description>PROPFIND of non-existent addressbook depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/foobar/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/vpropfinds/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>PROPFIND of non-existent addressbook child depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/foobar/foo.ics</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/vpropfinds/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>PROPFIND of non-existent addressbook child collection depth=1</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/foobar/example/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>1</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/vpropfinds/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
 	
 	<test-suite name='prop names'>

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/src/caldavtest.py	2012-12-10 20:22:03 UTC (rev 10146)
@@ -19,6 +19,7 @@
 """
 
 from cStringIO import StringIO
+from pycalendar.calendar import PyCalendar
 from src.httpshandler import SmartHTTPConnection
 from src.manager import manager
 from src.request import data, pause
@@ -580,6 +581,18 @@
         if req.graburi:
             self.manager.server_info.addextrasubs({req.graburi: self.grabbedlocation})
 
+        if req.grabcount:
+            ctr = None
+            if result and (response is not None) and (response.status == 207) and (respdata is not None):
+                tree = ElementTree(file=StringIO(respdata))
+                ctr = len(tree.findall("{DAV:}response")) - 1
+
+            if ctr == None or ctr == -1:
+                result = False
+                resulttxt += "\nCould not count resources in response\n"
+            else:
+                self.manager.server_info.addextrasubs({req.grabcount: str(ctr)})
+
         if req.grabheader:
             for hdrname, variable in req.grabheader:
                 hdrs = response.msg.getheaders(hdrname)
@@ -614,6 +627,26 @@
                     for variable, elementvalue in zip(variables, elementvalues):
                         self.manager.server_info.addextrasubs({variable: elementvalue.encode("utf-8") if elementvalue else ""})
 
+        if req.grabcalprop:
+            for propname, variable in req.grabcalprop:
+                # grab the property here
+                propvalue = self.extractCalProperty(propname, respdata)
+                if propvalue == None:
+                    result = False
+                    resulttxt += "\nCalendar property %s was not extracted from response\n" % (propname,)
+                else:
+                    self.manager.server_info.addextrasubs({variable: propvalue.encode("utf-8")})
+
+        if req.grabcalparam:
+            for paramname, variable in req.grabcalparam:
+                # grab the property here
+                paramvalue = self.extractCalParameter(paramname, respdata)
+                if paramvalue == None:
+                    result = False
+                    resulttxt += "\nCalendar Parameter %s was not extracted from response\n" % (paramname,)
+                else:
+                    self.manager.server_info.addextrasubs({variable: paramvalue.encode("utf-8")})
+
         return result, resulttxt, response, respdata
 
 
@@ -777,6 +810,57 @@
             return None
 
 
+    def extractCalProperty(self, propertyname, respdata):
+
+        prop = self._calProperty(propertyname, respdata)
+        return prop.getValue().getValue() if prop else None
+
+
+    def extractCalParameter(self, parametername, respdata):
+
+        # propname is a path consisting of component names and the last one a property name
+        # e.g. VEVENT/ATTACH
+        bits = parametername.split("/")
+        propertyname = "/".join(bits[:-1])
+        pname = bits[-1]
+
+        prop = self._calProperty(propertyname, respdata)
+
+        try:
+            return prop.getAttributeValue(pname) if prop else None
+        except KeyError:
+            return None
+
+
+    def _calProperty(self, propertyname, respdata):
+
+        try:
+            cal = PyCalendar.parseText(respdata)
+        except Exception:
+            return None
+
+        # propname is a path consisting of component names and the last one a property name
+        # e.g. VEVENT/ATTACH
+        bits = propertyname.split("/")
+        components = bits[:-1]
+        pname = bits[-1]
+
+        while components:
+            for c in cal.getComponents():
+                if c.getType() == components[0]:
+                    cal = c
+                    components = components[1:]
+                    break
+            else:
+                break
+
+        if components:
+            return None
+
+        props = cal.getProperties(pname)
+        return props[0] if props else None
+
+
     def postgresInit(self):
         """
         Initialize postgres statement counter

Modified: CalDAVTester/trunk/src/request.py
===================================================================
--- CalDAVTester/trunk/src/request.py	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/src/request.py	2012-12-10 20:22:03 UTC (rev 10146)
@@ -135,7 +135,7 @@
 
 class request(object):
     """
-    Represents the HTTP request to be executed, and verifcation information to
+    Represents the HTTP request to be executed, and verification information to
     be used to determine a satisfactory output or not.
     """
 
@@ -157,9 +157,12 @@
         self.count = 1
         self.verifiers = []
         self.graburi = None
+        self.grabcount = None
         self.grabheader = []
         self.grabproperty = []
         self.grabelement = []
+        self.grabcalprop = []
+        self.grabcalparam = []
 
 
     def __str__(self):
@@ -344,12 +347,18 @@
                 self.verifiers[-1].parseXML(child)
             elif child.tag == src.xmlDefs.ELEMENT_GRABURI:
                 self.graburi = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_GRABCOUNT:
+                self.grabcount = child.text.encode("utf-8")
             elif child.tag == src.xmlDefs.ELEMENT_GRABHEADER:
                 self.parseGrab(child, self.grabheader)
             elif child.tag == src.xmlDefs.ELEMENT_GRABPROPERTY:
                 self.parseGrab(child, self.grabproperty)
             elif child.tag == src.xmlDefs.ELEMENT_GRABELEMENT:
                 self.parseMultiGrab(child, self.grabelement)
+            elif child.tag == src.xmlDefs.ELEMENT_GRABCALPROP:
+                self.parseGrab(child, self.grabcalprop)
+            elif child.tag == src.xmlDefs.ELEMENT_GRABCALPARAM:
+                self.parseGrab(child, self.grabcalparam)
 
 
     def parseFeatures(self, node, require=True):

Modified: CalDAVTester/trunk/src/xmlDefs.py
===================================================================
--- CalDAVTester/trunk/src/xmlDefs.py	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/src/xmlDefs.py	2012-12-10 20:22:03 UTC (rev 10146)
@@ -30,6 +30,9 @@
 ELEMENT_FEATURES = "features"
 ELEMENT_FEATURE = "feature"
 ELEMENT_FILEPATH = "filepath"
+ELEMENT_GRABCALPROP = "grabcalproperty"
+ELEMENT_GRABCALPARAM = "grabcalparameter"
+ELEMENT_GRABCOUNT = "grabcount"
 ELEMENT_GRABELEMENT = "grabelement"
 ELEMENT_GRABHEADER = "grabheader"
 ELEMENT_GRABPROPERTY = "grabproperty"

Modified: CalDAVTester/trunk/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/calendarDataMatch.py	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/verifiers/calendarDataMatch.py	2012-12-10 20:22:03 UTC (rev 10146)
@@ -68,7 +68,7 @@
         if data is None:
             return False, "        Could not read data file"
 
-        data = manager.server_info.subs(data)
+        data = manager.server_info.extrasubs(manager.server_info.subs(data))
 
         def removePropertiesParameters(component):
 

Modified: CalDAVTester/trunk/verifiers/multistatusItems.py
===================================================================
--- CalDAVTester/trunk/verifiers/multistatusItems.py	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/verifiers/multistatusItems.py	2012-12-10 20:22:03 UTC (rev 10146)
@@ -52,9 +52,9 @@
         for k, v in args.items():
             v = [prefix + i for i in v]
             args[k] = v
-        count = [int(i) for i in count]
-        totalcount = [int(i) for i in totalcount]
-        responsecount = [int(i) for i in responsecount]
+        count = [int(eval(i)) for i in count]
+        totalcount = [int(eval(i)) for i in totalcount]
+        responsecount = [int(eval(i)) for i in responsecount]
 
         if "okhrefs" in args or "nohrefs" in args or "badhrefs" in args:
             doOKBad = True

Modified: CalDAVTester/trunk/verifiers/propfindItems.py
===================================================================
--- CalDAVTester/trunk/verifiers/propfindItems.py	2012-12-10 19:21:10 UTC (rev 10145)
+++ CalDAVTester/trunk/verifiers/propfindItems.py	2012-12-10 20:22:03 UTC (rev 10146)
@@ -33,7 +33,7 @@
         # Check how many responses are returned
         counts = args.get("count", [])
         if len(counts) == 1:
-            count = int(counts[0])
+            count = int(eval(counts[0]))
         else:
             count = None
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20121210/5f91368a/attachment-0001.html>


More information about the calendarserver-changes mailing list